# OneNote Tools OneNote Tools is a standalone, local-first browser reader and exporter for a tested subset of Microsoft OneNote `.one` sections and CAB-based `.onepkg` packages. Its native TypeScript parser runs in a dedicated module worker; the selected notebook is neither uploaded nor persisted. It is also an independent application in the add·ideas Toolbox contract. The source uses the Toolbox SDK shell and manifest, builds with Vite `base: './'`, and is delivered to Toolbox Portal as a checksummed static ZIP. Version 0.3.2 uses the stable shared top bar, with the Toolbox icon and `add·ideas Toolbox` label in a fixed far-left block; the app title and one tagline centered; and Help, the OneNote source link, Apps, and Personalize in a fixed far-right cluster. Personalize uses the shared portal-style appearance panel while catalogue counts and preference import/export stay in the portal. ## What version 0.3.2 supports - Desktop revision-store and unfragmented FSSHTTPB package-store `.one` sections from the tested producer families. - Complete single- or multi-cabinet `.onepkg` sets using uncompressed, MSZIP, Quantum, or LZX CAB folders. Split packages can be selected as one `.onepkg` file together with all of its `.cab` companions, in any selection order. - Desktop and FSSHTTPB `.onetoc2` stores inside packages. Section groups, authored section order, recycle-bin filtering, pages, and subpages are presented as a notebook tree; unresolved entries retain a deterministic fallback rather than hiding readable sections. - Structured page content: outlines and layout hints, rich-text runs, safe links, tables, PNG/JPEG images, decoded ink strokes, and declared embedded attachments. Resource bytes remain lazy until previewed, explicitly downloaded, or included in an explicit export. - Local exports as structured JSON, plain text, Markdown, inert semantic HTML, or a deterministic static notebook ZIP. Exports retain parser diagnostics and unsupported-content summaries; they do not create or modify OneNote files. The redistributable golden corpus covers desktop and unfragmented FSSHTTPB sections, a real LZX `.onepkg`, all four CAB compression modes, a five-part spanning CAB set, TOC hierarchy behavior, rich content, resources, and every export format. The generic MSZIP, Quantum, and multi-cabinet fixtures establish CAB behavior; they are not claims about every OneNote producer. This remains a deliberately bounded compatibility subset. Fragmented FSSHTTPB data-element reconstruction, equations, audio/video, and untested producer variants are not supported. Visual placement is approximate rather than a pixel-perfect OneNote layout. See [format support](docs/FORMAT_SUPPORT.md) for the precise matrix. There is no Rust/Wasm runtime, notebook-processing application backend, upload proxy, telemetry, or notebook storage. All parsing and CAB decompression is ordinary browser JavaScript produced from the TypeScript source. ## Use Run the static build or open it through Toolbox Portal, then: - choose one local `.one` file; or - choose one `.onepkg` file and, for a split package, all linked `.cab` parts in the same file-picker action. Use **Clear file** to terminate the current worker and release application references. Browser garbage collection does not provide a secure-erasure guarantee. ## Development Node.js 22 or newer is required. The checked-in `.npmrc` contains only the public package registry mapping and no credential. ```sh npm ci npm run dev npm run check ``` `npm run check` validates manifest synchronization, TypeScript, ESLint, Prettier, fixture-backed Vitest tests, the production build, and `toolbox-check dist`. The application works standalone. A same-origin Toolbox catalogue can be supplied through the SDK's `?toolbox=` context mechanism. The app uses the SDK `AppShell` and does not add a second suite-level switcher. ## Release artifact ```sh npm run release:artifact (cd release && sha256sum -c onenote-tools-0.3.2.sha256) ``` The ZIP root contains the built static app and manifest plus the changelog, corresponding-source information, security/support/provenance documents, and the required project and third-party licence texts. File order and ZIP timestamps are fixed. Existing artifacts are not overwritten unless `--force` is passed after `--`. Toolbox Portal expands the reviewed ZIP below an `apps//` path and locks its exact SHA-256. It does not build this repository or import this app into the portal React tree. ## Design and provenance - [Format support](docs/FORMAT_SUPPORT.md) - [Security model and active limits](docs/SECURITY.md) - [Pinned references and normative specifications](docs/REFERENCE_IMPLEMENTATIONS.md) - [Port provenance](docs/PORTING.md) - [Fixture provenance](tests/fixtures/README.md) ## Licence OneNote Tools is primarily MPL-2.0; the adapted multi-cabinet module is LGPL-2.1-only. The complete licence texts are in [`LICENSES/`](LICENSES/), and adapted/third-party material remains under the terms recorded in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).