docxodus 9.9.0 → 10.0.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 (111) hide show
  1. package/README.md +178 -0
  2. package/dist/canonical.d.ts +7 -0
  3. package/dist/canonical.d.ts.map +1 -0
  4. package/dist/canonical.js +56 -0
  5. package/dist/canonical.js.map +1 -0
  6. package/dist/docxodus.worker.d.ts +2 -1
  7. package/dist/docxodus.worker.d.ts.map +1 -1
  8. package/dist/docxodus.worker.js +244 -3
  9. package/dist/docxodus.worker.js.map +1 -1
  10. package/dist/editor.bundle.js +1914 -419
  11. package/dist/editor.d.ts +22 -2
  12. package/dist/editor.d.ts.map +1 -1
  13. package/dist/editor.js +94 -9
  14. package/dist/editor.js.map +1 -1
  15. package/dist/embed.bundle.js +2803 -469
  16. package/dist/embed.iife.js +2801 -467
  17. package/dist/export-assets.json +283 -0
  18. package/dist/export-browser.bundle.js +7990 -0
  19. package/dist/export-browser.d.ts +266 -0
  20. package/dist/export-browser.d.ts.map +1 -0
  21. package/dist/export-browser.js +2915 -0
  22. package/dist/export-browser.js.map +1 -0
  23. package/dist/export-resource-limits-v1.json +57 -0
  24. package/dist/font-contract.d.ts +150 -0
  25. package/dist/font-contract.d.ts.map +1 -0
  26. package/dist/font-contract.js +59 -0
  27. package/dist/font-contract.js.map +1 -0
  28. package/dist/font-runtime.d.ts +33 -0
  29. package/dist/font-runtime.d.ts.map +1 -0
  30. package/dist/font-runtime.js +1100 -0
  31. package/dist/font-runtime.js.map +1 -0
  32. package/dist/index.d.ts +62 -5
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +130 -16
  35. package/dist/index.js.map +1 -1
  36. package/dist/page-geometry.d.ts +8 -1
  37. package/dist/page-geometry.d.ts.map +1 -1
  38. package/dist/page-geometry.js +37 -11
  39. package/dist/page-geometry.js.map +1 -1
  40. package/dist/pagination.bundle.js +1827 -410
  41. package/dist/pagination.d.ts +249 -15
  42. package/dist/pagination.d.ts.map +1 -1
  43. package/dist/pagination.js +1942 -453
  44. package/dist/pagination.js.map +1 -1
  45. package/dist/react.d.ts +11 -4
  46. package/dist/react.d.ts.map +1 -1
  47. package/dist/react.js +38 -5
  48. package/dist/react.js.map +1 -1
  49. package/dist/render-report-v2.schema.json +1581 -0
  50. package/dist/ribbon-chrome.d.ts +1 -1
  51. package/dist/ribbon-chrome.d.ts.map +1 -1
  52. package/dist/ribbon-chrome.js +45 -0
  53. package/dist/ribbon-chrome.js.map +1 -1
  54. package/dist/ribbon.js +70 -0
  55. package/dist/ribbon.js.map +1 -1
  56. package/dist/session.bundle.js +695 -29
  57. package/dist/session.d.ts +134 -19
  58. package/dist/session.d.ts.map +1 -1
  59. package/dist/session.js +562 -25
  60. package/dist/session.js.map +1 -1
  61. package/dist/types.d.ts +1207 -16
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js.map +1 -1
  64. package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm +0 -0
  65. package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm.br +0 -0
  66. package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm +0 -0
  67. package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm.br +0 -0
  68. package/dist/wasm/_framework/Docxodus.wasm +0 -0
  69. package/dist/wasm/_framework/Docxodus.wasm.br +0 -0
  70. package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
  71. package/dist/wasm/_framework/DocxodusWasm.wasm.br +0 -0
  72. package/dist/wasm/_framework/System.Collections.Concurrent.wasm +0 -0
  73. package/dist/wasm/_framework/System.Collections.Concurrent.wasm.br +0 -0
  74. package/dist/wasm/_framework/System.Collections.Immutable.wasm +0 -0
  75. package/dist/wasm/_framework/System.Collections.Immutable.wasm.br +0 -0
  76. package/dist/wasm/_framework/System.Collections.wasm +0 -0
  77. package/dist/wasm/_framework/System.Collections.wasm.br +0 -0
  78. package/dist/wasm/_framework/System.IO.Compression.wasm +0 -0
  79. package/dist/wasm/_framework/System.IO.Compression.wasm.br +0 -0
  80. package/dist/wasm/_framework/System.IO.Packaging.wasm +0 -0
  81. package/dist/wasm/_framework/System.IO.Packaging.wasm.br +0 -0
  82. package/dist/wasm/_framework/System.Linq.wasm +0 -0
  83. package/dist/wasm/_framework/System.Linq.wasm.br +0 -0
  84. package/dist/wasm/_framework/System.Private.CoreLib.wasm +0 -0
  85. package/dist/wasm/_framework/System.Private.CoreLib.wasm.br +0 -0
  86. package/dist/wasm/_framework/System.Private.Uri.wasm +0 -0
  87. package/dist/wasm/_framework/System.Private.Uri.wasm.br +0 -0
  88. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm +0 -0
  89. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm.br +0 -0
  90. package/dist/wasm/_framework/System.Private.Xml.wasm +0 -0
  91. package/dist/wasm/_framework/System.Private.Xml.wasm.br +0 -0
  92. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm +0 -0
  93. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm.br +0 -0
  94. package/dist/wasm/_framework/System.Runtime.wasm +0 -0
  95. package/dist/wasm/_framework/System.Runtime.wasm.br +0 -0
  96. package/dist/wasm/_framework/System.Security.Cryptography.wasm +0 -0
  97. package/dist/wasm/_framework/System.Security.Cryptography.wasm.br +0 -0
  98. package/dist/wasm/_framework/System.Text.Json.wasm +0 -0
  99. package/dist/wasm/_framework/System.Text.Json.wasm.br +0 -0
  100. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm +0 -0
  101. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm.br +0 -0
  102. package/dist/wasm/_framework/dotnet.boot.js +21 -21
  103. package/dist/wasm/_framework/dotnet.boot.js.br +0 -0
  104. package/dist/wasm/_framework/dotnet.native.wasm +0 -0
  105. package/dist/wasm/_framework/dotnet.native.wasm.br +0 -0
  106. package/dist/worker-proxy.bundle.js +196 -29
  107. package/dist/worker-proxy.d.ts +36 -3
  108. package/dist/worker-proxy.d.ts.map +1 -1
  109. package/dist/worker-proxy.js +186 -33
  110. package/dist/worker-proxy.js.map +1 -1
  111. package/package.json +22 -6
@@ -0,0 +1,1581 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://docxodus.dev/schemas/render/render-report/v2",
4
+ "title": "Docxodus render report v1",
5
+ "oneOf": [
6
+ {
7
+ "$ref": "#/$defs/complete"
8
+ },
9
+ {
10
+ "$ref": "#/$defs/failed"
11
+ }
12
+ ],
13
+ "allOf": [
14
+ {
15
+ "if": {
16
+ "required": [
17
+ "status",
18
+ "options"
19
+ ],
20
+ "properties": {
21
+ "status": {
22
+ "const": "complete"
23
+ },
24
+ "options": {
25
+ "required": [
26
+ "reviewProfile",
27
+ "reviewProfileAlreadyApplied"
28
+ ],
29
+ "properties": {
30
+ "reviewProfile": {
31
+ "enum": [
32
+ "final",
33
+ "original"
34
+ ]
35
+ },
36
+ "reviewProfileAlreadyApplied": {
37
+ "const": false
38
+ }
39
+ }
40
+ }
41
+ }
42
+ },
43
+ "then": {
44
+ "required": [
45
+ "derivedProfileSource"
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ "if": {
51
+ "required": [
52
+ "options"
53
+ ],
54
+ "properties": {
55
+ "options": {
56
+ "anyOf": [
57
+ {
58
+ "required": [
59
+ "reviewProfile"
60
+ ],
61
+ "properties": {
62
+ "reviewProfile": {
63
+ "const": "markup"
64
+ }
65
+ }
66
+ },
67
+ {
68
+ "required": [
69
+ "reviewProfileAlreadyApplied"
70
+ ],
71
+ "properties": {
72
+ "reviewProfileAlreadyApplied": {
73
+ "const": true
74
+ }
75
+ }
76
+ }
77
+ ]
78
+ }
79
+ }
80
+ },
81
+ "then": {
82
+ "not": {
83
+ "required": [
84
+ "derivedProfileSource"
85
+ ]
86
+ }
87
+ }
88
+ }
89
+ ],
90
+ "$defs": {
91
+ "phase": {
92
+ "enum": [
93
+ "input_validation",
94
+ "package_preflight",
95
+ "browser_launch",
96
+ "wasm_initialization",
97
+ "docx_conversion",
98
+ "font_loading",
99
+ "image_decoding",
100
+ "chart_svg_materialization",
101
+ "pagination",
102
+ "running_story_placement",
103
+ "page_tree_stability",
104
+ "pdf_print",
105
+ "output_verification",
106
+ "output_write",
107
+ "filesystem_commit",
108
+ "cleanup"
109
+ ]
110
+ },
111
+ "errorCode": {
112
+ "enum": [
113
+ "invalid_argument",
114
+ "invalid_document",
115
+ "source_digest_mismatch",
116
+ "document_version_unrepresentable",
117
+ "conversion_failure",
118
+ "browser_launch_failure",
119
+ "resource_policy_failure",
120
+ "readiness_timeout",
121
+ "operation_cancelled",
122
+ "pagination_failure",
123
+ "pdf_write_failure",
124
+ "output_write_failure",
125
+ "output_verification_failure",
126
+ "resource_limit",
127
+ "unsupported_runtime",
128
+ "filesystem_failure"
129
+ ]
130
+ },
131
+ "warning": {
132
+ "type": "object",
133
+ "additionalProperties": false,
134
+ "required": [
135
+ "code",
136
+ "severity",
137
+ "phase",
138
+ "message",
139
+ "remediation"
140
+ ],
141
+ "properties": {
142
+ "code": {
143
+ "type": "string",
144
+ "minLength": 1
145
+ },
146
+ "severity": {
147
+ "const": "warning"
148
+ },
149
+ "phase": {
150
+ "$ref": "#/$defs/phase"
151
+ },
152
+ "message": {
153
+ "type": "string",
154
+ "minLength": 1
155
+ },
156
+ "remediation": {
157
+ "type": "string",
158
+ "minLength": 1
159
+ },
160
+ "detail": {
161
+ "type": "string"
162
+ },
163
+ "partUri": {
164
+ "type": "string"
165
+ },
166
+ "anchorId": {
167
+ "type": "string"
168
+ },
169
+ "resource": {
170
+ "type": "string"
171
+ }
172
+ }
173
+ },
174
+ "page": {
175
+ "type": "object",
176
+ "additionalProperties": false,
177
+ "required": [
178
+ "pageNumber",
179
+ "pageInSection",
180
+ "pageName",
181
+ "width",
182
+ "height"
183
+ ],
184
+ "properties": {
185
+ "pageNumber": {
186
+ "type": "integer",
187
+ "minimum": 1
188
+ },
189
+ "pageInSection": {
190
+ "type": "integer",
191
+ "minimum": 1
192
+ },
193
+ "pageName": {
194
+ "type": "string",
195
+ "minLength": 1
196
+ },
197
+ "width": {
198
+ "type": "number",
199
+ "exclusiveMinimum": 0
200
+ },
201
+ "height": {
202
+ "type": "number",
203
+ "exclusiveMinimum": 0
204
+ },
205
+ "sectionIndex": {
206
+ "type": "integer",
207
+ "minimum": 0
208
+ }
209
+ }
210
+ },
211
+ "bindings": {
212
+ "type": "object",
213
+ "additionalProperties": false,
214
+ "required": [
215
+ "pageMapDigest",
216
+ "artifactRequestIds"
217
+ ],
218
+ "properties": {
219
+ "pageMapDigest": {
220
+ "type": "string",
221
+ "pattern": "^[0-9a-f]{64}$"
222
+ },
223
+ "htmlDigest": {
224
+ "type": "string",
225
+ "pattern": "^[0-9a-f]{64}$"
226
+ },
227
+ "pdfDigest": {
228
+ "type": "string",
229
+ "pattern": "^[0-9a-f]{64}$"
230
+ },
231
+ "artifactRequestIds": {
232
+ "type": "array",
233
+ "items": {
234
+ "type": "string"
235
+ }
236
+ },
237
+ "pdfByteDeterministic": {
238
+ "const": false
239
+ },
240
+ "volatilePdfMetadata": {
241
+ "type": "object",
242
+ "additionalProperties": {
243
+ "type": "string"
244
+ }
245
+ }
246
+ }
247
+ },
248
+ "fontIdentity": {
249
+ "type": "object",
250
+ "additionalProperties": false,
251
+ "required": [
252
+ "resolverContract",
253
+ "substitutionContractVersion",
254
+ "substitutionContractDigest",
255
+ "resolutionDigest"
256
+ ],
257
+ "properties": {
258
+ "resolverContract": {
259
+ "const": "https://docxodus.dev/contracts/font-resolver/v1"
260
+ },
261
+ "substitutionContractVersion": {
262
+ "const": 1
263
+ },
264
+ "substitutionContractDigest": {
265
+ "type": "string",
266
+ "pattern": "^[0-9a-f]{64}$"
267
+ },
268
+ "resolutionDigest": {
269
+ "type": "string",
270
+ "pattern": "^[0-9a-f]{64}$"
271
+ },
272
+ "resolverDigest": {
273
+ "type": "string",
274
+ "pattern": "^[0-9a-f]{64}$"
275
+ }
276
+ }
277
+ },
278
+ "limits": {
279
+ "type": "object",
280
+ "additionalProperties": false,
281
+ "required": [
282
+ "compressedDocxBytes",
283
+ "opcEntries",
284
+ "expandedOpcBytes",
285
+ "xmlPartBytes",
286
+ "opcUriCharacters",
287
+ "opcCompressionRatio",
288
+ "htmlOutputBytes",
289
+ "pdfOutputBytes",
290
+ "pageMapOutputBytes",
291
+ "renderReportOutputBytes",
292
+ "pdfParserExpandedBytes",
293
+ "finalPages",
294
+ "domNodes",
295
+ "automaticResources",
296
+ "automaticResourceBytes",
297
+ "renderDiagnostics",
298
+ "fontDirectoryEntries",
299
+ "fontFiles",
300
+ "fontFileBytes",
301
+ "fontTotalBytes",
302
+ "fontRequests",
303
+ "fontSampleCodePoints"
304
+ ],
305
+ "properties": {
306
+ "compressedDocxBytes": {
307
+ "type": "integer",
308
+ "minimum": 1
309
+ },
310
+ "opcEntries": {
311
+ "type": "integer",
312
+ "minimum": 1
313
+ },
314
+ "expandedOpcBytes": {
315
+ "type": "integer",
316
+ "minimum": 1
317
+ },
318
+ "xmlPartBytes": {
319
+ "type": "integer",
320
+ "minimum": 1
321
+ },
322
+ "opcUriCharacters": {
323
+ "type": "integer",
324
+ "minimum": 1
325
+ },
326
+ "opcCompressionRatio": {
327
+ "type": "integer",
328
+ "minimum": 1
329
+ },
330
+ "htmlOutputBytes": {
331
+ "type": "integer",
332
+ "minimum": 1
333
+ },
334
+ "pdfOutputBytes": {
335
+ "type": "integer",
336
+ "minimum": 1
337
+ },
338
+ "pageMapOutputBytes": {
339
+ "type": "integer",
340
+ "minimum": 1
341
+ },
342
+ "renderReportOutputBytes": {
343
+ "type": "integer",
344
+ "minimum": 1
345
+ },
346
+ "pdfParserExpandedBytes": {
347
+ "type": "integer",
348
+ "minimum": 1
349
+ },
350
+ "finalPages": {
351
+ "type": "integer",
352
+ "minimum": 1
353
+ },
354
+ "domNodes": {
355
+ "type": "integer",
356
+ "minimum": 1
357
+ },
358
+ "automaticResources": {
359
+ "type": "integer",
360
+ "minimum": 1
361
+ },
362
+ "automaticResourceBytes": {
363
+ "type": "integer",
364
+ "minimum": 1
365
+ },
366
+ "renderDiagnostics": {
367
+ "type": "integer",
368
+ "minimum": 1
369
+ },
370
+ "fontDirectoryEntries": {
371
+ "type": "integer",
372
+ "minimum": 1
373
+ },
374
+ "fontFiles": {
375
+ "type": "integer",
376
+ "minimum": 1
377
+ },
378
+ "fontFileBytes": {
379
+ "type": "integer",
380
+ "minimum": 1
381
+ },
382
+ "fontTotalBytes": {
383
+ "type": "integer",
384
+ "minimum": 1
385
+ },
386
+ "fontRequests": {
387
+ "type": "integer",
388
+ "minimum": 1
389
+ },
390
+ "fontSampleCodePoints": {
391
+ "type": "integer",
392
+ "minimum": 1
393
+ }
394
+ }
395
+ },
396
+ "observedRuntime": {
397
+ "type": "object",
398
+ "additionalProperties": false,
399
+ "required": [
400
+ "runtimeKind",
401
+ "locale",
402
+ "timezone",
403
+ "viewport",
404
+ "deviceScaleFactor",
405
+ "media",
406
+ "networkIsolation"
407
+ ],
408
+ "properties": {
409
+ "runtimeKind": {
410
+ "enum": [
411
+ "browser",
412
+ "nodeChromium"
413
+ ]
414
+ },
415
+ "playwrightVersion": {
416
+ "type": "string",
417
+ "minLength": 1
418
+ },
419
+ "browserProduct": {
420
+ "type": "string",
421
+ "minLength": 1
422
+ },
423
+ "browserBuild": {
424
+ "type": "string",
425
+ "minLength": 1
426
+ },
427
+ "executableSha256": {
428
+ "type": "string",
429
+ "pattern": "^[0-9a-f]{64}$"
430
+ },
431
+ "launchFlags": {
432
+ "type": "array",
433
+ "items": {
434
+ "type": "string"
435
+ }
436
+ },
437
+ "operatingSystem": {
438
+ "type": "string",
439
+ "minLength": 1
440
+ },
441
+ "architecture": {
442
+ "type": "string",
443
+ "minLength": 1
444
+ },
445
+ "locale": {
446
+ "type": "string",
447
+ "minLength": 1
448
+ },
449
+ "timezone": {
450
+ "type": "string",
451
+ "minLength": 1
452
+ },
453
+ "viewport": {
454
+ "type": "array",
455
+ "prefixItems": [
456
+ {
457
+ "type": "number",
458
+ "exclusiveMinimum": 0
459
+ },
460
+ {
461
+ "type": "number",
462
+ "exclusiveMinimum": 0
463
+ }
464
+ ],
465
+ "items": false,
466
+ "minItems": 2,
467
+ "maxItems": 2
468
+ },
469
+ "deviceScaleFactor": {
470
+ "type": "number",
471
+ "exclusiveMinimum": 0
472
+ },
473
+ "media": {
474
+ "type": "object",
475
+ "additionalProperties": false,
476
+ "required": [
477
+ "colorScheme",
478
+ "reducedMotion",
479
+ "forcedColors",
480
+ "printMedia"
481
+ ],
482
+ "properties": {
483
+ "colorScheme": {
484
+ "enum": [
485
+ "light",
486
+ "dark",
487
+ "no-preference"
488
+ ]
489
+ },
490
+ "reducedMotion": {
491
+ "enum": [
492
+ "reduce",
493
+ "no-preference"
494
+ ]
495
+ },
496
+ "forcedColors": {
497
+ "enum": [
498
+ "active",
499
+ "none"
500
+ ]
501
+ },
502
+ "printMedia": {
503
+ "const": true
504
+ }
505
+ }
506
+ },
507
+ "networkIsolation": {
508
+ "enum": [
509
+ "ownedProcessRestricted",
510
+ "contextRestricted"
511
+ ]
512
+ }
513
+ }
514
+ },
515
+ "runtimeAttestation": {
516
+ "type": "object",
517
+ "additionalProperties": false,
518
+ "required": [
519
+ "chromiumProduct",
520
+ "chromiumBuild",
521
+ "executableSha256",
522
+ "launchFlags",
523
+ "hostFontsDigest",
524
+ "basis"
525
+ ],
526
+ "properties": {
527
+ "chromiumProduct": {
528
+ "type": "string",
529
+ "minLength": 1
530
+ },
531
+ "chromiumBuild": {
532
+ "type": "string",
533
+ "minLength": 1
534
+ },
535
+ "executableSha256": {
536
+ "type": "string",
537
+ "pattern": "^[0-9a-f]{64}$"
538
+ },
539
+ "launchFlags": {
540
+ "type": "array",
541
+ "items": {
542
+ "type": "string"
543
+ }
544
+ },
545
+ "hostFontsDigest": {
546
+ "type": "string",
547
+ "pattern": "^[0-9a-f]{64}$"
548
+ },
549
+ "basis": {
550
+ "type": "string",
551
+ "minLength": 1
552
+ }
553
+ }
554
+ },
555
+ "baseProperties": {
556
+ "schema": {
557
+ "const": "https://docxodus.dev/schemas/render/render-report/v2"
558
+ },
559
+ "schemaVersion": {
560
+ "const": 2
561
+ },
562
+ "source": {
563
+ "type": "object",
564
+ "additionalProperties": false,
565
+ "required": [
566
+ "rawPackageBytesDigest",
567
+ "byteLength",
568
+ "documentVersion"
569
+ ],
570
+ "properties": {
571
+ "rawPackageBytesDigest": {
572
+ "type": "string",
573
+ "pattern": "^[0-9a-f]{64}$"
574
+ },
575
+ "byteLength": {
576
+ "type": "integer",
577
+ "minimum": 1
578
+ },
579
+ "documentVersion": {
580
+ "type": "integer",
581
+ "minimum": 0,
582
+ "maximum": 9007199254740991
583
+ }
584
+ }
585
+ },
586
+ "derivedProfileSource": {
587
+ "type": "object",
588
+ "additionalProperties": false,
589
+ "required": [
590
+ "rawPackageBytesDigest",
591
+ "byteLength"
592
+ ],
593
+ "properties": {
594
+ "rawPackageBytesDigest": {
595
+ "type": "string",
596
+ "pattern": "^[0-9a-f]{64}$"
597
+ },
598
+ "byteLength": {
599
+ "type": "integer",
600
+ "minimum": 1
601
+ }
602
+ }
603
+ },
604
+ "options": {
605
+ "type": "object",
606
+ "additionalProperties": false,
607
+ "required": [
608
+ "reviewProfile",
609
+ "reviewProfileAlreadyApplied",
610
+ "commentProfile",
611
+ "title",
612
+ "outputs",
613
+ "layoutDigest",
614
+ "runtimePolicyDigest",
615
+ "policy"
616
+ ],
617
+ "properties": {
618
+ "reviewProfile": {
619
+ "enum": [
620
+ "final",
621
+ "original",
622
+ "markup"
623
+ ]
624
+ },
625
+ "reviewProfileAlreadyApplied": {
626
+ "type": "boolean"
627
+ },
628
+ "commentProfile": {
629
+ "enum": [
630
+ "hidden",
631
+ "inline",
632
+ "endnotes",
633
+ "margin"
634
+ ]
635
+ },
636
+ "title": {
637
+ "type": "string"
638
+ },
639
+ "outputs": {
640
+ "oneOf": [
641
+ {
642
+ "const": []
643
+ },
644
+ {
645
+ "const": [
646
+ "html"
647
+ ]
648
+ },
649
+ {
650
+ "const": [
651
+ "pdf"
652
+ ]
653
+ },
654
+ {
655
+ "const": [
656
+ "html",
657
+ "pdf"
658
+ ]
659
+ }
660
+ ]
661
+ },
662
+ "layoutDigest": {
663
+ "type": "string",
664
+ "pattern": "^[0-9a-f]{64}$"
665
+ },
666
+ "runtimePolicyDigest": {
667
+ "type": "string",
668
+ "pattern": "^[0-9a-f]{64}$"
669
+ },
670
+ "policy": {
671
+ "type": "object",
672
+ "additionalProperties": false,
673
+ "required": [
674
+ "unsupportedContent",
675
+ "strictFonts",
676
+ "timeoutMs",
677
+ "limits"
678
+ ],
679
+ "properties": {
680
+ "unsupportedContent": {
681
+ "enum": [
682
+ "warn",
683
+ "strict"
684
+ ]
685
+ },
686
+ "strictFonts": {
687
+ "type": "boolean"
688
+ },
689
+ "timeoutMs": {
690
+ "type": "integer",
691
+ "minimum": 1
692
+ },
693
+ "limits": {
694
+ "$ref": "#/$defs/limits"
695
+ }
696
+ }
697
+ }
698
+ }
699
+ },
700
+ "readiness": {
701
+ "type": "array",
702
+ "items": {
703
+ "type": "object",
704
+ "additionalProperties": false,
705
+ "required": [
706
+ "phase",
707
+ "status",
708
+ "elapsedMs",
709
+ "pending"
710
+ ],
711
+ "properties": {
712
+ "phase": {
713
+ "$ref": "#/$defs/phase"
714
+ },
715
+ "status": {
716
+ "enum": [
717
+ "complete",
718
+ "failed",
719
+ "cancelled"
720
+ ]
721
+ },
722
+ "elapsedMs": {
723
+ "type": "number",
724
+ "minimum": 0
725
+ },
726
+ "pending": {
727
+ "type": "array",
728
+ "items": {
729
+ "type": "string"
730
+ }
731
+ }
732
+ }
733
+ }
734
+ },
735
+ "fonts": {
736
+ "type": "array",
737
+ "items": {
738
+ "type": "object",
739
+ "additionalProperties": false,
740
+ "required": [
741
+ "requestId",
742
+ "requestedFamily",
743
+ "requestedFamilies",
744
+ "requestedFamilyKinds",
745
+ "requestedStyle",
746
+ "requestedWeight",
747
+ "requestedStretch",
748
+ "sampleCodePointCount",
749
+ "sampleDigest",
750
+ "status",
751
+ "source",
752
+ "verified"
753
+ ],
754
+ "properties": {
755
+ "requestId": {
756
+ "type": "string",
757
+ "minLength": 1
758
+ },
759
+ "requestedFamily": {
760
+ "type": "string",
761
+ "minLength": 1
762
+ },
763
+ "requestedFamilies": {
764
+ "type": "array",
765
+ "items": {
766
+ "type": "string",
767
+ "minLength": 1
768
+ }
769
+ },
770
+ "requestedFamilyKinds": {
771
+ "type": "array",
772
+ "items": {
773
+ "enum": [
774
+ "named",
775
+ "generic"
776
+ ]
777
+ }
778
+ },
779
+ "requestedStyle": {
780
+ "enum": [
781
+ "normal",
782
+ "italic",
783
+ "oblique"
784
+ ]
785
+ },
786
+ "requestedWeight": {
787
+ "type": "integer",
788
+ "minimum": 1,
789
+ "maximum": 1000
790
+ },
791
+ "requestedStretch": {
792
+ "type": "number",
793
+ "exclusiveMinimum": 0
794
+ },
795
+ "sampleCodePointCount": {
796
+ "type": "integer",
797
+ "minimum": 0
798
+ },
799
+ "sampleDigest": {
800
+ "type": "string",
801
+ "pattern": "^[0-9a-f]{64}$"
802
+ },
803
+ "resolvedFamily": {
804
+ "type": "string",
805
+ "minLength": 1
806
+ },
807
+ "resolvedFace": {
808
+ "type": "string",
809
+ "minLength": 1
810
+ },
811
+ "status": {
812
+ "enum": [
813
+ "resolved",
814
+ "substituted",
815
+ "missing",
816
+ "load_failed",
817
+ "unverified"
818
+ ]
819
+ },
820
+ "source": {
821
+ "enum": [
822
+ "browser",
823
+ "configured",
824
+ "attested"
825
+ ]
826
+ },
827
+ "format": {
828
+ "enum": [
829
+ "ttf",
830
+ "otf",
831
+ "woff",
832
+ "woff2"
833
+ ]
834
+ },
835
+ "fileSha256": {
836
+ "type": "string",
837
+ "pattern": "^[0-9a-f]{64}$"
838
+ },
839
+ "version": {
840
+ "type": "string",
841
+ "minLength": 1
842
+ },
843
+ "faceMatch": {
844
+ "enum": [
845
+ "exact",
846
+ "synthesized"
847
+ ]
848
+ },
849
+ "metricCompatible": {
850
+ "type": "boolean"
851
+ },
852
+ "glyphCoverage": {
853
+ "enum": [
854
+ "complete",
855
+ "partial",
856
+ "unverified"
857
+ ]
858
+ },
859
+ "missingCodePointCount": {
860
+ "type": "integer",
861
+ "minimum": 0
862
+ },
863
+ "browserFallbackAvailable": {
864
+ "type": "boolean"
865
+ },
866
+ "licenseEvidence": {
867
+ "type": "object",
868
+ "additionalProperties": false,
869
+ "required": [
870
+ "kind",
871
+ "identity",
872
+ "noSubsetting"
873
+ ],
874
+ "properties": {
875
+ "kind": {
876
+ "enum": [
877
+ "installable",
878
+ "previewPrint",
879
+ "editable",
880
+ "attested"
881
+ ]
882
+ },
883
+ "identity": {
884
+ "type": "string",
885
+ "pattern": "^[0-9a-f]{64}$"
886
+ },
887
+ "noSubsetting": {
888
+ "type": "boolean"
889
+ }
890
+ }
891
+ },
892
+ "verified": {
893
+ "type": "boolean"
894
+ },
895
+ "loadFailureDetail": {
896
+ "type": "string",
897
+ "minLength": 1
898
+ }
899
+ }
900
+ }
901
+ },
902
+ "resources": {
903
+ "type": "array",
904
+ "items": {
905
+ "type": "object",
906
+ "additionalProperties": false,
907
+ "required": [
908
+ "kind",
909
+ "status"
910
+ ],
911
+ "properties": {
912
+ "kind": {
913
+ "enum": [
914
+ "image",
915
+ "svg",
916
+ "chart",
917
+ "external_link"
918
+ ]
919
+ },
920
+ "status": {
921
+ "enum": [
922
+ "embedded",
923
+ "inline",
924
+ "allowed_user_link",
925
+ "omitted"
926
+ ]
927
+ },
928
+ "resource": {
929
+ "type": "string"
930
+ },
931
+ "mediaType": {
932
+ "type": "string",
933
+ "minLength": 1
934
+ },
935
+ "byteLength": {
936
+ "type": "integer",
937
+ "minimum": 0
938
+ }
939
+ }
940
+ }
941
+ },
942
+ "unsupportedContent": {
943
+ "type": "array",
944
+ "items": {
945
+ "type": "object",
946
+ "additionalProperties": false,
947
+ "required": [
948
+ "contentType",
949
+ "action"
950
+ ],
951
+ "properties": {
952
+ "contentType": {
953
+ "type": "string",
954
+ "minLength": 1
955
+ },
956
+ "elementName": {
957
+ "type": "string",
958
+ "minLength": 1
959
+ },
960
+ "anchorId": {
961
+ "type": "string",
962
+ "minLength": 1
963
+ },
964
+ "action": {
965
+ "const": "placeholder"
966
+ }
967
+ }
968
+ }
969
+ },
970
+ "fontIdentity": {
971
+ "$ref": "#/$defs/fontIdentity"
972
+ },
973
+ "warnings": {
974
+ "type": "array",
975
+ "items": {
976
+ "$ref": "#/$defs/warning"
977
+ }
978
+ }
979
+ },
980
+ "complete": {
981
+ "type": "object",
982
+ "additionalProperties": false,
983
+ "required": [
984
+ "schema",
985
+ "schemaVersion",
986
+ "source",
987
+ "options",
988
+ "readiness",
989
+ "fonts",
990
+ "resources",
991
+ "unsupportedContent",
992
+ "warnings",
993
+ "fontIdentity",
994
+ "status",
995
+ "environment",
996
+ "pages",
997
+ "bindings"
998
+ ],
999
+ "properties": {
1000
+ "schema": {
1001
+ "const": "https://docxodus.dev/schemas/render/render-report/v1"
1002
+ },
1003
+ "schemaVersion": {
1004
+ "const": 1
1005
+ },
1006
+ "source": {
1007
+ "$ref": "#/$defs/baseProperties/source"
1008
+ },
1009
+ "derivedProfileSource": {
1010
+ "$ref": "#/$defs/baseProperties/derivedProfileSource"
1011
+ },
1012
+ "options": {
1013
+ "$ref": "#/$defs/baseProperties/options"
1014
+ },
1015
+ "readiness": {
1016
+ "allOf": [
1017
+ {
1018
+ "$ref": "#/$defs/baseProperties/readiness"
1019
+ },
1020
+ {
1021
+ "items": {
1022
+ "properties": {
1023
+ "status": {
1024
+ "const": "complete"
1025
+ }
1026
+ }
1027
+ }
1028
+ }
1029
+ ]
1030
+ },
1031
+ "fonts": {
1032
+ "$ref": "#/$defs/baseProperties/fonts"
1033
+ },
1034
+ "resources": {
1035
+ "$ref": "#/$defs/baseProperties/resources"
1036
+ },
1037
+ "unsupportedContent": {
1038
+ "$ref": "#/$defs/baseProperties/unsupportedContent"
1039
+ },
1040
+ "fontIdentity": {
1041
+ "$ref": "#/$defs/fontIdentity"
1042
+ },
1043
+ "warnings": {
1044
+ "$ref": "#/$defs/baseProperties/warnings"
1045
+ },
1046
+ "status": {
1047
+ "const": "complete"
1048
+ },
1049
+ "environment": {
1050
+ "type": "object",
1051
+ "additionalProperties": false,
1052
+ "required": [
1053
+ "rendererFingerprint",
1054
+ "verification",
1055
+ "fidelityTier",
1056
+ "observed"
1057
+ ],
1058
+ "properties": {
1059
+ "rendererFingerprint": {
1060
+ "type": "string",
1061
+ "pattern": "^[0-9a-f]{64}$"
1062
+ },
1063
+ "verification": {
1064
+ "enum": [
1065
+ "nodeVerified",
1066
+ "browserObserved",
1067
+ "callerAttested"
1068
+ ]
1069
+ },
1070
+ "fidelityTier": {
1071
+ "enum": [
1072
+ "releaseBaselined",
1073
+ "experimental",
1074
+ "unbaselined"
1075
+ ]
1076
+ },
1077
+ "observed": {
1078
+ "$ref": "#/$defs/observedRuntime"
1079
+ },
1080
+ "attested": {
1081
+ "$ref": "#/$defs/runtimeAttestation"
1082
+ },
1083
+ "attestationDigest": {
1084
+ "type": "string",
1085
+ "pattern": "^[0-9a-f]{64}$"
1086
+ }
1087
+ },
1088
+ "allOf": [
1089
+ {
1090
+ "if": {
1091
+ "properties": {
1092
+ "verification": {
1093
+ "const": "callerAttested"
1094
+ }
1095
+ }
1096
+ },
1097
+ "then": {
1098
+ "required": [
1099
+ "attested",
1100
+ "attestationDigest"
1101
+ ]
1102
+ }
1103
+ },
1104
+ {
1105
+ "if": {
1106
+ "properties": {
1107
+ "verification": {
1108
+ "const": "nodeVerified"
1109
+ }
1110
+ }
1111
+ },
1112
+ "then": {
1113
+ "properties": {
1114
+ "observed": {
1115
+ "required": [
1116
+ "playwrightVersion",
1117
+ "browserProduct",
1118
+ "browserBuild",
1119
+ "executableSha256",
1120
+ "launchFlags",
1121
+ "operatingSystem",
1122
+ "architecture"
1123
+ ]
1124
+ }
1125
+ }
1126
+ }
1127
+ }
1128
+ ]
1129
+ },
1130
+ "pages": {
1131
+ "type": "array",
1132
+ "minItems": 1,
1133
+ "items": {
1134
+ "$ref": "#/$defs/page"
1135
+ }
1136
+ },
1137
+ "bindings": {
1138
+ "$ref": "#/$defs/bindings"
1139
+ }
1140
+ },
1141
+ "allOf": [
1142
+ {
1143
+ "if": {
1144
+ "properties": {
1145
+ "options": {
1146
+ "properties": {
1147
+ "outputs": {
1148
+ "contains": {
1149
+ "const": "html"
1150
+ }
1151
+ }
1152
+ }
1153
+ }
1154
+ }
1155
+ },
1156
+ "then": {
1157
+ "properties": {
1158
+ "bindings": {
1159
+ "required": [
1160
+ "htmlDigest"
1161
+ ]
1162
+ }
1163
+ }
1164
+ },
1165
+ "else": {
1166
+ "properties": {
1167
+ "bindings": {
1168
+ "not": {
1169
+ "required": [
1170
+ "htmlDigest"
1171
+ ]
1172
+ }
1173
+ }
1174
+ }
1175
+ }
1176
+ },
1177
+ {
1178
+ "if": {
1179
+ "properties": {
1180
+ "options": {
1181
+ "properties": {
1182
+ "outputs": {
1183
+ "contains": {
1184
+ "const": "pdf"
1185
+ }
1186
+ }
1187
+ }
1188
+ }
1189
+ }
1190
+ },
1191
+ "then": {
1192
+ "properties": {
1193
+ "bindings": {
1194
+ "required": [
1195
+ "pdfDigest"
1196
+ ]
1197
+ }
1198
+ }
1199
+ },
1200
+ "else": {
1201
+ "properties": {
1202
+ "bindings": {
1203
+ "not": {
1204
+ "anyOf": [
1205
+ {
1206
+ "required": [
1207
+ "pdfDigest"
1208
+ ]
1209
+ },
1210
+ {
1211
+ "required": [
1212
+ "pdfByteDeterministic"
1213
+ ]
1214
+ },
1215
+ {
1216
+ "required": [
1217
+ "volatilePdfMetadata"
1218
+ ]
1219
+ }
1220
+ ]
1221
+ }
1222
+ }
1223
+ }
1224
+ }
1225
+ }
1226
+ ]
1227
+ },
1228
+ "failed": {
1229
+ "type": "object",
1230
+ "additionalProperties": false,
1231
+ "required": [
1232
+ "schema",
1233
+ "schemaVersion",
1234
+ "source",
1235
+ "options",
1236
+ "readiness",
1237
+ "fonts",
1238
+ "resources",
1239
+ "unsupportedContent",
1240
+ "warnings",
1241
+ "status",
1242
+ "failure",
1243
+ "unavailable"
1244
+ ],
1245
+ "properties": {
1246
+ "schema": {
1247
+ "const": "https://docxodus.dev/schemas/render/render-report/v1"
1248
+ },
1249
+ "schemaVersion": {
1250
+ "const": 1
1251
+ },
1252
+ "source": {
1253
+ "$ref": "#/$defs/baseProperties/source"
1254
+ },
1255
+ "derivedProfileSource": {
1256
+ "$ref": "#/$defs/baseProperties/derivedProfileSource"
1257
+ },
1258
+ "options": {
1259
+ "$ref": "#/$defs/baseProperties/options"
1260
+ },
1261
+ "readiness": {
1262
+ "allOf": [
1263
+ {
1264
+ "$ref": "#/$defs/baseProperties/readiness"
1265
+ },
1266
+ {
1267
+ "contains": {
1268
+ "required": [
1269
+ "status"
1270
+ ],
1271
+ "properties": {
1272
+ "status": {
1273
+ "enum": [
1274
+ "failed",
1275
+ "cancelled"
1276
+ ]
1277
+ }
1278
+ }
1279
+ },
1280
+ "minContains": 1,
1281
+ "maxContains": 1
1282
+ }
1283
+ ]
1284
+ },
1285
+ "fonts": {
1286
+ "$ref": "#/$defs/baseProperties/fonts"
1287
+ },
1288
+ "resources": {
1289
+ "$ref": "#/$defs/baseProperties/resources"
1290
+ },
1291
+ "unsupportedContent": {
1292
+ "$ref": "#/$defs/baseProperties/unsupportedContent"
1293
+ },
1294
+ "fontIdentity": {
1295
+ "$ref": "#/$defs/fontIdentity"
1296
+ },
1297
+ "warnings": {
1298
+ "$ref": "#/$defs/baseProperties/warnings"
1299
+ },
1300
+ "status": {
1301
+ "const": "failed"
1302
+ },
1303
+ "failure": {
1304
+ "type": "object",
1305
+ "additionalProperties": false,
1306
+ "required": [
1307
+ "code",
1308
+ "severity",
1309
+ "phase",
1310
+ "message",
1311
+ "remediation"
1312
+ ],
1313
+ "properties": {
1314
+ "code": {
1315
+ "$ref": "#/$defs/errorCode"
1316
+ },
1317
+ "severity": {
1318
+ "const": "error"
1319
+ },
1320
+ "phase": {
1321
+ "$ref": "#/$defs/phase"
1322
+ },
1323
+ "message": {
1324
+ "type": "string",
1325
+ "minLength": 1
1326
+ },
1327
+ "remediation": {
1328
+ "type": "string",
1329
+ "minLength": 1
1330
+ },
1331
+ "detail": {
1332
+ "type": "string"
1333
+ },
1334
+ "pending": {
1335
+ "type": "array",
1336
+ "items": {
1337
+ "type": "string"
1338
+ }
1339
+ },
1340
+ "partUri": {
1341
+ "type": "string"
1342
+ },
1343
+ "anchorId": {
1344
+ "type": "string"
1345
+ },
1346
+ "resource": {
1347
+ "type": "string"
1348
+ }
1349
+ }
1350
+ },
1351
+ "environment": {
1352
+ "type": "object",
1353
+ "additionalProperties": false,
1354
+ "required": [
1355
+ "verification"
1356
+ ],
1357
+ "properties": {
1358
+ "rendererFingerprint": {
1359
+ "type": "string",
1360
+ "pattern": "^[0-9a-f]{64}$"
1361
+ },
1362
+ "verification": {
1363
+ "enum": [
1364
+ "nodeVerified",
1365
+ "browserObserved",
1366
+ "callerAttested"
1367
+ ]
1368
+ },
1369
+ "fidelityTier": {
1370
+ "enum": [
1371
+ "releaseBaselined",
1372
+ "experimental",
1373
+ "unbaselined"
1374
+ ]
1375
+ },
1376
+ "observed": {
1377
+ "$ref": "#/$defs/observedRuntime"
1378
+ },
1379
+ "attested": {
1380
+ "$ref": "#/$defs/runtimeAttestation"
1381
+ },
1382
+ "attestationDigest": {
1383
+ "type": "string",
1384
+ "pattern": "^[0-9a-f]{64}$"
1385
+ }
1386
+ },
1387
+ "allOf": [
1388
+ {
1389
+ "if": {
1390
+ "required": [
1391
+ "verification"
1392
+ ],
1393
+ "properties": {
1394
+ "verification": {
1395
+ "const": "callerAttested"
1396
+ }
1397
+ }
1398
+ },
1399
+ "then": {
1400
+ "required": [
1401
+ "attested",
1402
+ "attestationDigest"
1403
+ ]
1404
+ }
1405
+ }
1406
+ ]
1407
+ },
1408
+ "partial": {
1409
+ "type": "object",
1410
+ "additionalProperties": false,
1411
+ "properties": {
1412
+ "pages": {
1413
+ "type": "array",
1414
+ "items": {
1415
+ "$ref": "#/$defs/page"
1416
+ }
1417
+ },
1418
+ "bindings": {
1419
+ "type": "object",
1420
+ "additionalProperties": false,
1421
+ "properties": {
1422
+ "pageMapDigest": {
1423
+ "type": "string",
1424
+ "pattern": "^[0-9a-f]{64}$"
1425
+ },
1426
+ "htmlDigest": {
1427
+ "type": "string",
1428
+ "pattern": "^[0-9a-f]{64}$"
1429
+ },
1430
+ "pdfDigest": {
1431
+ "type": "string",
1432
+ "pattern": "^[0-9a-f]{64}$"
1433
+ },
1434
+ "artifactRequestIds": {
1435
+ "type": "array",
1436
+ "items": {
1437
+ "type": "string"
1438
+ }
1439
+ },
1440
+ "pdfByteDeterministic": {
1441
+ "const": false
1442
+ },
1443
+ "volatilePdfMetadata": {
1444
+ "type": "object",
1445
+ "additionalProperties": {
1446
+ "type": "string"
1447
+ }
1448
+ }
1449
+ }
1450
+ }
1451
+ }
1452
+ },
1453
+ "unavailable": {
1454
+ "type": "array",
1455
+ "maxItems": 4,
1456
+ "items": {
1457
+ "type": "object",
1458
+ "additionalProperties": false,
1459
+ "required": [
1460
+ "field",
1461
+ "reasonCode",
1462
+ "detail"
1463
+ ],
1464
+ "properties": {
1465
+ "field": {
1466
+ "enum": [
1467
+ "environment.rendererFingerprint",
1468
+ "bindings.pageMapDigest",
1469
+ "bindings.htmlDigest",
1470
+ "bindings.pdfDigest"
1471
+ ]
1472
+ },
1473
+ "reasonCode": {
1474
+ "enum": [
1475
+ "notReached",
1476
+ "notRequested",
1477
+ "failedVerification",
1478
+ "discardedOnFailure"
1479
+ ]
1480
+ },
1481
+ "detail": {
1482
+ "type": "string",
1483
+ "minLength": 1
1484
+ }
1485
+ }
1486
+ },
1487
+ "allOf": [
1488
+ {
1489
+ "contains": {
1490
+ "properties": {
1491
+ "field": {
1492
+ "const": "environment.rendererFingerprint"
1493
+ }
1494
+ }
1495
+ },
1496
+ "minContains": 0,
1497
+ "maxContains": 1
1498
+ },
1499
+ {
1500
+ "contains": {
1501
+ "properties": {
1502
+ "field": {
1503
+ "const": "bindings.pageMapDigest"
1504
+ }
1505
+ }
1506
+ },
1507
+ "minContains": 0,
1508
+ "maxContains": 1
1509
+ },
1510
+ {
1511
+ "contains": {
1512
+ "properties": {
1513
+ "field": {
1514
+ "const": "bindings.htmlDigest"
1515
+ }
1516
+ }
1517
+ },
1518
+ "minContains": 0,
1519
+ "maxContains": 1
1520
+ },
1521
+ {
1522
+ "contains": {
1523
+ "properties": {
1524
+ "field": {
1525
+ "const": "bindings.pdfDigest"
1526
+ }
1527
+ }
1528
+ },
1529
+ "minContains": 0,
1530
+ "maxContains": 1
1531
+ }
1532
+ ]
1533
+ }
1534
+ },
1535
+ "allOf": [
1536
+ {
1537
+ "if": {
1538
+ "properties": {
1539
+ "failure": {
1540
+ "required": [
1541
+ "code"
1542
+ ],
1543
+ "properties": {
1544
+ "code": {
1545
+ "const": "operation_cancelled"
1546
+ }
1547
+ }
1548
+ }
1549
+ }
1550
+ },
1551
+ "then": {
1552
+ "properties": {
1553
+ "readiness": {
1554
+ "contains": {
1555
+ "properties": {
1556
+ "status": {
1557
+ "const": "cancelled"
1558
+ }
1559
+ }
1560
+ }
1561
+ }
1562
+ }
1563
+ },
1564
+ "else": {
1565
+ "properties": {
1566
+ "readiness": {
1567
+ "contains": {
1568
+ "properties": {
1569
+ "status": {
1570
+ "const": "failed"
1571
+ }
1572
+ }
1573
+ }
1574
+ }
1575
+ }
1576
+ }
1577
+ }
1578
+ ]
1579
+ }
1580
+ }
1581
+ }