@openpresentation/opf-editor 0.11.2 → 0.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +2 -2
  2. package/package.json +12 -8
package/README.md CHANGED
@@ -6,7 +6,7 @@ Version 0.11.2 adds the slide-size and purpose switches (additive; same requirem
6
6
 
7
7
  Version 0.8.0 required `@openpresentation/opf` ^0.11.0, renderer ^0.9.0, and PPTX ^0.9.0. Named ColorRefs (scheme slots, roles, and `var:<id>`) paint through the published renderer and hex-resolve on export. Payload ids share the slide id namespace for pagination and transfer. Native `schemeClr`, theme write, and `p:hf` remain out of scope.
8
8
 
9
- Version 0.7.0 and this checkout require Node 24 (`24.x`). Use `.nvmrc` for local development. Earlier published versions retain their original engine declarations. Browser entrypoints remain browser-safe; native application compatibility is verified separately.
9
+ This checkout supports Node 22 or later (`engines.node` `>=22`; CI tests Node 22, 24 and 26). Versions 0.7.0 to 0.11.2 declared `24.x`, so npm on Node 22 or 26 silently installed an older release instead (RR-20); upgrade past 0.11.2. Use `.nvmrc` (Node 24) for local development. Earlier published versions retain their original engine declarations. Browser entrypoints remain browser-safe; native application compatibility is verified separately.
10
10
 
11
11
  Version 0.7.0 forwards effective title alignment and shared outline placement options through composition and explicit pagination. Use the same `textMeasurement` and `textRasterPadding` in canvas rendering and export. Accepted rich-text trace origins support selection, caret placement and undo. See the [source contract and limits](https://github.com/OpenPresentation/opf/blob/f94125a1ff95bf0974a055fe1c081d348dad54f2/docs/plans/text-placement.md); native PowerPoint fidelity remains separate.
12
12
 
@@ -596,7 +596,7 @@ Svelte bindings are isolated under `@openpresentation/opf-editor/svelte` as acti
596
596
 
597
597
  Public npm package publication is handled by `.github/workflows/release.yml` through npm Trusted Publishing (GitHub Actions OIDC) with npm provenance; no npm token is stored. The owner authorized agents to prepare and publish npm releases whenever a release is required (2026-09-29). This authorization does not waive any gate.
598
598
 
599
- 1. Open a release-prep PR containing only the version bump, `CHANGELOG.md`, dependency ranges, lockfile and current-instruction docs. Publish in dependency order (core, then renderer, then PPTX, then editor): refresh this repo's lockfile only after the required `@openpresentation/opf`, `@openpresentation/opf-render` and `@openpresentation/opf-pptx` versions are on the registry (`npm install --package-lock-only`), then run `npm run test:packed` against them.
599
+ 1. Open a release-prep PR containing only the version bump, `CHANGELOG.md` (assembled from `changes/` with `node scripts/changelog-fragments.mjs assemble --version X.Y.Z`), dependency ranges, lockfile and current-instruction docs. Publish in dependency order (core, then renderer, then PPTX, then editor): refresh this repo's lockfile only after the required `@openpresentation/opf`, `@openpresentation/opf-render` and `@openpresentation/opf-pptx` versions are on the registry (`npm install --package-lock-only`), then run `npm run test:packed` against them.
600
600
  2. Merge after CI is green, then publish by pushing the git tag `opf-editor-v<version>` (or `@openpresentation/opf-editor@v<version>`) at the merge commit. The workflow verifies that the tag matches `package.json` and reruns audit, typecheck, validate, tests, playground, code/JSON browser and packed checks before `npm publish --access public --provenance`. A manual `workflow_dispatch` runs the same job without the tag check and is a fallback only.
601
601
  3. Verify with `npm view @openpresentation/opf-editor@<version> version gitHead dist.attestations` and, from the core repo, `node scripts/test-editor-publication.mjs <version> <release-commit> <this-checkout>`. Never republish an existing version.
602
602
 
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@openpresentation/opf-editor",
3
- "version": "0.11.2",
3
+ "version": "0.11.3",
4
4
  "description": "Embeddable local OPF editor primitives built on the deterministic renderer.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "private": false,
8
8
  "engines": {
9
- "node": "24.x"
9
+ "node": ">=22"
10
10
  },
11
11
  "repository": {
12
12
  "type": "git",
@@ -207,8 +207,11 @@
207
207
  "sideEffects": false,
208
208
  "scripts": {
209
209
  "build": "node scripts/build.mjs",
210
- "typecheck": "node --check src/index.js && node --check src/annotations.js && node --check test/annotations.mjs && node --check src/react.js && node --check src/svelte.js && node --check scripts/build.mjs && node --check scripts/validate-package.mjs && node --check test/smoke.mjs && node --check test/component-smoke.mjs && node --check src/canvas.js && node --check src/canvas-fields.js && node --check test/canvas-fields.mjs && node --check test/browser-canvas.mjs && node --check src/transfer.js && node --check src/presentation-ids.js && node --check src/font-defaults.js && node --check src/color-authoring.js && node --check test/presentation-ids.mjs && node --check src/galleries.js && node --check examples/transfer-controls.js && node --check src/schema.js && node --check src/schema-inspector.js && node --check test/rich-table-browser.mjs && node --check test/styled-table.mjs && node --check test/styled-table-browser.mjs && node --check examples/pptx-controls.js && node --check scripts/build-playground.mjs && node --check test/playground-pptx.mjs && node --check test/playground-script-fonts.mjs && node --check test/playground-lazy-fonts.mjs && node --check test/playground-base-fonts.mjs && node --check src/text-input.js && node --check src/rich-text.js && node --check src/rich-text-input.js && node --check src/rich-text-toolbar.js && node --check test/rich-text.mjs && node --check test/rich-input-browser.mjs && node --check src/json-editor.js && node --check src/json-menu.js && node --check src/json-options.js && node --check src/json-source.js && node --check src/switches.js && node --check test/switches.mjs && node --check test/switches-export.mjs && node --check test/placeholder-selection.mjs && node --check test/selection-browser.mjs && node --check scripts/check-font-hotlinks.mjs && node --check scripts/check-font-hotlinks.test.mjs && node --check src/exact-source.js && node --check test/exact-source.mjs && node --check test/playground-source.mjs && node --check src/font-gate.js && node --check test/font-gate.mjs && node --check test/font-gate-registry.mjs && node --check test/playground-ensure-fonts.mjs && node --check test/canvas-fonts-browser.mjs && node --check src/text-pointer.js && node --check test/click-entry-browser.mjs && node --check src/edit-helpers.js && node --check src/block-convert.js && node --check src/design-options.js && node --check src/table-options.js && node --check src/design-controls.js && node --check test/block-convert.mjs && node --check test/design-options.mjs && node --check test/table-options.mjs && node --check test/switches-ui.mjs && node --check test/design-controls-browser.mjs && node --check src/assets.js && node --check src/chart-options.js && node --check src/chart-options-panel.js && node --check examples/chart-controls.js && node --check test/chart-options.mjs && node --check test/chart-options-browser.mjs && node --check src/background-options.js && node --check test/assets.mjs && node --check test/background-options.mjs && node --check test/design-gaps-browser.mjs && node --check src/templates.js && node --check src/template-panel.js && node --check examples/template-controls.js && node --check test/templates.mjs && node --check test/template-panel-browser.mjs && node --check src/grid-text.js && node --check src/grid-model.js && node --check src/table-structure.js && node --check src/chart-data.js && node --check src/data-grid.js && node --check test/data-grid.mjs && node --check test/data-grid-browser.mjs && node --check src/slides.js && node --check src/outline.js && node --check src/slide-manager.js && node --check src/outline-view.js && node --check test/slides.mjs && node --check test/outline.mjs && node --check test/slides-browser.mjs && node --check src/persistence.js && node --check src/persistence-ui.js && node --check test/persistence.mjs && node --check test/persistence-browser.mjs && node --check src/find-replace.js && node --check src/find-panel.js && node --check src/image-crop.js && node --check src/image-cropper.js && node --check examples/find-controls.js && node --check examples/crop-controls.js && node --check examples/mobile-controls.js && node --check test/find-replace.mjs && node --check test/image-crop.mjs && node --check test/support/playground-harness.mjs && node --check test/find-replace-browser.mjs && node --check test/image-crop-browser.mjs && node --check test/mobile-browser.mjs && node --check src/content-actions.js && node --check src/content-controls.js && node --check test/content-actions.mjs && node --check test/font-gate-latin-families.mjs && node --check src/review.js && node --check src/review-panel.js && node --check examples/review-controls.js && node --check test/review.mjs && node --check test/review-panel-browser.mjs && node --check test/patch.mjs && node --check src/export.js && node --check src/zip.js && node --check examples/download-controls.js && node --check test/export.mjs && node --check test/playground-download.mjs && node --check src/numbering.js && node --check src/numbering-panel.js && node --check examples/numbering-controls.js && node --check test/numbering.mjs && node --check test/numbering-panel-browser.mjs",
211
- "test": "npm run build && npm run check:font-hotlinks && node test/accepted-text.mjs && node test/smoke.mjs && node test/component-smoke.mjs && node test/canvas-fields.mjs && node test/transfer.mjs && node test/gallery-font-roles.mjs && node test/default-font-scheme.mjs && node test/presentation-ids.mjs && node test/schema.mjs && node test/rich-text.mjs && node test/layout.mjs && node test/blocks.mjs && node test/styled-table.mjs && node test/json-source.mjs && node test/json-options.mjs && node test/switches.mjs && node test/block-convert.mjs && node test/design-options.mjs && node test/templates.mjs && node test/table-options.mjs && node test/annotations.mjs && node test/switches-ui.mjs && node test/assets.mjs && node test/chart-options.mjs && node test/background-options.mjs && node test/slides.mjs && node test/outline.mjs && node test/persistence.mjs && node test/switches-export.mjs && node test/placeholder-selection.mjs && node test/exact-source.mjs && node test/font-gate.mjs && node test/data-grid.mjs && node test/font-gate-registry.mjs && node test/find-replace.mjs && node test/image-crop.mjs && node test/content-actions.mjs && node test/font-gate-latin-families.mjs && node test/review.mjs && node test/patch.mjs && node test/export.mjs && node test/numbering.mjs",
210
+ "typecheck": "node scripts/check-syntax.mjs src test scripts examples",
211
+ "test": "npm run build && npm run check:font-hotlinks && node scripts/run-tests.mjs && npm run check:runners && npm run check:changes",
212
+ "test:contract": "npm run build && node scripts/run-tests.mjs --suite contract",
213
+ "check:runners": "node --test scripts/run-tests.test.mjs",
214
+ "check:changes": "node --test scripts/changelog-fragments.test.mjs && node scripts/changelog-fragments.mjs check",
212
215
  "validate": "node scripts/validate-package.mjs",
213
216
  "test:packed": "node test/packed-install.mjs",
214
217
  "prepack": "npm run build",
@@ -246,11 +249,11 @@
246
249
  "@codemirror/state": "6.7.6",
247
250
  "@codemirror/view": "6.43.13",
248
251
  "@lezer/highlight": "1.2.4",
249
- "@openpresentation/opf": "^0.12.0",
252
+ "@openpresentation/opf": "^0.12.2",
250
253
  "jsonc-parser": "3.3.1"
251
254
  },
252
255
  "peerDependencies": {
253
- "@openpresentation/opf-render": "^0.12.0"
256
+ "@openpresentation/opf-render": "^0.12.2"
254
257
  },
255
258
  "peerDependenciesMeta": {
256
259
  "@openpresentation/opf-render": {
@@ -292,10 +295,11 @@
292
295
  "@expo-google-fonts/noto-sans-thai": "0.4.2",
293
296
  "@expo-google-fonts/noto-serif-hebrew": "0.4.2",
294
297
  "@expo-google-fonts/noto-serif-tibetan": "0.4.2",
295
- "@openpresentation/opf-pptx": "^0.12.0",
296
- "@openpresentation/opf-render": "^0.12.0",
298
+ "@openpresentation/opf-pptx": "^0.12.4",
299
+ "@openpresentation/opf-render": "^0.12.2",
297
300
  "axe-core": "4.13.0",
298
301
  "esbuild": "0.28.2",
302
+ "jszip": "3.10.2",
299
303
  "pdfjs-dist": "6.3.289",
300
304
  "playwright": "1.63.0",
301
305
  "@expo-google-fonts/noto-color-emoji": "0.4.6",