From 13a2253e0fd4819e44cfc27d1ac07dc3ce8419b1 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Mon, 27 Jul 2026 15:50:55 +0200 Subject: [PATCH] chore: migrate OneNote Tools to LocalToolBox --- .npmrc | 2 +- CHANGELOG.md | 9 ++++++++ README.md | 6 ++--- SOURCE.md | 4 ++-- THIRD_PARTY_NOTICES.md | 4 ++-- docs/FORMAT_SUPPORT.md | 2 +- docs/REFERENCE_IMPLEMENTATIONS.md | 22 +++++++++--------- package-lock.json | 32 +++++++++++++-------------- package.json | 8 +++---- public/toolbox-app.json | 6 ++--- scripts/generate-toolbox-manifest.mjs | 2 +- src/AppShell.test.tsx | 2 +- src/toolbox/manifest.definition.json | 2 +- src/version.ts | 2 +- tests/release-archive.test.ts | 4 ++-- 15 files changed, 58 insertions(+), 49 deletions(-) diff --git a/.npmrc b/.npmrc index 90e6041..7e977af 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1 @@ -@add-ideas:registry=https://git.add-ideas.de/api/packages/zemion/npm/ +@add-ideas:registry=https://git.add-ideas.de/api/packages/lotobo/npm/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b8b754..e06de47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.3.4 - 2026-07-27 + +- Move the canonical source, manifest schema links, and package registry from + the personal `zemion` namespace to the `lotobo` (LocalToolBox) Gitea + organization. +- Upgrade the Toolbox contract, React shell, and validation testkit to 0.2.3, + republished from the organization-owned registry without functional shell + changes. + ## 0.3.3 - 2026-07-23 - Let the OneNote application use the full width supplied by the shared diff --git a/README.md b/README.md index d50b74a..8a43cb2 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,14 @@ 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.3 uses the stable shared top bar, with the Toolbox icon and +Version 0.3.4 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. The application content uses the same `min(100%, 90rem)` span as the shell bar. -## What version 0.3.3 supports +## What version 0.3.4 supports - Desktop revision-store and unfragmented FSSHTTPB package-store `.one` sections from the tested producer families. @@ -87,7 +87,7 @@ supplied through the SDK's `?toolbox=` context mechanism. The app uses the SDK ```sh npm run release:artifact -(cd release && sha256sum -c onenote-tools-0.3.3.sha256) +(cd release && sha256sum -c onenote-tools-0.3.4.sha256) ``` The ZIP root contains the built static app and manifest plus the changelog, diff --git a/SOURCE.md b/SOURCE.md index e900761..7e1b879 100644 --- a/SOURCE.md +++ b/SOURCE.md @@ -1,8 +1,8 @@ # Corresponding source -The corresponding source for OneNote Tools 0.3.3 is the `v0.3.3` tag: +The corresponding source for OneNote Tools 0.3.4 is the `v0.3.4` tag: -https://git.add-ideas.de/zemion/onenote-tools/src/tag/v0.3.3 +https://git.add-ideas.de/lotobo/onenote-tools/src/tag/v0.3.4 Build the release from that tag with Node.js 22 or newer: diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index b3b7a0b..02e9475 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -2,8 +2,8 @@ The production application uses: -- `@add-ideas/toolbox-contract` 0.2.2, Apache-2.0; -- `@add-ideas/toolbox-shell-react` 0.2.2, Apache-2.0; +- `@add-ideas/toolbox-contract` 0.2.3, Apache-2.0; +- `@add-ideas/toolbox-shell-react` 0.2.3, Apache-2.0; - fflate 0.8.3, MIT; - React, React DOM, and Scheduler, MIT. diff --git a/docs/FORMAT_SUPPORT.md b/docs/FORMAT_SUPPORT.md index bcafee6..cc02278 100644 --- a/docs/FORMAT_SUPPORT.md +++ b/docs/FORMAT_SUPPORT.md @@ -1,6 +1,6 @@ # Format support -## Version 0.3.3 support matrix +## Version 0.3.4 support matrix | Input or feature | Status | Tested evidence and boundary | | -------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------- | diff --git a/docs/REFERENCE_IMPLEMENTATIONS.md b/docs/REFERENCE_IMPLEMENTATIONS.md index 7a83700..ebc2534 100644 --- a/docs/REFERENCE_IMPLEMENTATIONS.md +++ b/docs/REFERENCE_IMPLEMENTATIONS.md @@ -1,17 +1,17 @@ # Specifications and pinned references -Version 0.3.3 records these immutable implementation revisions: +Version 0.3.4 records these immutable implementation revisions: -| Repository | Exact revision | Use | -| ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------- | -| [`toolbox-sdk`](https://git.add-ideas.de/zemion/toolbox-sdk/src/commit/53c40a61ba1581246f65773fcbb1c1cfd31ac98e) | `53c40a61ba1581246f65773fcbb1c1cfd31ac98e` | App contract, React shell, manifest schema/testkit, and nested-path behavior | -| [`toolbox-portal`](https://git.add-ideas.de/zemion/toolbox-portal/src/commit/d46f1b61fb85a18299b6b8af2148dcd991ef6b05) | `d46f1b61fb85a18299b6b8af2148dcd991ef6b05` | Reviewed ZIP shape, exact checksum lock, independent-app assembly, and nginx deployment model | -| [`onenote.rs`](https://github.com/msiemens/onenote.rs/tree/5138a39a3f4e72b840932f9872fecde52fa9da60) | `5138a39a3f4e72b840932f9872fecde52fa9da60` | Selected desktop/FSSHTTPB OneStore and MS-ONE structures adapted into TypeScript | -| [`rust-cab`](https://github.com/mdsteele/rust-cab/tree/c5839f5fdfa4c4e7cc9b22f570c79c96af0560e2) | `c5839f5fdfa4c4e7cc9b22f570c79c96af0560e2` | CAB structures, checksum, enumeration/extraction, MSZIP history, and unit fixtures | -| [`compcol`](https://github.com/KarpelesLab/compcol/tree/04a6db2aa7bd487a89c559631d79d1b384139f50) | `04a6db2aa7bd487a89c559631d79d1b384139f50` | Quantum bit reader, arithmetic models, LZ window, CAB sentinel behavior, and tests | -| [`lzxd` 0.2.5](https://github.com/Lonami/lzxd/tree/4748e43594e3e30cff2ace3a6ad7a376c9816fdd) | `4748e43594e3e30cff2ace3a6ad7a376c9816fdd` | LZX bitstream, Huffman, block/window, match, and E8 logic adapted into TypeScript | -| [`libmspack`](https://github.com/kyz/libmspack/tree/55d501976171397ccd5d5a7a1ca7da065b1d9a06) | `55d501976171397ccd5d5a7a1ca7da065b1d9a06` | Multi-cabinet chain, split CFDATA, spanning-file semantics, and licensed fixtures | -| [`one2html`](https://github.com/msiemens/one2html/tree/59930ad309004030f812790c6749efe4265bb6bd) | `59930ad309004030f812790c6749efe4265bb6bd` | Behavioral reference for rich text, tables, images, attachments, ink, and HTML rendering | +| Repository | Exact revision | Use | +| ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------------- | +| [`toolbox-sdk`](https://git.add-ideas.de/lotobo/toolbox-sdk/src/commit/ef2dab4b46c61812c9a877d8a19fe497b4a4630a) | `ef2dab4b46c61812c9a877d8a19fe497b4a4630a` | App contract, React shell, manifest schema/testkit, package registry, and nested-path behavior | +| [`toolbox-portal`](https://git.add-ideas.de/lotobo/toolbox-portal/src/commit/d46f1b61fb85a18299b6b8af2148dcd991ef6b05) | `d46f1b61fb85a18299b6b8af2148dcd991ef6b05` | Reviewed ZIP shape, exact checksum lock, independent-app assembly, and nginx deployment model | +| [`onenote.rs`](https://github.com/msiemens/onenote.rs/tree/5138a39a3f4e72b840932f9872fecde52fa9da60) | `5138a39a3f4e72b840932f9872fecde52fa9da60` | Selected desktop/FSSHTTPB OneStore and MS-ONE structures adapted into TypeScript | +| [`rust-cab`](https://github.com/mdsteele/rust-cab/tree/c5839f5fdfa4c4e7cc9b22f570c79c96af0560e2) | `c5839f5fdfa4c4e7cc9b22f570c79c96af0560e2` | CAB structures, checksum, enumeration/extraction, MSZIP history, and unit fixtures | +| [`compcol`](https://github.com/KarpelesLab/compcol/tree/04a6db2aa7bd487a89c559631d79d1b384139f50) | `04a6db2aa7bd487a89c559631d79d1b384139f50` | Quantum bit reader, arithmetic models, LZ window, CAB sentinel behavior, and tests | +| [`lzxd` 0.2.5](https://github.com/Lonami/lzxd/tree/4748e43594e3e30cff2ace3a6ad7a376c9816fdd) | `4748e43594e3e30cff2ace3a6ad7a376c9816fdd` | LZX bitstream, Huffman, block/window, match, and E8 logic adapted into TypeScript | +| [`libmspack`](https://github.com/kyz/libmspack/tree/55d501976171397ccd5d5a7a1ca7da065b1d9a06) | `55d501976171397ccd5d5a7a1ca7da065b1d9a06` | Multi-cabinet chain, split CFDATA, spanning-file semantics, and licensed fixtures | +| [`one2html`](https://github.com/msiemens/one2html/tree/59930ad309004030f812790c6749efe4265bb6bd) | `59930ad309004030f812790c6749efe4265bb6bd` | Behavioral reference for rich text, tables, images, attachments, ink, and HTML rendering | The SDK and Portal revisions were inspected from the local repositories. Every parser/renderer reference was cloned and reviewed at the hash above; a branch diff --git a/package-lock.json b/package-lock.json index f2926eb..1a16a48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,22 @@ { "name": "onenote-tools", - "version": "0.3.3", + "version": "0.3.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "onenote-tools", - "version": "0.3.3", + "version": "0.3.4", "license": "MPL-2.0 AND LGPL-2.1-only", "dependencies": { - "@add-ideas/toolbox-contract": "0.2.2", - "@add-ideas/toolbox-shell-react": "0.2.2", + "@add-ideas/toolbox-contract": "0.2.3", + "@add-ideas/toolbox-shell-react": "0.2.3", "fflate": "^0.8.3", "react": "^19.2.6", "react-dom": "^19.2.6" }, "devDependencies": { - "@add-ideas/toolbox-testkit": "0.2.2", + "@add-ideas/toolbox-testkit": "0.2.3", "@eslint/js": "^10.0.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", @@ -42,18 +42,18 @@ } }, "node_modules/@add-ideas/toolbox-contract": { - "version": "0.2.2", - "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-contract/-/0.2.2/toolbox-contract-0.2.2.tgz", - "integrity": "sha512-VcZ8j4O2PgFaIYgxs6r9u0uPxA+hHKwhCW+omfeVCtbjAAYhH2KhRlBGm0ERVVYcK5kchyzZLXrC4LKWRotVzg==", + "version": "0.2.3", + "resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-contract/-/0.2.3/toolbox-contract-0.2.3.tgz", + "integrity": "sha512-T0PVSuMT40GjTDfQJhEEY3ZawQq8zz1/ry95JdKI6W39CdLacaRXdGnEpDCMHt+jUbf1Jz7Nat/M5dFCgKVM9A==", "license": "Apache-2.0" }, "node_modules/@add-ideas/toolbox-shell-react": { - "version": "0.2.2", - "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-shell-react/-/0.2.2/toolbox-shell-react-0.2.2.tgz", - "integrity": "sha512-w/xbLCd50a2Jq7vQ9Z9ygUOuqlOCRkIYlk4vSJx0mf4REJNeMYi3PE2MbaLUC4DkQWyrmatsa5HNT89o0l91BA==", + "version": "0.2.3", + "resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-shell-react/-/0.2.3/toolbox-shell-react-0.2.3.tgz", + "integrity": "sha512-DT5lQDH48BFkFcmFLZnQh7+Cm73JzBPcmp5WzUXypfkUXpEyDYHzaXgmW4kZ0edSwh4RK4sPmx+JPtK0X4aKCQ==", "license": "Apache-2.0", "dependencies": { - "@add-ideas/toolbox-contract": "0.2.2" + "@add-ideas/toolbox-contract": "0.2.3" }, "peerDependencies": { "react": ">=18 <20", @@ -61,13 +61,13 @@ } }, "node_modules/@add-ideas/toolbox-testkit": { - "version": "0.2.2", - "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-testkit/-/0.2.2/toolbox-testkit-0.2.2.tgz", - "integrity": "sha512-ZxrRYiJI/j5aXwcd3mQItgDl1iOJ6N26+MpIG18qVZNwKKFCTCfSTzgzRooPt8rRc1MQYTPo4c+l/QpOWuTXxA==", + "version": "0.2.3", + "resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-testkit/-/0.2.3/toolbox-testkit-0.2.3.tgz", + "integrity": "sha512-sq1MwhKWfFKen+N+124hl74qQimRSvmQ9sOU7jdcI+2qCKZ67+2B8rWyezeV80uTFu4Jv6deHksfYQ/tKNV6XQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@add-ideas/toolbox-contract": "0.2.2" + "@add-ideas/toolbox-contract": "0.2.3" }, "bin": { "toolbox-check": "dist/cli.js" diff --git a/package.json b/package.json index b504a11..16d2e0e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "onenote-tools", - "version": "0.3.3", + "version": "0.3.4", "description": "A local-first browser reader and exporter for OneNote files.", "license": "MPL-2.0 AND LGPL-2.1-only", "private": true, @@ -27,14 +27,14 @@ "check": "npm run manifest:check && npm run typecheck && npm run lint && npm run format:check && npm run test && npm run build && npm run toolbox:check" }, "dependencies": { - "@add-ideas/toolbox-contract": "0.2.2", - "@add-ideas/toolbox-shell-react": "0.2.2", + "@add-ideas/toolbox-contract": "0.2.3", + "@add-ideas/toolbox-shell-react": "0.2.3", "fflate": "^0.8.3", "react": "^19.2.6", "react-dom": "^19.2.6" }, "devDependencies": { - "@add-ideas/toolbox-testkit": "0.2.2", + "@add-ideas/toolbox-testkit": "0.2.3", "@eslint/js": "^10.0.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", diff --git a/public/toolbox-app.json b/public/toolbox-app.json index d25bb03..b826480 100644 --- a/public/toolbox-app.json +++ b/public/toolbox-app.json @@ -1,5 +1,5 @@ { - "$schema": "https://git.add-ideas.de/zemion/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json", + "$schema": "https://git.add-ideas.de/lotobo/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json", "schemaVersion": 1, "id": "de.add-ideas.onenote-tools", "name": "OneNote Tools", @@ -37,8 +37,8 @@ "label": "Local only · no uploads · no storage · no telemetry" }, "source": { - "repository": "https://git.add-ideas.de/zemion/onenote-tools", + "repository": "https://git.add-ideas.de/lotobo/onenote-tools", "license": "MPL-2.0 AND LGPL-2.1-only" }, - "version": "0.3.3" + "version": "0.3.4" } diff --git a/scripts/generate-toolbox-manifest.mjs b/scripts/generate-toolbox-manifest.mjs index 1e99664..273800b 100644 --- a/scripts/generate-toolbox-manifest.mjs +++ b/scripts/generate-toolbox-manifest.mjs @@ -40,7 +40,7 @@ if (sourceVersion !== packageJson.version) { const manifest = { $schema: - 'https://git.add-ideas.de/zemion/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json', + 'https://git.add-ideas.de/lotobo/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json', schemaVersion: 1, ...definition, version: packageJson.version, diff --git a/src/AppShell.test.tsx b/src/AppShell.test.tsx index e2e04da..3029354 100644 --- a/src/AppShell.test.tsx +++ b/src/AppShell.test.tsx @@ -20,7 +20,7 @@ describe('Toolbox application shell', () => { screen.getByRole('link', { name: 'Source for OneNote Tools on Gitea', }) - ).toHaveAttribute('href', 'https://git.add-ideas.de/zemion/onenote-tools'); + ).toHaveAttribute('href', 'https://git.add-ideas.de/lotobo/onenote-tools'); expect( Array.from( screen.getByRole('group', { name: 'Toolbox controls' }).children, diff --git a/src/toolbox/manifest.definition.json b/src/toolbox/manifest.definition.json index 6cb9cbc..331a997 100644 --- a/src/toolbox/manifest.definition.json +++ b/src/toolbox/manifest.definition.json @@ -35,7 +35,7 @@ "label": "Local only · no uploads · no storage · no telemetry" }, "source": { - "repository": "https://git.add-ideas.de/zemion/onenote-tools", + "repository": "https://git.add-ideas.de/lotobo/onenote-tools", "license": "MPL-2.0 AND LGPL-2.1-only" } } diff --git a/src/version.ts b/src/version.ts index 67c69e7..0416fa1 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const APP_VERSION = '0.3.3'; +export const APP_VERSION = '0.3.4'; diff --git a/tests/release-archive.test.ts b/tests/release-archive.test.ts index 1fd165d..fac6903 100644 --- a/tests/release-archive.test.ts +++ b/tests/release-archive.test.ts @@ -53,8 +53,8 @@ describe('release archive', () => { 'react', ]); const text = bundle.toString('utf8'); - expect(text).toContain('@add-ideas/toolbox-contract@0.2.2'); - expect(text).toContain('@add-ideas/toolbox-shell-react@0.2.2'); + expect(text).toContain('@add-ideas/toolbox-contract@0.2.3'); + expect(text).toContain('@add-ideas/toolbox-shell-react@0.2.3'); expect(text).toContain('react@'); expect(createHash('sha256').update(bundle).digest('hex')).toMatch( /^[a-f0-9]{64}$/