feat: add local OneNote and ONEPKG reader

This commit is contained in:
2026-07-22 17:06:03 +02:00
commit f581cbdced
93 changed files with 14949 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
{
"id": "de.add-ideas.onenote-tools",
"name": "OneNote Tools",
"description": "Local-first reader for tested desktop revision-store .one sections and LZX .onepkg packages; other OneNote formats are not implemented.",
"entry": "./",
"icon": "./favicon.svg",
"categories": ["documents", "onenote"],
"tags": ["local", "read-only", "one", "onepkg", "cab", "lzx"],
"integration": {
"contextVersion": 1,
"launchModes": ["navigate", "new-tab"],
"embedding": "unsupported"
},
"requirements": {
"secureContext": false,
"workers": true,
"indexedDb": false,
"crossOriginIsolated": false
},
"privacy": {
"processing": "local",
"fileUploads": false,
"telemetry": false,
"label": "Local only · no uploads · no storage · no telemetry"
},
"source": {
"repository": "https://git.add-ideas.de/zemion/onenote-tools",
"license": "MPL-2.0"
}
}

View File

@@ -0,0 +1,22 @@
import { parseToolboxApp } from '@add-ideas/toolbox-contract';
import { describe, expect, it } from 'vitest';
import generatedManifest from '../../public/toolbox-app.json';
import { toolboxApp } from './manifest.js';
describe('toolbox manifest', () => {
it('matches the generated and validated public manifest', () => {
expect(toolboxApp).toEqual(parseToolboxApp(generatedManifest));
});
it('does not advertise unimplemented format support', () => {
expect(toolboxApp.description).toContain('not implemented');
expect(toolboxApp.privacy).toEqual(
expect.objectContaining({
processing: 'local',
fileUploads: false,
telemetry: false,
})
);
});
});

12
src/toolbox/manifest.ts Normal file
View File

@@ -0,0 +1,12 @@
import { defineToolboxApp, parseToolboxApp } from '@add-ideas/toolbox-contract';
import definition from './manifest.definition.json';
import { APP_VERSION } from '../version.js';
export const toolboxApp = defineToolboxApp(
parseToolboxApp({
schemaVersion: 1,
...definition,
version: APP_VERSION,
})
);