@openpresentation/opf 0.26.10 → 0.28.0

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 (105) hide show
  1. package/README.md +6 -0
  2. package/dist/browser.js +20 -17
  3. package/dist/{catalog-refs-BSfGELpt.d.ts → catalog-refs-kAefsZWT.d.ts} +2 -1
  4. package/dist/{catalog-schemas-DoxA2BgY.d.ts → catalog-schemas-CC1d_h8s.d.ts} +3 -2
  5. package/dist/{chart-data-BnNqgnC-.d.ts → chart-data-Ci9s_NDN.d.ts} +2 -1
  6. package/dist/{chunk-XRMV2GMB.js → chunk-2CUCYENF.js} +758 -232
  7. package/dist/chunk-43JWUIGF.js +8 -0
  8. package/dist/{chunk-F4HFDP6I.js → chunk-5Q4IYLMW.js} +31 -15
  9. package/dist/{chunk-GIWNHRTX.js → chunk-BQUWRXTR.js} +4 -4
  10. package/dist/chunk-CR72ZJ6W.js +236 -0
  11. package/dist/{chunk-L52N5FZZ.js → chunk-F6DCEGB3.js} +6 -6
  12. package/dist/chunk-GM7WFPGG.js +10 -0
  13. package/dist/chunk-JBARNYFR.js +23 -0
  14. package/dist/{chunk-EQ6S5SEZ.js → chunk-KELC4K62.js} +1 -1
  15. package/dist/{chunk-77KL2PMM.js → chunk-KXKN3W5Z.js} +3 -3
  16. package/dist/{chunk-D25BNPTW.js → chunk-LLEXM7TQ.js} +4 -4
  17. package/dist/{chunk-3S2XVDPN.js → chunk-MTFK7QEY.js} +6 -6
  18. package/dist/{chunk-TKQ2VFV5.js → chunk-N77N4AOD.js} +1 -1
  19. package/dist/{chunk-NVT2YDVC.js → chunk-OAIAFXMS.js} +2 -2
  20. package/dist/{chunk-PHP45MO7.js → chunk-P6PKYJTS.js} +1 -1
  21. package/dist/{chunk-H7XMO36O.js → chunk-PCU4XGKV.js} +5 -5
  22. package/dist/{chunk-Y4TZCE7R.js → chunk-SEZ4EPW6.js} +2 -2
  23. package/dist/{chunk-Y25DYRME.js → chunk-TNUTRV6E.js} +1 -1
  24. package/dist/{chunk-G5WJMJV3.js → chunk-UOHWG4OS.js} +1 -1
  25. package/dist/{chunk-A54NGT2K.js → chunk-VGGPAMP7.js} +2 -2
  26. package/dist/{chunk-IVPA6NG6.js → chunk-WPKCWQ6W.js} +494 -120
  27. package/dist/{chunk-VZBFQLCA.js → chunk-XZ23FORL.js} +6 -6
  28. package/dist/chunk-ZROVYWGU.js +1 -0
  29. package/dist/{composition-DIftf6iP.d.ts → composition-C-hd_Ci3.d.ts} +134 -14
  30. package/dist/composition.d.ts +3 -3
  31. package/dist/composition.js +2 -1
  32. package/dist/conversion-XJTDWQ5W.js +24 -0
  33. package/dist/{conversion-ChmGA8Ul.d.ts → conversion-hbZeS5kD.d.ts} +8 -7
  34. package/dist/convert.d.ts +6 -5
  35. package/dist/convert.js +9 -7
  36. package/dist/data.d.ts +4 -3
  37. package/dist/data.js +3 -2
  38. package/dist/{deck-report-5vwMGcQz.d.ts → deck-report-DQMsvyBI.d.ts} +5 -4
  39. package/dist/deck.d.ts +9 -8
  40. package/dist/deck.js +13 -11
  41. package/dist/diff.d.ts +3 -2
  42. package/dist/diff.js +6 -4
  43. package/dist/docs.d.ts +2 -1
  44. package/dist/docs.js +33 -19
  45. package/dist/examples.d.ts +3 -2
  46. package/dist/examples.js +92 -50
  47. package/dist/{explain-JSuESV-Y.d.ts → explain-iZeNOUc6.d.ts} +2 -1
  48. package/dist/font-policy.d.ts +2 -1
  49. package/dist/font-policy.js +1 -0
  50. package/dist/format.d.ts +2 -1
  51. package/dist/format.js +3 -2
  52. package/dist/ids.d.ts +114 -0
  53. package/dist/ids.js +6 -0
  54. package/dist/index.d.ts +40 -16
  55. package/dist/index.js +24 -21
  56. package/dist/markdown.d.ts +8 -7
  57. package/dist/markdown.js +10 -8
  58. package/dist/node-engine.d.ts +33 -10
  59. package/dist/node-engine.js +37 -28
  60. package/dist/{pagination-D_kJe4jH.d.ts → pagination-DyAKYpXu.d.ts} +4 -3
  61. package/dist/pagination.d.ts +4 -4
  62. package/dist/pagination.js +6 -4
  63. package/dist/patch.d.ts +89 -4
  64. package/dist/patch.js +5 -3
  65. package/dist/precompiled.d.ts +2 -0
  66. package/dist/precompiled.js +7 -0
  67. package/dist/{presentation-Bwo8Ko6D.d.ts → presentation-8jLSTFqL.d.ts} +11 -11
  68. package/dist/repo-readme.js +3 -1
  69. package/dist/schema-engine-ajv.js +37 -0
  70. package/dist/schema-engine-precompiled.js +3 -0
  71. package/dist/schema.d.ts +4 -3
  72. package/dist/schema.js +5 -3
  73. package/dist/schemas.d.ts +2 -1
  74. package/dist/schemas.js +2 -1
  75. package/dist/source.d.ts +5 -4
  76. package/dist/source.js +12 -10
  77. package/dist/spec/README.md +1 -1
  78. package/dist/spec/schemas/audience.schema.json +1 -0
  79. package/dist/spec/schemas/catalog-index.schema.json +1 -0
  80. package/dist/spec/schemas/catalog-manifest.schema.json +1 -0
  81. package/dist/spec/schemas/chart-type.schema.json +1 -0
  82. package/dist/spec/schemas/color-scheme.schema.json +1 -0
  83. package/dist/spec/schemas/finding.schema.json +1 -0
  84. package/dist/spec/schemas/font-scheme.schema.json +1 -0
  85. package/dist/spec/schemas/language.schema.json +1 -0
  86. package/dist/spec/schemas/layout-preview-index.schema.json +1 -0
  87. package/dist/spec/schemas/layout.schema.json +8 -6
  88. package/dist/spec/schemas/narrative.schema.json +1 -0
  89. package/dist/spec/schemas/opf.schema.json +9 -8
  90. package/dist/spec/schemas/purpose.schema.json +1 -0
  91. package/dist/spec/schemas/social-platform.schema.json +1 -0
  92. package/dist/spec/schemas/theme.schema.json +3 -1
  93. package/dist/spec/schemas/tone.schema.json +1 -0
  94. package/dist/spec-files.d.ts +2 -1
  95. package/dist/spec-files.js +1 -0
  96. package/dist/symbol-font-encodings.d.ts +2 -1
  97. package/dist/symbol-font-encodings.js +2 -0
  98. package/dist/types.d.ts +9 -9
  99. package/dist/{validation-types-3ARvTsB0.d.ts → validation-types-mNmfcY9A.d.ts} +4 -3
  100. package/dist/validator.d.ts +8 -8
  101. package/dist/validator.js +5 -3
  102. package/dist/yaml.d.ts +8 -7
  103. package/dist/yaml.js +9 -7
  104. package/package.json +30 -9
  105. package/dist/conversion-IVKCKMCN.js +0 -21
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://openpresentation.org/schema/opf-purpose/v1",
4
+ "$comment": "The v1 in the $id is the pre-1.0 line, not a frozen contract: this schema may change in any 0.x minor release. The release that produced this copy is the version of the @openpresentation/opf package it came from (opf --version; opf schemas lists it next to each id). See docs/schema-versioning.md.",
4
5
  "title": "Purpose",
5
6
  "description": "Schema for purpose records. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Documents reference a purpose from 'purpose', which also accepts free-form text and inline Purpose objects.\n\nA document references a record as a bare id or 'name:id' and resolves it in its own catalogs groups first, then in the catalog the host registered for the group's source; engines never fetch a catalog. A published record file carries '$schema' and 'id'; the copy a document embeds under catalogs.<group>.<kind>.<id> carries neither (the key is the id) and no 'x-*' display metadata.",
6
7
  "type": "object",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://openpresentation.org/schema/opf-social-platform/v1",
4
+ "$comment": "The v1 in the $id is the pre-1.0 line, not a frozen contract: this schema may change in any 0.x minor release. The release that produced this copy is the version of the @openpresentation/opf package it came from (opf --version; opf schemas lists it next to each id). See docs/schema-versioning.md.",
4
5
  "title": "Social Platform",
5
6
  "description": "Schema for social-platform records: display metadata for authoring UIs (name, brand color, handle example) alongside the URL patterns. The keys of a Socials object are an engine vocabulary validated directly; engines link a handle with the patterns in spec/reference/engine-vocabularies.json and never look a social-platform record up. pptx.gallery publishes these records and @openpresentation/gallery ships them as catalogDisplay.socialPlatforms.",
6
7
  "type": "object",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://openpresentation.org/schema/opf-theme/v1",
4
+ "$comment": "The v1 in the $id is the pre-1.0 line, not a frozen contract: this schema may change in any 0.x minor release. The release that produced this copy is the version of the @openpresentation/opf package it came from (opf --version; opf schemas lists it next to each id). See docs/schema-versioning.md.",
4
5
  "title": "Theme",
5
6
  "description": "Schema for theme records. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Documents reference a theme from design.theme; design.colorScheme, design.fontScheme, design.background and design.dimensions take precedence over the resolved theme. The theme's own colorScheme and fontScheme references resolve in the theme's group first, so a catalog's theme finds that catalog's schemes.\n\nA document references a record as a bare id or 'name:id' and resolves it in its own catalogs groups first, then in the catalog the host registered for the group's source; engines never fetch a catalog. A published record file carries '$schema' and 'id'; the copy a document embeds under catalogs.<group>.<kind>.<id> carries neither (the key is the id) and no 'x-*' display metadata.",
6
7
  "type": "object",
@@ -143,7 +144,8 @@
143
144
  "type": "string",
144
145
  "enum": [
145
146
  "character",
146
- "image"
147
+ "image",
148
+ "none"
147
149
  ],
148
150
  "description": "As design.listBullet of a deck."
149
151
  }
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://openpresentation.org/schema/opf-tone/v1",
4
+ "$comment": "The v1 in the $id is the pre-1.0 line, not a frozen contract: this schema may change in any 0.x minor release. The release that produced this copy is the version of the @openpresentation/opf package it came from (opf --version; opf schemas lists it next to each id). See docs/schema-versioning.md.",
4
5
  "title": "Tone",
5
6
  "description": "Schema for tone records. Each record names a presentation tone (e.g. 'formal', 'casual', 'inspirational') and carries voice cues, anti-patterns, and sample phrases that AI-driven generation uses to shape output. Documents reference a tone from 'tone'.\n\nA document references a record as a bare id or 'name:id' and resolves it in its own catalogs groups first, then in the catalog the host registered for the group's source; engines never fetch a catalog. A published record file carries '$schema' and 'id'; the copy a document embeds under catalogs.<group>.<kind>.<id> carries neither (the key is the id) and no 'x-*' display metadata.",
6
7
  "type": "object",
@@ -13,4 +13,5 @@ declare const specFileEntries: readonly SpecFileEntry[];
13
13
  declare const specFilePaths: readonly SpecFilePath[];
14
14
  declare const specFileKinds: readonly SpecFileKind[];
15
15
 
16
- export { type SpecFileEntry, type SpecFileKind, type SpecFilePath, specFileEntries, specFileKinds, specFilePaths };
16
+ export { specFileEntries, specFileKinds, specFilePaths };
17
+ export type { SpecFileEntry, SpecFileKind, SpecFilePath };
@@ -1 +1,2 @@
1
1
  export { specFileEntries, specFileKinds, specFilePaths } from './chunk-UJSAR6GF.js';
2
+ import './chunk-GM7WFPGG.js';
@@ -125,4 +125,5 @@ declare function symbolCodeForUnicode(family: string, text: string): number | nu
125
125
  */
126
126
  declare function mapSymbolText(family: string, text: string): SymbolTextCharacter[];
127
127
 
128
- export { SYMBOL_FONT_ENCODINGS, SYMBOL_FONT_FAMILIES, type SymbolFontCode, type SymbolFontEncoding, type SymbolFontEncodingTable, type SymbolFontFamily, type SymbolTextCharacter, isSymbolEncodedFamily, mapSymbolText, symbolCodeForUnicode, symbolCodeOf, symbolFontEncodingFor, symbolUnicodeFor };
128
+ export { SYMBOL_FONT_ENCODINGS, SYMBOL_FONT_FAMILIES, isSymbolEncodedFamily, mapSymbolText, symbolCodeForUnicode, symbolCodeOf, symbolFontEncodingFor, symbolUnicodeFor };
129
+ export type { SymbolFontCode, SymbolFontEncoding, SymbolFontEncodingTable, SymbolFontFamily, SymbolTextCharacter };
@@ -1,3 +1,5 @@
1
+ import './chunk-GM7WFPGG.js';
2
+
1
3
  // src/generated/symbol-font-encodings.ts
2
4
  var symbolFontEncodingsSource = {
3
5
  "$schema": "./symbol-font-encodings.schema.json",
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { P as Presentation } from './presentation-Bwo8Ko6D.js';
2
- export { C as CatalogKind } from './catalog-refs-BSfGELpt.js';
1
+ export { P as Presentation } from './presentation-8jLSTFqL.js';
2
+ export { a as CatalogKind } from './catalog-refs-kAefsZWT.js';
3
3
  export { SchemaName } from './schemas.js';
4
4
  export { a as Finding, d as FindingCategory, e as FindingFix, f as FindingFocus, b as FindingLocation, F as FindingReport, c as FindingSeverity, g as FindingSuggestion, J as JsonPatchOperation, V as ValidationIssue } from './finding-l9dlQ2NF.js';
5
5
  import './json-BFSdESOE.js';
@@ -290,7 +290,7 @@ interface Theme {
290
290
  /**
291
291
  * As design.listBullet of a deck.
292
292
  */
293
- listBullet?: ("character" | "image");
293
+ listBullet?: ("character" | "image" | "none");
294
294
  };
295
295
  /**
296
296
  * Free-form labels for filtering and search.
@@ -375,7 +375,7 @@ interface ColorVariant {
375
375
  */
376
376
  type RegionEntry = (HeadingRegion | Region | Split);
377
377
  /**
378
- * The region's or split's share along its parent's direction: a number above 0 and up to 100 that siblings share in proportion (the gap is taken out first), default 1; or 'auto', the length the content needs at the starting text size (at most half the content box; a split sized auto is as tall as its tallest content, and every row of a column split sized auto is auto too; auto regions with no content take no space). 'auto' is allowed only on an entry of a column; in a row it is the validate finding opf/layout-template. The default for a heading region is 'auto' in a column and 1 in a row.
378
+ * The region's or split's share along its parent's direction: a number above 0 and up to 100 that siblings share in proportion (the gap is taken out first), default 1; or 'auto', the length the content needs at the starting text size (up to the space the heading rows and the content of the numeric rows leave; auto rows that do not all fit shrink together, each giving up the same fraction of what it can give up above its content's length at the minimum font size; a split sized auto is as tall as its tallest content, and every row of a column split sized auto is auto too; auto regions with no content take no space). 'auto' is allowed only on an entry of a column; in a row it is the validate finding opf/layout-template. When every entry of a column record is 'auto', the record's 'anchor' places the whole stack. The default for a heading region is 'auto' in a column and 1 in a row.
379
379
  *
380
380
  * This interface was referenced by `Layout`'s JSON-Schema
381
381
  * via the `definition` "RegionSize".
@@ -413,7 +413,7 @@ interface Layout {
413
413
  */
414
414
  direction?: ("row" | "column");
415
415
  /**
416
- * Vertical position of the content of every body region when it is shorter than the region. A split's 'anchor' replaces it for the regions under that split, and a region's own 'anchor' replaces both. Only 'anchor' is inherited, and only by body regions: the heading regions 'title' and 'subtitle' never take it, and the other region rules stay per region. Default 'top'.
416
+ * Vertical position of the content of every body region when it is shorter than the region. A split's 'anchor' replaces it for the regions under that split, and a region's own 'anchor' replaces both. Only 'anchor' is inherited, and only by body regions: the heading regions 'title' and 'subtitle' never take it, and the other region rules stay per region. One exception places the whole slide: when the record is a column and every entry of its 'regions' list is sized 'auto' (heading regions included), the record has no numeric row to hold the leftover height, so its 'anchor' places the whole stack, title and subtitle included, in the content box's leftover height: 'middle' centres it, 'bottom' sits it at the foot, 'top' (default) starts it at the top as before. A record with any numeric entry, a row record and an anchor on a split keep the rule above. Default 'top'.
417
417
  */
418
418
  anchor?: ("top" | "middle" | "bottom");
419
419
  /**
@@ -485,9 +485,9 @@ interface DesignHints {
485
485
  */
486
486
  imageFit?: ("cover" | "contain" | "stretch");
487
487
  /**
488
- * Marker style of lists: 'character' draws the glyph, 'image' draws the deck's icon logo as a picture bullet.
488
+ * Marker style of lists: 'character' draws the glyph, 'image' draws the deck's icon logo as a picture bullet, 'none' draws no marker and no hanging indent (label-and-description lists).
489
489
  */
490
- listBullet?: ("character" | "image");
490
+ listBullet?: ("character" | "image" | "none");
491
491
  /**
492
492
  * Draw the layout mirrored: each row's cells and the column sizes reversed, so a 'beside' layout puts its picture, chart or table at the end. Logical: a right-to-left deck mirrors on top. Binding and reading order do not change.
493
493
  */
@@ -529,7 +529,7 @@ interface Region {
529
529
  */
530
530
  role?: ("primary" | "secondary" | "media" | "supporting");
531
531
  /**
532
- * How several blocks share the region: 'none' one block fills it; 'grid' by count (1 fills, 2 side by side, 3 in a row, 4 as 2 x 2, 5 as 3 + 2, 6 as 3 x 2, 7 to 12 in four columns; rows and columns swap in a portrait region; a short last row is centred); 'column' stacked with equal heights; 'auto' a grid when every block is short and a column when any block is long (more than 6 estimated lines in its grid cell at the starting size). design.contentDirection turns every flowing region into one row or one column. Default 'auto'.
532
+ * How several blocks share the region: 'none' one block fills it; 'grid' by count (1 fills, 2 side by side, 3 in a row, 4 as 2 x 2, 5 as 3 + 2, 6 as 3 x 2, 7 to 12 in four columns; rows and columns swap in a portrait region; a short last row is centred); 'column' stacked at the heights the blocks need, one gap apart, and placed by the region's anchor (charts, pictures, tables, timelines and videos take what the measured blocks leave; blocks that do not fit share the region, each giving up the same fraction of what it can give up above its height at the minimum font size); 'auto' a grid when every block is short and a column when any block is long (more than 6 estimated lines in its grid cell at the starting size). design.contentDirection turns every flowing region into one row or one column. Default 'auto'.
533
533
  */
534
534
  flow?: ("none" | "grid" | "column" | "auto");
535
535
  /**
@@ -545,7 +545,7 @@ interface Region {
545
545
  */
546
546
  listColumns?: ("auto" | 1);
547
547
  /**
548
- * Vertical position of the region's content when it is shorter than the region. Replaces the 'anchor' of the record and of the splits around it. Default: the nearest of those that sets one, else 'top'.
548
+ * Vertical position of the region's content when it is shorter than the region. Replaces the 'anchor' of the record and of the splits around it. Default: the nearest of those that sets one, else 'top'. A picture shown whole (fit 'contain') and a video, whose 16:9 frame is the largest that fits the cell, sit at the anchor inside the cell.
549
549
  */
550
550
  anchor?: ("top" | "middle" | "bottom");
551
551
  /**
@@ -1,5 +1,5 @@
1
- import { a as Catalog } from './catalog-refs-BSfGELpt.js';
2
- import { T as TextMeasurement } from './composition-DIftf6iP.js';
1
+ import { C as Catalog } from './catalog-refs-kAefsZWT.js';
2
+ import { T as TextMeasurement } from './composition-C-hd_Ci3.js';
3
3
  import { c as FindingSeverity, F as FindingReport } from './finding-l9dlQ2NF.js';
4
4
  import { J as JsonPrimitive } from './json-BFSdESOE.js';
5
5
 
@@ -289,4 +289,5 @@ interface ValidationReport extends FindingReport {
289
289
  unfilledVariables?: string[];
290
290
  }
291
291
 
292
- export { variableDeclarations as A, type BuiltinVariableInfo as B, type Contract as C, DEFAULT_VARIABLE_DATE_FORMAT as D, OPFVariableError as O, type ResolveVariablesOptions as R, type ValidationReport as V, type ValidateOptions as a, type ValidationThresholds as b, type ValidationRuleInfo as c, type ValidateFonts as d, type ValidationCategory as e, type ValidationChecks as f, type ValidationRuleCost as g, type VariableDiagnostic as h, type ResolveVariablesResult as i, VARIABLE_KINDS as j, type VariableDeclaration as k, type VariableDiagnosticCode as l, type VariableDiagnosticSeverity as m, type VariableInfo as n, type VariableKind as o, type VariableUse as p, type VariableUseForm as q, type VariableValues as r, coerceVariableValue as s, formatVariableNumber as t, hasContentVariables as u, validationCategories as v, isTemplate as w, listBuiltinVariables as x, listVariables as y, resolveVariables as z };
292
+ export { variableDeclarations as A, DEFAULT_VARIABLE_DATE_FORMAT as D, OPFVariableError as O, VARIABLE_KINDS as j, coerceVariableValue as s, formatVariableNumber as t, hasContentVariables as u, validationCategories as v, isTemplate as w, listBuiltinVariables as x, listVariables as y, resolveVariables as z };
293
+ export type { BuiltinVariableInfo as B, Contract as C, ResolveVariablesOptions as R, ValidationReport as V, ValidateOptions as a, ValidationThresholds as b, ValidationRuleInfo as c, ValidateFonts as d, ValidationCategory as e, ValidationChecks as f, ValidationRuleCost as g, VariableDiagnostic as h, ResolveVariablesResult as i, VariableDeclaration as k, VariableDiagnosticCode as l, VariableDiagnosticSeverity as m, VariableInfo as n, VariableKind as o, VariableUse as p, VariableUseForm as q, VariableValues as r };
@@ -1,13 +1,13 @@
1
- import { C as CatalogRecordKind } from './catalog-schemas-DoxA2BgY.js';
2
- import { a as Finding } from './finding-l9dlQ2NF.js';
3
- import { P as Presentation } from './presentation-Bwo8Ko6D.js';
4
- import { b as ValidationThresholds, c as ValidationRuleInfo, V as ValidationReport, a as ValidateOptions } from './validation-types-3ARvTsB0.js';
5
- export { C as Contract, d as ValidateFonts, e as ValidationCategory, f as ValidationChecks, g as ValidationRuleCost, v as validationCategories } from './validation-types-3ARvTsB0.js';
6
- import './catalog-refs-BSfGELpt.js';
1
+ import { CatalogRecordKind } from './index.js';
2
+ import { Finding } from './index.js';
3
+ import { Presentation } from './index.js';
4
+ import { b as ValidationThresholds, c as ValidationRuleInfo, V as ValidationReport, a as ValidateOptions } from './validation-types-mNmfcY9A.js';
5
+ export { C as Contract, d as ValidateFonts, e as ValidationCategory, f as ValidationChecks, g as ValidationRuleCost, v as validationCategories } from './validation-types-mNmfcY9A.js';
6
+ import './catalog-refs-kAefsZWT.js';
7
7
  import './schemas.js';
8
8
  import './json-BFSdESOE.js';
9
- import './composition-DIftf6iP.js';
10
- import './chart-data-BnNqgnC-.js';
9
+ import './composition-C-hd_Ci3.js';
10
+ import './chart-data-Ci9s_NDN.js';
11
11
 
12
12
  /**
13
13
  * The rule metadata: every rule `validate` can report, with its category, default severity, cost, rationale and the
package/dist/validator.js CHANGED
@@ -1,3 +1,5 @@
1
- export { DEFAULT_VALIDATION_THRESHOLDS, OPFValidationError, assertValid, assertValidCatalogRecord, findValidationRule, validate, validateCatalogRecord, validationCategories, validationRules } from './chunk-IVPA6NG6.js';
2
- export { promotedRegionKeys } from './chunk-XRMV2GMB.js';
3
- import './chunk-F4HFDP6I.js';
1
+ export { DEFAULT_VALIDATION_THRESHOLDS, OPFValidationError, assertValid, assertValidCatalogRecord, findValidationRule, validate, validateCatalogRecord, validationCategories, validationRules } from './chunk-WPKCWQ6W.js';
2
+ import './chunk-JBARNYFR.js';
3
+ import './chunk-5Q4IYLMW.js';
4
+ export { promotedRegionKeys } from './chunk-2CUCYENF.js';
5
+ import './chunk-GM7WFPGG.js';
package/dist/yaml.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { a as Catalog } from './catalog-refs-BSfGELpt.js';
2
- import { P as Presentation } from './presentation-Bwo8Ko6D.js';
3
- import { a as ValidateOptions, V as ValidationReport } from './validation-types-3ARvTsB0.js';
4
- import { a as Finding, b as FindingLocation } from './finding-l9dlQ2NF.js';
5
- import './composition-DIftf6iP.js';
6
- import './chart-data-BnNqgnC-.js';
1
+ import { Catalog } from './composition.js';
2
+ import { Presentation } from './index.js';
3
+ import { ValidateOptions, ValidationReport } from './index.js';
4
+ import { Finding, FindingLocation } from './index.js';
5
+ import './composition-C-hd_Ci3.js';
6
+ import './chart-data-Ci9s_NDN.js';
7
7
  import './json-BFSdESOE.js';
8
8
 
9
9
  /** A finding located in the YAML source: `yaml/<rule>` syntax and dialect errors (category `format`) and the OPF findings of the parsed deck. */
@@ -99,4 +99,5 @@ declare function parseYamlData(yaml: string, options?: {
99
99
  findings: YamlFinding[];
100
100
  };
101
101
 
102
- export { type FromYamlOptions, type FromYamlResult, OPFYamlError, type ToYamlOptions, type ToYamlResult, YAML_SCHEMA_URL, type YamlComments, type YamlFinding, fromYaml, parseYamlData, scanYamlComments, toYaml };
102
+ export { OPFYamlError, YAML_SCHEMA_URL, fromYaml, parseYamlData, scanYamlComments, toYaml };
103
+ export type { FromYamlOptions, FromYamlResult, ToYamlOptions, ToYamlResult, YamlComments, YamlFinding };
package/dist/yaml.js CHANGED
@@ -1,8 +1,10 @@
1
- export { OPFYamlError, YAML_SCHEMA_URL, fromYaml, parseYamlData, scanYamlComments, toYaml } from './chunk-VZBFQLCA.js';
1
+ export { OPFYamlError, YAML_SCHEMA_URL, fromYaml, parseYamlData, scanYamlComments, toYaml } from './chunk-XZ23FORL.js';
2
+ import './chunk-KELC4K62.js';
2
3
  import './chunk-RYZPBJLB.js';
3
- import './chunk-Y4TZCE7R.js';
4
- import './chunk-Y25DYRME.js';
5
- import './chunk-IVPA6NG6.js';
6
- import './chunk-XRMV2GMB.js';
7
- import './chunk-EQ6S5SEZ.js';
8
- import './chunk-F4HFDP6I.js';
4
+ import './chunk-SEZ4EPW6.js';
5
+ import './chunk-TNUTRV6E.js';
6
+ import './chunk-WPKCWQ6W.js';
7
+ import './chunk-JBARNYFR.js';
8
+ import './chunk-5Q4IYLMW.js';
9
+ import './chunk-2CUCYENF.js';
10
+ import './chunk-GM7WFPGG.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openpresentation/opf",
3
- "version": "0.26.10",
3
+ "version": "0.28.0",
4
4
  "description": "Canonical Open Presentation Format schemas, TypeScript types, local validation and composition; in Node, the file API and the CLI defaults register the pptx.gallery catalog of @openpresentation/gallery.",
5
5
  "license": "MIT",
6
6
  "author": "Open Presentation",
@@ -26,7 +26,9 @@
26
26
  "slides"
27
27
  ],
28
28
  "type": "module",
29
- "sideEffects": false,
29
+ "sideEffects": [
30
+ "./dist/precompiled.js"
31
+ ],
30
32
  "main": "./dist/index.js",
31
33
  "types": "./dist/index.d.ts",
32
34
  "exports": {
@@ -48,6 +50,10 @@
48
50
  "types": "./dist/validator.d.ts",
49
51
  "import": "./dist/validator.js"
50
52
  },
53
+ "./precompiled": {
54
+ "types": "./dist/precompiled.d.ts",
55
+ "import": "./dist/precompiled.js"
56
+ },
51
57
  "./types": {
52
58
  "types": "./dist/types.d.ts",
53
59
  "import": "./dist/types.js"
@@ -114,6 +120,10 @@
114
120
  "types": "./dist/patch.d.ts",
115
121
  "import": "./dist/patch.js"
116
122
  },
123
+ "./ids": {
124
+ "types": "./dist/ids.d.ts",
125
+ "import": "./dist/ids.js"
126
+ },
117
127
  "./diff": {
118
128
  "types": "./dist/diff.d.ts",
119
129
  "import": "./dist/diff.js"
@@ -131,6 +141,15 @@
131
141
  "node": "./dist/node-engine.js"
132
142
  }
133
143
  },
144
+ "imports": {
145
+ "#schema-engine": {
146
+ "types": "./src/schema-engine-ajv.ts",
147
+ "workerd": "./dist/schema-engine-precompiled.js",
148
+ "worker": "./dist/schema-engine-precompiled.js",
149
+ "edge-light": "./dist/schema-engine-precompiled.js",
150
+ "default": "./dist/schema-engine-ajv.js"
151
+ }
152
+ },
134
153
  "files": [
135
154
  "dist",
136
155
  "README.md",
@@ -145,7 +164,7 @@
145
164
  "ajv-formats": "^3.0.1",
146
165
  "jsonc-parser": "3.3.1",
147
166
  "yaml": "^2.9.1",
148
- "@openpresentation/gallery": "^0.26.10"
167
+ "@openpresentation/gallery": "^0.28.0"
149
168
  },
150
169
  "devDependencies": {
151
170
  "@expo-google-fonts/arimo": "0.4.3",
@@ -161,12 +180,13 @@
161
180
  "json-schema-to-typescript": "^16.0.0",
162
181
  "pdf-lib": "1.17.1",
163
182
  "sharp": "0.35.5",
164
- "tsup": "^8.5.1",
165
- "typescript": "~5.9.3"
183
+ "tsup": "^9.0.0",
184
+ "typescript": "~5.9.3",
185
+ "workerd": "1.20261023.1"
166
186
  },
167
187
  "peerDependencies": {
168
- "@openpresentation/opf-pptx": "^0.26.10",
169
- "@openpresentation/opf-render": "^0.26.10"
188
+ "@openpresentation/opf-pptx": "^0.28.0",
189
+ "@openpresentation/opf-render": "^0.28.0"
170
190
  },
171
191
  "peerDependenciesMeta": {
172
192
  "@openpresentation/opf-pptx": {
@@ -180,11 +200,12 @@
180
200
  "clean": "rm -rf dist src/generated",
181
201
  "generate": "node scripts/generate.mjs && node scripts/generate-content.mjs",
182
202
  "build:deps": "pnpm --filter \"@openpresentation/opf^...\" --fail-if-no-match run build",
183
- "build": "node ../../scripts/reuse-build.mjs check || (pnpm run generate && tsup && node scripts/copy-spec.mjs && node ../../scripts/reuse-build.mjs stamp)",
203
+ "build": "node ../../scripts/reuse-build.mjs check || (pnpm run generate && tsup && node scripts/minify-precompiled.mjs && node scripts/copy-spec.mjs && node ../../scripts/reuse-build.mjs stamp)",
184
204
  "typecheck": "pnpm run build:deps && pnpm run generate && node ../../scripts/typecheck.mjs --noEmit",
185
205
  "test": "pnpm run build:deps && pnpm run build && node ../../scripts/run-tests.mjs",
206
+ "test:workerd": "pnpm run build:deps && pnpm run build && node --test test/workerd.test.mjs",
186
207
  "test:packed": "node test/packed-install-smoke.mjs",
187
208
  "pack:dry-run": "pnpm run build:deps && pnpm run build && npm pack --dry-run --cache /tmp/opf-npm-cache"
188
209
  },
189
- "gitHead": "da3f869f6f3a152a0d7d5cb42eeb2843d302a46a"
210
+ "gitHead": "abc56634a584db38a305a27edc3bc76b4116637b"
190
211
  }
@@ -1,21 +0,0 @@
1
- export { convertFiles, deckFileFormat, exportFormatOf, openDeck, planConversion, readInput, saveDeck, writePlanned } from './chunk-L52N5FZZ.js';
2
- import './chunk-NVT2YDVC.js';
3
- import './chunk-D25BNPTW.js';
4
- import './chunk-UJSAR6GF.js';
5
- import './chunk-PJSPHHRK.js';
6
- import './chunk-TKQ2VFV5.js';
7
- import './chunk-77KL2PMM.js';
8
- import './chunk-GIWNHRTX.js';
9
- import './chunk-3S2XVDPN.js';
10
- import './chunk-VZBFQLCA.js';
11
- import './chunk-RYZPBJLB.js';
12
- import './chunk-G5WJMJV3.js';
13
- import './chunk-H7XMO36O.js';
14
- import './chunk-PHP45MO7.js';
15
- import './chunk-Y4TZCE7R.js';
16
- import './chunk-Y25DYRME.js';
17
- import './chunk-A54NGT2K.js';
18
- import './chunk-IVPA6NG6.js';
19
- import './chunk-XRMV2GMB.js';
20
- import './chunk-EQ6S5SEZ.js';
21
- import './chunk-F4HFDP6I.js';