@kumwe/studio-testkit 0.1.0-alpha.7 → 0.1.0-alpha.8

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 (128) hide show
  1. package/README.md +50 -11
  2. package/corpus-manifest.json +381 -35
  3. package/dist/host-testbed.d.ts +22 -2
  4. package/dist/host-testbed.d.ts.map +1 -1
  5. package/dist/host-testbed.js +230 -35
  6. package/dist/host-testbed.js.map +1 -1
  7. package/dist/index.d.ts +40 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +36 -2
  10. package/dist/index.js.map +1 -1
  11. package/fixtures/host-capabilities.example.json +2 -2
  12. package/fixtures/preview.render.example.json +1 -0
  13. package/fixtures/studio-config.example.json +3 -3
  14. package/invalid/host-capabilities.invalid-protocol-version.json +1 -1
  15. package/invalid/host-sequence.pending-expectation.json +52 -0
  16. package/invalid/host-sequence.preview-render-missing-request-id.json +50 -0
  17. package/invalid/preview-message.activated-unknown-interaction.json +1 -1
  18. package/invalid/preview-message.duplicate-marker.json +24 -0
  19. package/invalid/preview-message.invalid-digest.json +1 -0
  20. package/invalid/preview-message.invalid-marker-grammar.json +19 -0
  21. package/invalid/preview-message.missing-marker-map.json +20 -0
  22. package/invalid/preview-message.missing-render-request-id.json +18 -0
  23. package/invalid/preview-message.unknown-type.json +13 -0
  24. package/invalid/preview-message.viewport-height-too-small.json +13 -0
  25. package/invalid/preview-message.viewport-unsafe-role.json +13 -0
  26. package/package.json +3 -3
  27. package/vectors/host/artifact.dependencies.result.json +2 -2
  28. package/vectors/host/artifact.load.stored.json +2 -2
  29. package/vectors/host/artifact.load.unknown.error.json +2 -2
  30. package/vectors/host/artifact.publish.accepted.json +2 -2
  31. package/vectors/host/artifact.publish.forbidden.error.json +1 -1
  32. package/vectors/host/artifact.publish.stale.error.json +2 -2
  33. package/vectors/host/artifact.save.accepted.json +2 -2
  34. package/vectors/host/artifact.save.forbidden.error.json +1 -1
  35. package/vectors/host/artifact.save.stale.error.json +2 -2
  36. package/vectors/host/artifact.unpublish.stale.error.json +2 -2
  37. package/vectors/host/envelope.malformed-context.error.json +2 -2
  38. package/vectors/host/envelope.protocol-version.error.json +1 -1
  39. package/vectors/host/envelope.stale-generation.error.json +2 -2
  40. package/vectors/host/localization.messages.unknown-locale.error.json +2 -2
  41. package/vectors/host/media.abort-upload.unknown.error.json +1 -1
  42. package/vectors/host/media.authorize-upload.granted.json +1 -1
  43. package/vectors/host/media.authorize-upload.path-filename.error.json +1 -1
  44. package/vectors/host/media.authorize-upload.too-large.error.json +1 -1
  45. package/vectors/host/media.complete-upload.unknown.error.json +1 -1
  46. package/vectors/host/media.get.unknown.json +2 -2
  47. package/vectors/host/media.import-external.private-host.error.json +1 -1
  48. package/vectors/host/media.list.cursor.error.json +2 -2
  49. package/vectors/host/media.list.limit.error.json +2 -2
  50. package/vectors/host/media.upload-status.unknown.error.json +1 -1
  51. package/vectors/host/permission.explain.withheld.json +2 -2
  52. package/vectors/host/permission.refresh.snapshot.json +2 -2
  53. package/vectors/host/recovery.load.absent.json +2 -2
  54. package/vectors/host/telemetry.emit.accepted.json +2 -2
  55. package/vectors/host/telemetry.emit.non-primitive.error.json +2 -2
  56. package/vectors/host-sequence/artifact.publish.changed-intent.sequence.json +75 -0
  57. package/vectors/host-sequence/artifact.publish.idempotent-replay.sequence.json +111 -0
  58. package/vectors/host-sequence/preview.cancel.cross-context.sequence.json +78 -0
  59. package/vectors/host-sequence/preview.render.cancelled.sequence.json +75 -0
  60. package/vectors/host-sequence/recovery.store.canonical-number.sequence.json +72 -0
  61. package/vectors/host-sequence/recovery.store.changed-context.sequence.json +61 -0
  62. package/vectors/host-sequence/recovery.store.rate-limited.sequence.json +93 -0
  63. package/vectors/host-sequence/recovery.store.resource-scope.sequence.json +61 -0
  64. package/vectors/host-sequence/recovery.store.wrong-operation-id.sequence.json +56 -0
  65. package/vectors/preview/canonical-preorder.json +102 -0
  66. package/vectors/preview/empty-draft.json +36 -0
  67. package/vectors/schema-profile/alternative-limit.accepted.json +95 -0
  68. package/vectors/schema-profile/alternative-limit.rejected.json +92 -0
  69. package/vectors/schema-profile/array-composition.accepted.json +35 -0
  70. package/vectors/schema-profile/byte-limit.accepted.json +30 -0
  71. package/vectors/schema-profile/byte-limit.rejected.json +26 -0
  72. package/vectors/schema-profile/closed-object.accepted.json +38 -0
  73. package/vectors/schema-profile/decimal-multiple.accepted.json +54 -0
  74. package/vectors/schema-profile/depth-limit.accepted.json +90 -0
  75. package/vectors/schema-profile/depth-limit.rejected.json +88 -0
  76. package/vectors/schema-profile/description-limit.accepted.json +29 -0
  77. package/vectors/schema-profile/description-limit.rejected.json +25 -0
  78. package/vectors/schema-profile/diagnostic-precedence.rejected.json +26 -0
  79. package/vectors/schema-profile/duplicate-dependent-required.rejected.json +21 -0
  80. package/vectors/schema-profile/duplicate-required.rejected.json +18 -0
  81. package/vectors/schema-profile/empty-combinator.rejected.json +17 -0
  82. package/vectors/schema-profile/empty-enum.rejected.json +17 -0
  83. package/vectors/schema-profile/enum-limit.accepted.json +89 -0
  84. package/vectors/schema-profile/enum-limit.rejected.json +84 -0
  85. package/vectors/schema-profile/examples-limit.accepted.json +35 -0
  86. package/vectors/schema-profile/examples-limit.rejected.json +31 -0
  87. package/vectors/schema-profile/format-keyword.rejected.json +17 -0
  88. package/vectors/schema-profile/forward-reference-path-precedence.rejected.json +20 -0
  89. package/vectors/schema-profile/invalid-pointer.rejected.json +18 -0
  90. package/vectors/schema-profile/json-depth-limit.accepted.json +278 -0
  91. package/vectors/schema-profile/json-depth-limit.rejected.json +276 -0
  92. package/vectors/schema-profile/json-item-limit.accepted.json +686 -0
  93. package/vectors/schema-profile/json-item-limit.rejected.json +682 -0
  94. package/vectors/schema-profile/json-property-limit.accepted.json +1031 -0
  95. package/vectors/schema-profile/json-property-limit.rejected.json +1028 -0
  96. package/vectors/schema-profile/local-reference.accepted.json +28 -0
  97. package/vectors/schema-profile/memoized-diagnostic.accepted.json +31 -0
  98. package/vectors/schema-profile/node-limit.accepted.json +1097 -0
  99. package/vectors/schema-profile/node-limit.rejected.json +1094 -0
  100. package/vectors/schema-profile/non-object-root.rejected.json +9 -0
  101. package/vectors/schema-profile/non-schema-reference.rejected.json +21 -0
  102. package/vectors/schema-profile/object-key-limit.accepted.json +32 -0
  103. package/vectors/schema-profile/object-key-limit.rejected.json +28 -0
  104. package/vectors/schema-profile/open-root.rejected.json +13 -0
  105. package/vectors/schema-profile/percent-encoded-pointer.rejected.json +26 -0
  106. package/vectors/schema-profile/property-name-limit.accepted.json +543 -0
  107. package/vectors/schema-profile/property-name-limit.rejected.json +536 -0
  108. package/vectors/schema-profile/recursive-diagnostic-precedence.rejected.json +30 -0
  109. package/vectors/schema-profile/recursive-reference.rejected.json +24 -0
  110. package/vectors/schema-profile/reference-fanout.accepted.json +662 -0
  111. package/vectors/schema-profile/reference-length-limit.accepted.json +45 -0
  112. package/vectors/schema-profile/reference-length-limit.rejected.json +39 -0
  113. package/vectors/schema-profile/reference-limit.accepted.json +416 -0
  114. package/vectors/schema-profile/reference-limit.rejected.json +415 -0
  115. package/vectors/schema-profile/reference-vs-keyword-precedence.rejected.json +22 -0
  116. package/vectors/schema-profile/reserved-pointer.rejected.json +26 -0
  117. package/vectors/schema-profile/root-diagnostic-precedence.rejected.json +16 -0
  118. package/vectors/schema-profile/root-vs-reference-precedence.rejected.json +19 -0
  119. package/vectors/schema-profile/schema-map-limit.accepted.json +539 -0
  120. package/vectors/schema-profile/schema-map-limit.rejected.json +536 -0
  121. package/vectors/schema-profile/semantic-recursion-precedence.rejected.json +21 -0
  122. package/vectors/schema-profile/semantic-reference-precedence.rejected.json +21 -0
  123. package/vectors/schema-profile/title-limit.accepted.json +29 -0
  124. package/vectors/schema-profile/title-limit.rejected.json +25 -0
  125. package/vectors/schema-profile/unresolved-reference.rejected.json +17 -0
  126. package/vectors/schema-profile/unsafe-dependent-required.rejected.json +24 -0
  127. package/vectors/schema-profile/unsafe-member.rejected.json +17 -0
  128. package/vectors/schema-profile/unsafe-required.rejected.json +17 -0
package/README.md CHANGED
@@ -18,19 +18,28 @@ so consumers may call the current assertion from any JavaScript test environment
18
18
  `createTestbedHost(options)` builds a deterministic, fully in-memory `HostAdapter` reference host
19
19
  for conformance and failure testing. Every standard port except `model` is implemented against
20
20
  seeded fixtures (`documents`, `resources`, `mediaAssets`, `messages`, `permissions`, and an
21
- optional preview `render` callback). Each operation first checks connectivity and injected
22
- failures, then validates the `HostRequestContext` envelope structurally (wrong wire protocol
23
- versions reject as `incompatible`), then enforces the current session generation. Every failure
24
- rejects with `TestbedHostError`, whose `error` document satisfies `isHostPortError`; `not-found`
25
- messages never disclose which identifiers exist. Revisions advance as deterministic counters
26
- (`<id>-r<n>`), optimistic-concurrency conflicts return the safe current revision without changing
21
+ optional asynchronous preview `render` callback). Each operation first validates connectivity and the
22
+ `HostRequestContext`, including exact operation-capability matching, wire protocol, and current session
23
+ generation. Every failure rejects with `TestbedHostError`, whose `error` document satisfies
24
+ `isHostPortError`; `not-found` messages never disclose which identifiers exist. Seed artifact kinds,
25
+ revisions, and the optional initial `sessionGeneration` are retained exactly; subsequent revisions
26
+ advance as deterministic counters (`<id>-r<n>`). Optimistic-concurrency conflicts return the safe
27
+ current revision without changing
27
28
  stored state, and search/media pagination uses opaque cursors. The returned `controls` drive
28
29
  failure scenarios: `disconnect()`/`reconnect()` for retryable `unavailable` outages,
29
30
  `failNext(port, operation, category)` for exactly one injected failure (retryable only for
30
31
  `unavailable` and `rate-limited`), and `setPermissions(...)`, which replaces the permission list
31
32
  and bumps the session generation so stale contexts reject as `invalid-request`. `revisionOf(id)`,
32
- the `sessionGeneration` getter, and the recorded `telemetryEvents` support assertions.
33
- `createHostRequestContextFixture` builds conforming request envelopes. The testbed uses no clocks,
33
+ the `sessionGeneration` getter, and the recorded `telemetryEvents` support assertions. The logical
34
+ `advanceClock()` control and declared fixed-window policies make rate-limit tests deterministic.
35
+ Idempotency records use the published scope/preimage, coalesce matching accepted mutations, reject
36
+ changed intent, and remove failed attempts. Preview render controls expose pending and delivered
37
+ outcomes so cancellation proves that late output is discarded. An injected renderer must return the
38
+ originating draft digest and render `requestId`; an uncorrelated result fails as non-retryable
39
+ `internal` and is never recorded as delivered.
40
+ `createHostRequestContextFixture` builds request envelopes; callers provide the exact operation ID for
41
+ strict hosts. The `allowTestOperationId` option permits only the fixture wildcard for broad unit drills,
42
+ defaults off, and must never be enabled for conformance replay. The testbed uses no wall clock,
34
43
  randomness, or timers, so runs are fully reproducible.
35
44
 
36
45
  ## Host conformance corpus
@@ -46,12 +55,42 @@ test suite without executing Studio code. The reference host's own claim against
46
55
  `test/host-vectors.test.ts`. The profile records the obligations it does not yet assert; consult
47
56
  `docs/contracts/conformance-profiles.md` before treating a green replay as complete coverage.
48
57
 
58
+ `@kumwe/studio-testkit/vectors/host-sequence/<filename>` publishes the additive assertion set for
59
+ `studio.profile/host-baseline-v2`. The bounded sequence shape expresses pending and settled operations,
60
+ fixed-window policies, explicit clock advances and renderer completions, and final state. Nine vectors
61
+ cover in-flight/completed replay, changed argument/context refusal, canonical numeric intent,
62
+ resource-scope separation, wrong-operation refusal, failed-attempt retry after a window reset, matching
63
+ preview cancellation with late-result discard, and cross-context cancellation isolation. The
64
+ TypeScript replay is `test/host-sequence-vectors.test.ts`; other runtimes consume the same JSON and
65
+ schema directly. The exact assertion list and deliberately recorded limits live in
66
+ `docs/contracts/conformance-profiles.md`.
67
+
49
68
  `@kumwe/studio-testkit/vectors/canonical/<filename>` publishes the canonical serialization corpus:
50
69
  each vector carries a bounded value and either the exact canonical string with the SRI-style digest of
51
70
  its UTF-8 bytes, or the stable reason the canonical form refuses it. Its expectations were produced by
52
71
  an independent canonicalizer rather than recorded from the reference implementation, so replaying it
53
72
  is a cross-implementation check.
54
73
 
74
+ `@kumwe/studio-testkit/vectors/preview/<filename>` publishes the executable assertion set for
75
+ `studio.profile/preview-identity-v1`. Each complete Blueprint fixes the lowercase SHA-256 digest of
76
+ its canonical UTF-8 bytes, the artifact/revision/digest render tuple with a unique attempt ID, and the
77
+ exact marker preorder plus one-to-one marker map. The reference replay is
78
+ `test/preview-vectors.test.ts`; another runtime hashes and traverses the same JSON without executing
79
+ Studio code.
80
+
81
+ `@kumwe/studio-testkit/vectors/schema-profile/<filename>` publishes the executable assertion set for
82
+ `studio.profile/schema-property`. Accepted candidates carry instance verdicts and the first stable
83
+ keyword/pointer diagnostic; rejected candidates carry the closed admission code and schema pointer.
84
+ `runSchemaProfileVector(vector)` replays one vector through the TypeScript reference without consulting
85
+ its expected verdicts or diagnostics. Other runtimes consume the same JSON directly and do not execute
86
+ testkit code. Boundary vectors identify their published limit, exact value, and side of the ceiling;
87
+ the corpus contains exactly one at-limit and one exact-plus-one case for every advertised limit. Its
88
+ acyclic-reference fan-out case must complete without expanding the reference DAG exponentially. The
89
+ TypeScript reference exposes the full ordered set of distinct failures: repeated branches do not
90
+ duplicate an otherwise identical keyword, instance pointer, and message diagnostic.
91
+ Competing-failure vectors also pin one admission order across root invariants, local-reference
92
+ resolution, recursion, and structural keyword checks.
93
+
55
94
  `@kumwe/studio-testkit/corpus-manifest.json` carries the sha256 digest of every file in the published
56
95
  corpus, grouped by the directory it ships in. A host that vendors the corpus verifies its copy against
57
96
  this manifest, so a stale or altered fixture is detected before it silently changes what a conformance
@@ -60,6 +99,6 @@ replayed against them.
60
99
 
61
100
  Gate A requires valid and invalid fixture corpora plus runner-neutral assertions for block, theme,
62
101
  plugin, host-port, command, preview, media, compatibility, migration, lifecycle, security,
63
- accessibility, localization, and TypeScript/Dart equivalence. The host-port corpus above is the first
64
- of those to land; the remainder are target deliverables and this foundation alpha must not be cited as
65
- their evidence.
102
+ accessibility, localization, and TypeScript/Dart equivalence. The host-port and narrow preview-identity
103
+ corpora are executable increments; the remaining profiles are target deliverables, and this foundation
104
+ alpha must not be cited as gate evidence.
@@ -36,7 +36,7 @@
36
36
  "file": "field-adapter.example.json"
37
37
  },
38
38
  {
39
- "digest": "sha256-ZilbHHYkTbgxfMo+rNJDKERni5qk8n4vNDDaymGECpQ=",
39
+ "digest": "sha256-LvEOb+9bGayzWeYiU+qCHr9qjBNeJUqwyVdok17ITWQ=",
40
40
  "file": "host-capabilities.example.json"
41
41
  },
42
42
  {
@@ -84,7 +84,7 @@
84
84
  "file": "plugin.example.json"
85
85
  },
86
86
  {
87
- "digest": "sha256-gkNpbvRhQ5cxSy/UYk3fIn3Q2JjoSXBanL70FZBirpk=",
87
+ "digest": "sha256-YunB5lUf+Dy3jEx6bBPiNaPqcPF34j7g8bkpAKTQAHE=",
88
88
  "file": "preview.render.example.json"
89
89
  },
90
90
  {
@@ -96,7 +96,7 @@
96
96
  "file": "rich-text.example.json"
97
97
  },
98
98
  {
99
- "digest": "sha256-fyyLCjR1BnpSrIAbGROfw9kOVk3TUyTJn7LG8nL/CCE=",
99
+ "digest": "sha256-FzjalpM4jDkbkK8rGnmH6HSFxU9PhMp0vI9aPTCyEJE=",
100
100
  "file": "studio-config.example.json"
101
101
  },
102
102
  {
@@ -410,125 +410,435 @@
410
410
  {
411
411
  "files": [
412
412
  {
413
- "digest": "sha256-w0N79fEQC7gnxC5DzTS+x7VBS7KgamrDbErpA0o7DC0=",
413
+ "digest": "sha256-ydZULI6/ASwfyjFD4xIpRU4nrTgOkJu9AsJzBgUQKXg=",
414
414
  "file": "artifact.dependencies.result.json"
415
415
  },
416
416
  {
417
- "digest": "sha256-tOiUbk0zUrKIyVMc5ivhuWeUmRaacstgPGPAuHF/N48=",
417
+ "digest": "sha256-hKNuNyzzNWMx5MP7TliHwMo36Bjilcg0QjWSH04Xyvo=",
418
418
  "file": "artifact.load.stored.json"
419
419
  },
420
420
  {
421
- "digest": "sha256-APaYWk9SVl4g07C454KRLRMhvm0OYlFLfBNWJOBGeQM=",
421
+ "digest": "sha256-w1UatrQlhIX6HwlMtgYerLncjux0akFufLhgp5yYqFQ=",
422
422
  "file": "artifact.load.unknown.error.json"
423
423
  },
424
424
  {
425
- "digest": "sha256-pukZdcPaM+Fmdux3CUZ+YhmBzm8lqe1HAqzwxqMWi50=",
425
+ "digest": "sha256-4vcPPXzreu791xeNXllZWMJvE2jnSXYYN8+Ig2FP65k=",
426
426
  "file": "artifact.publish.accepted.json"
427
427
  },
428
428
  {
429
- "digest": "sha256-gHAYXwlP9KQmRe9tvJChEBV1vytdigb8hLE2L9ScJi0=",
429
+ "digest": "sha256-xMLhnxKJt014nxQFw8ji6yWxlgoBfYvNfa0Snww/4pc=",
430
430
  "file": "artifact.publish.forbidden.error.json"
431
431
  },
432
432
  {
433
- "digest": "sha256-ZghO4a2G/m+Qsm7GKK08H4VXOjI2YnVoZf/gno0DwZI=",
433
+ "digest": "sha256-BoUzxgxScMnX2S8Uepjs05HE3E3svNr43RQsRJi5Hwc=",
434
434
  "file": "artifact.publish.stale.error.json"
435
435
  },
436
436
  {
437
- "digest": "sha256-ttHtmVJqA8gQQmBm/twn1URbBaRlH3+mu0dmqbPoNlQ=",
437
+ "digest": "sha256-wqIt+J0HMW5KlDdqSSyhoGJN1mUz45mAbLed/tuhXTE=",
438
438
  "file": "artifact.save.accepted.json"
439
439
  },
440
440
  {
441
- "digest": "sha256-WKNcZI8MjSwKnoqepzBNtGxlRJMLJEkZ2poe5h2NTe4=",
441
+ "digest": "sha256-SD5vgEQVaNf8bo8OuauUmu+Htw1wSI1oQYuap3sSFVM=",
442
442
  "file": "artifact.save.forbidden.error.json"
443
443
  },
444
444
  {
445
- "digest": "sha256-/qvDomqS4JVeZnE8EjFAaKDFshAR3Ju8zZtfJyd/gFk=",
445
+ "digest": "sha256-uGo+aHKZEfmIh7Qn7ClAypJzrJBfvZiL3on0QEDGykE=",
446
446
  "file": "artifact.save.stale.error.json"
447
447
  },
448
448
  {
449
- "digest": "sha256-GXPWXjV+wJVHx6lRb+47tCdCRPvI1722sb4efbp0OXU=",
449
+ "digest": "sha256-64MnzAEAV2CRjo44DsbqfK3vKgXaz0jhggg9bHmQ2Uc=",
450
450
  "file": "artifact.unpublish.stale.error.json"
451
451
  },
452
452
  {
453
- "digest": "sha256-eTL6dmDe6kYPaGuBi4D11cC/qGUnNijVndjua4jSQD8=",
453
+ "digest": "sha256-Lxp7+dgciExF992LfHdznx3AusgMwou6pxwTlOtJX2I=",
454
454
  "file": "envelope.malformed-context.error.json"
455
455
  },
456
456
  {
457
- "digest": "sha256-ny3RjMleQPXm5+sb5x40ZnB7sS5P83LJQpmlY0z4m+I=",
457
+ "digest": "sha256-IEfTxQ3v58JNO8PtwVCl7yhOz28FTh9yy8wcn1ZeR0E=",
458
458
  "file": "envelope.protocol-version.error.json"
459
459
  },
460
460
  {
461
- "digest": "sha256-zZexqyAC6TF3k1hV4wDPSj4A8jBsIeuu/n4cM1vLV14=",
461
+ "digest": "sha256-08aKM610/Mdy8OeKGSBe7jSjPHeQ4DyYVkkoazuw0tc=",
462
462
  "file": "envelope.stale-generation.error.json"
463
463
  },
464
464
  {
465
- "digest": "sha256-lk800OVfx8cDI4Cs2ijHsGm43On7laormwltanR7kh0=",
465
+ "digest": "sha256-sUP6y7XqbfMlKSKcPy8bSpDRdTU/uNNqbxm/bSbWwgY=",
466
466
  "file": "localization.messages.unknown-locale.error.json"
467
467
  },
468
468
  {
469
- "digest": "sha256-URj/hzYrwLU72ytugSptlsTU9OnN2inqtkWuOnby2nU=",
469
+ "digest": "sha256-BzlJW89ivZ8mJ7DrT1pnKO90FIca4JAWbgFJssA5PTs=",
470
470
  "file": "media.abort-upload.unknown.error.json"
471
471
  },
472
472
  {
473
- "digest": "sha256-7bqasqlnrrHkgG1ZS8FtPOTmxsLuhCdajk6lOuQ1Yro=",
473
+ "digest": "sha256-9fprMT2KBXaHNDJeCq50X5fpJ7RMvTfLdcmY88URhlc=",
474
474
  "file": "media.authorize-upload.granted.json"
475
475
  },
476
476
  {
477
- "digest": "sha256-JBHaoYPBI993zdTYg5DhcM21W9s6FyDhDes16iz6A+c=",
477
+ "digest": "sha256-mBrrmHrUTH77zIVFCPHWmKCouuT8T5du8aARlqrC/p4=",
478
478
  "file": "media.authorize-upload.path-filename.error.json"
479
479
  },
480
480
  {
481
- "digest": "sha256-XFhM1WYvt3AfVGOf9zll+OV6C/IYPYqqB7zNYpx3MOA=",
481
+ "digest": "sha256-WFUPhLVI7ls+WiNIPB59BZ589j3FQV2W6xYnwFPxFQE=",
482
482
  "file": "media.authorize-upload.too-large.error.json"
483
483
  },
484
484
  {
485
- "digest": "sha256-Pe+YnzRbsqK6lvws1SMt6IbCBxYrKGoiCmseRmlTMCI=",
485
+ "digest": "sha256-698RIM3kvt/croygrkE1Yx4ca3xtXQWBd5/YIGtsGOg=",
486
486
  "file": "media.complete-upload.unknown.error.json"
487
487
  },
488
488
  {
489
- "digest": "sha256-r4yI0cQHgOfiHp1ik+k2esU06v8lBUBdiCaC47jmbBE=",
489
+ "digest": "sha256-6MOE+uVaY61eXfcK3AGR2JWIcDH8uRzdOUVHYkmKLas=",
490
490
  "file": "media.get.unknown.json"
491
491
  },
492
492
  {
493
- "digest": "sha256-gEHxA7ashgwVZ4JdTVFahjX2LpfscWMsGkVJY88Mcig=",
493
+ "digest": "sha256-cFXsIN/ssXNcOHoqmhColAD1rqKa+nUVGiWx8Cmoqvc=",
494
494
  "file": "media.import-external.private-host.error.json"
495
495
  },
496
496
  {
497
- "digest": "sha256-mYReHILKQddQUcj7rlK7owT3yVU/xb393q35xC+k0qs=",
497
+ "digest": "sha256-osFldrIdCSx7+LTZJaS7sBIp8oUuktfGml1hfm4jLUQ=",
498
498
  "file": "media.list.cursor.error.json"
499
499
  },
500
500
  {
501
- "digest": "sha256-rvmWSE+Vi3+0ySb6gh0LPonri5H2dbznKeDRA4qnUAM=",
501
+ "digest": "sha256-QM1wLPw8PDxHq23adJeFO0nVHoEmF6MR266c1VF9038=",
502
502
  "file": "media.list.limit.error.json"
503
503
  },
504
504
  {
505
- "digest": "sha256-+jOmZTRQCjt4muQyDT7TE70GvETvPJo3KZUn0wUIr5A=",
505
+ "digest": "sha256-6lCxcY8XnoOmYrApFVs0f8lJophb4fJDSY0Rs9Okiss=",
506
506
  "file": "media.upload-status.unknown.error.json"
507
507
  },
508
508
  {
509
- "digest": "sha256-bHF4gtEuzcJcD45BuFbq/v6QKtz9AHgOyyg0kEry3+k=",
509
+ "digest": "sha256-WMY/mRoj/RQtTk51Tq4yhObfMO84ZPdnC4LzV5QXaFE=",
510
510
  "file": "permission.explain.withheld.json"
511
511
  },
512
512
  {
513
- "digest": "sha256-AjiqUwQ9SuaQI4ma6N6OVFR3Re4bGBTH7UUY2EC6BGw=",
513
+ "digest": "sha256-Pj1d2nKUL2bWXvq5MSJAdopRzTQQJ5j/dpcJyI2ww/8=",
514
514
  "file": "permission.refresh.snapshot.json"
515
515
  },
516
516
  {
517
- "digest": "sha256-gdcmKhQxjrU94asGpbKqPcv8k6lmIZBdtYpVT69G+S4=",
517
+ "digest": "sha256-9Nr+oT8Z2Hus7DEayr9lLw1QoYVImWiBaV2LQvN98+o=",
518
518
  "file": "recovery.load.absent.json"
519
519
  },
520
520
  {
521
- "digest": "sha256-EZzmwENxG/TGzml5SxiZkVEB7sl1B0bxLXxQc5A5fRg=",
521
+ "digest": "sha256-r6u3YhuqsV/cB1Q1VNPVW4ok7Pn4U26ilIT4gv5KVkk=",
522
522
  "file": "telemetry.emit.accepted.json"
523
523
  },
524
524
  {
525
- "digest": "sha256-vZUJjQOORjCXg0eVpZtMl5FQP7GyodFGxEDxg0cVpGc=",
525
+ "digest": "sha256-UaxLfaD3MVQ+HCpgH2gny1PhwljdzdPBHguSrtQguqk=",
526
526
  "file": "telemetry.emit.non-primitive.error.json"
527
527
  }
528
528
  ],
529
529
  "group": "host-vectors",
530
530
  "path": "vectors/host"
531
531
  },
532
+ {
533
+ "files": [
534
+ {
535
+ "digest": "sha256-0aky2qxEPAlTujukSgUegnWCGIINm8RPvanP9YikiTw=",
536
+ "file": "artifact.publish.changed-intent.sequence.json"
537
+ },
538
+ {
539
+ "digest": "sha256-r+N2rk0C9m0Z8azL2ODCbnupx0V5WP3NzZPmHfxYwsU=",
540
+ "file": "artifact.publish.idempotent-replay.sequence.json"
541
+ },
542
+ {
543
+ "digest": "sha256-iHqWx7hos7SD3TfdpREzhET+WFymV/Wn/MQiibRhWdg=",
544
+ "file": "preview.cancel.cross-context.sequence.json"
545
+ },
546
+ {
547
+ "digest": "sha256-cV+tyEOU52pQixA/PIDQ6DQqugH46tMMlNFp3vDDbGY=",
548
+ "file": "preview.render.cancelled.sequence.json"
549
+ },
550
+ {
551
+ "digest": "sha256-aW9P8eGUjGJ8aGqXgOn6MnhvCEkjCNd/6s2hgBWLuls=",
552
+ "file": "recovery.store.canonical-number.sequence.json"
553
+ },
554
+ {
555
+ "digest": "sha256-iggSi0IpPG1sntUQDj4QV8hEwYobCBJhGsjpH8onLy4=",
556
+ "file": "recovery.store.changed-context.sequence.json"
557
+ },
558
+ {
559
+ "digest": "sha256-5sWl2iIySs0+0hGH4lnKoHIIeQEG7J2gVJQlyPla5GE=",
560
+ "file": "recovery.store.rate-limited.sequence.json"
561
+ },
562
+ {
563
+ "digest": "sha256-LbAndTtFRK5fa0VMPzb9tEA/rkKfpqOxLCPddFgys1Y=",
564
+ "file": "recovery.store.resource-scope.sequence.json"
565
+ },
566
+ {
567
+ "digest": "sha256-l/g4M7YZj5juZeVLbLImOoQW+gCDKOlK4PeKzzHq2d8=",
568
+ "file": "recovery.store.wrong-operation-id.sequence.json"
569
+ }
570
+ ],
571
+ "group": "host-sequence-vectors",
572
+ "path": "vectors/host-sequence"
573
+ },
574
+ {
575
+ "files": [
576
+ {
577
+ "digest": "sha256-6+FxAWx+Ml5Gj5bwlFIo68XVPGwi2sPBf64g5WVjH3U=",
578
+ "file": "canonical-preorder.json"
579
+ },
580
+ {
581
+ "digest": "sha256-frJQ1q9uQnjbAZkfd2YtsAGpKsEz0hVv3NSnUldgF9I=",
582
+ "file": "empty-draft.json"
583
+ }
584
+ ],
585
+ "group": "preview-vectors",
586
+ "path": "vectors/preview"
587
+ },
588
+ {
589
+ "files": [
590
+ {
591
+ "digest": "sha256-TwBq2SWaFjW3IsZlVGIAvIRN1eIdeLkwuDkMmPkpHf4=",
592
+ "file": "alternative-limit.accepted.json"
593
+ },
594
+ {
595
+ "digest": "sha256-VWqtyYqGM1PFbFkQbGIBtEhoIPIUBPt7mIhboILQKDs=",
596
+ "file": "alternative-limit.rejected.json"
597
+ },
598
+ {
599
+ "digest": "sha256-E6JothQCmbQpns86xOqmldRGQIYbwN2/cmN+sS8z1fA=",
600
+ "file": "array-composition.accepted.json"
601
+ },
602
+ {
603
+ "digest": "sha256-455K5YKY9qvmK0cPo2TI/zStFSpu3xWd+doVkuVi84g=",
604
+ "file": "byte-limit.accepted.json"
605
+ },
606
+ {
607
+ "digest": "sha256-F4kh58JL/puXLxNDtBUzE8+QoOpbWa21HRjByr0cBgE=",
608
+ "file": "byte-limit.rejected.json"
609
+ },
610
+ {
611
+ "digest": "sha256-HuNG9YzvjgW/fQhneXAhggCBQvJIh39EMy//YehKYNo=",
612
+ "file": "closed-object.accepted.json"
613
+ },
614
+ {
615
+ "digest": "sha256-4nJ4HVOupqH8OjoIS0VtVRvvhb4jZBaIxYxXG3mScTU=",
616
+ "file": "decimal-multiple.accepted.json"
617
+ },
618
+ {
619
+ "digest": "sha256-nNohuA4UoOihqwQ8nov3HM2qzCe0BbiAMjwucNmNIXA=",
620
+ "file": "depth-limit.accepted.json"
621
+ },
622
+ {
623
+ "digest": "sha256-ca488Ty/ss0QsNHNraNeeOmKtbeP1mSGru3VfzOANV4=",
624
+ "file": "depth-limit.rejected.json"
625
+ },
626
+ {
627
+ "digest": "sha256-BZgF5+kRokfKRPWH1rj3coQ6peMpStYrkJZg37V/U6g=",
628
+ "file": "description-limit.accepted.json"
629
+ },
630
+ {
631
+ "digest": "sha256-MCvlSchCCrh8YgJULzuoGBjUhjmJn9HxPCZgsNNvDBU=",
632
+ "file": "description-limit.rejected.json"
633
+ },
634
+ {
635
+ "digest": "sha256-o2kwUOSo5A95ewWG7o5WUUcB6kSN4p9C1HWYzsH6920=",
636
+ "file": "diagnostic-precedence.rejected.json"
637
+ },
638
+ {
639
+ "digest": "sha256-i9avQJ8klRz7HEEeLKMWbuhFu/eGOpXIHEI5emJdPng=",
640
+ "file": "duplicate-dependent-required.rejected.json"
641
+ },
642
+ {
643
+ "digest": "sha256-E+v0zlbXe/rq70rrjAZK6N2hb2D/g98LFYf5OODnwbk=",
644
+ "file": "duplicate-required.rejected.json"
645
+ },
646
+ {
647
+ "digest": "sha256-LkJMqCZbzK3FWiWWN6ftTV9394V59jNlfmVkt0x5FFo=",
648
+ "file": "empty-combinator.rejected.json"
649
+ },
650
+ {
651
+ "digest": "sha256-HDfHBzSYoN3BiQOTV1Z6pnbldS9aYaR+WujcS5aLY74=",
652
+ "file": "empty-enum.rejected.json"
653
+ },
654
+ {
655
+ "digest": "sha256-qo+yHMILQ23OntnunU0af+cCNWzUECLMkHip4lvNmqE=",
656
+ "file": "enum-limit.accepted.json"
657
+ },
658
+ {
659
+ "digest": "sha256-GPkH+NzpSS0l7BuPdrrQHxQ72uWx2rvVnZ3yKaF0thE=",
660
+ "file": "enum-limit.rejected.json"
661
+ },
662
+ {
663
+ "digest": "sha256-g3zwZVTqi5FqybYuZGC601UNvzPtcDzguv4ojeb7Iig=",
664
+ "file": "examples-limit.accepted.json"
665
+ },
666
+ {
667
+ "digest": "sha256-KrcK+JWaLZuin43Zihs+rQsbMpjuCqVWTmVMCFkbKpY=",
668
+ "file": "examples-limit.rejected.json"
669
+ },
670
+ {
671
+ "digest": "sha256-9YDQ07A8USMgcRAZZGG0xVPTqfV5yB3Lx10P1J3ltC8=",
672
+ "file": "format-keyword.rejected.json"
673
+ },
674
+ {
675
+ "digest": "sha256-cvXRu07GWX4lG5L5z7sv7dkyxP0yUzAC81UOSzatYBA=",
676
+ "file": "forward-reference-path-precedence.rejected.json"
677
+ },
678
+ {
679
+ "digest": "sha256-oJK8cY0hSwhEfi3mE46To12nBcVsT7kWs1/zAvk2x9M=",
680
+ "file": "invalid-pointer.rejected.json"
681
+ },
682
+ {
683
+ "digest": "sha256-5Z5Cxd1wR3DB8WqKSC3gHt3Qv9yQHKGZFDNxdS1NFgc=",
684
+ "file": "json-depth-limit.accepted.json"
685
+ },
686
+ {
687
+ "digest": "sha256-GDFfH7oypzll76fOJx8uyMgEm7CYKteQAF0psWJb7F8=",
688
+ "file": "json-depth-limit.rejected.json"
689
+ },
690
+ {
691
+ "digest": "sha256-mN9p6KVIEL8UkPr/KYkxbSdQWhxy0vrHNNkLf3W7jUs=",
692
+ "file": "json-item-limit.accepted.json"
693
+ },
694
+ {
695
+ "digest": "sha256-Y4Wi7efbT9MaNwBqZRwwcreF7KU6kh8LhnvFKUUp2g4=",
696
+ "file": "json-item-limit.rejected.json"
697
+ },
698
+ {
699
+ "digest": "sha256-BbCxSuNDm2F+8NhZn/1gKK1TEgkEmcEK2vy0MvNbvUk=",
700
+ "file": "json-property-limit.accepted.json"
701
+ },
702
+ {
703
+ "digest": "sha256-IfFwS7gVLZzoOfyozZTd2rEcB8nB2fpTBgodP8n/Vjo=",
704
+ "file": "json-property-limit.rejected.json"
705
+ },
706
+ {
707
+ "digest": "sha256-jufpkAfTFK/m9qirukYxtj5GYyJD62hIe0o1i1bilTo=",
708
+ "file": "local-reference.accepted.json"
709
+ },
710
+ {
711
+ "digest": "sha256-eoH7atvYzx/OwQuuMUXPgiR0x6uJXq2r5kGCcZiW+z4=",
712
+ "file": "memoized-diagnostic.accepted.json"
713
+ },
714
+ {
715
+ "digest": "sha256-c4zB9yQqQWtqPNlJM7zgS6rg6/BoryYHpvct/fHtR18=",
716
+ "file": "node-limit.accepted.json"
717
+ },
718
+ {
719
+ "digest": "sha256-q/QNireud+vK/1HNK95Py92WluM37xH+z5LB3JoIEuE=",
720
+ "file": "node-limit.rejected.json"
721
+ },
722
+ {
723
+ "digest": "sha256-z5lN1dqhaMrzU5h7n1f6cB+a0iIu1ICZICDySDgK7/U=",
724
+ "file": "non-object-root.rejected.json"
725
+ },
726
+ {
727
+ "digest": "sha256-VVVrr/FxcAHFN6xhCsrM0hR/aIm3OjcsQ90loVqPDfc=",
728
+ "file": "non-schema-reference.rejected.json"
729
+ },
730
+ {
731
+ "digest": "sha256-q88MR5M79ME64j0cOJc3PAtjAwzq2QQrUfYPphfMz9k=",
732
+ "file": "object-key-limit.accepted.json"
733
+ },
734
+ {
735
+ "digest": "sha256-3JkKGnvnGphEN8aqWP/5lCVKgtHs44Sk+7tXH6ynn1U=",
736
+ "file": "object-key-limit.rejected.json"
737
+ },
738
+ {
739
+ "digest": "sha256-vbUrM4bUn3/87oOPJbbtsCz6lXewWsBD4yigV4ZQg2Q=",
740
+ "file": "open-root.rejected.json"
741
+ },
742
+ {
743
+ "digest": "sha256-13UNXA3BA/17p6uKTtCyZtUnu5bfHmZ0Q3ctBHiCb8A=",
744
+ "file": "percent-encoded-pointer.rejected.json"
745
+ },
746
+ {
747
+ "digest": "sha256-gsWj/U+BHl0MSYqrj7S4nQsqay+oX1+0qbNNzs1dg6c=",
748
+ "file": "property-name-limit.accepted.json"
749
+ },
750
+ {
751
+ "digest": "sha256-ROFpDdg7wLMpFDD/cbMD9z+9mOaFpvCkwGlAaVnDqdk=",
752
+ "file": "property-name-limit.rejected.json"
753
+ },
754
+ {
755
+ "digest": "sha256-MkGCk4oV3BkhYRJLFO3L94EgoIkXoe/uaqm/6BgQWIE=",
756
+ "file": "recursive-diagnostic-precedence.rejected.json"
757
+ },
758
+ {
759
+ "digest": "sha256-sdTBid88+2831zQB2svi97QaYEAjZNuRNl0WBbO8LNc=",
760
+ "file": "recursive-reference.rejected.json"
761
+ },
762
+ {
763
+ "digest": "sha256-EozfqMC5QveTyndeAdnpjPXAJh3LyTEvQI6ZOuDQS3E=",
764
+ "file": "reference-fanout.accepted.json"
765
+ },
766
+ {
767
+ "digest": "sha256-TAY/+RxBFAikc7xUOiwjUa/gmFN3rudC6O1Clxfxa4w=",
768
+ "file": "reference-length-limit.accepted.json"
769
+ },
770
+ {
771
+ "digest": "sha256-avm+pKENV3tZAnR6Ce/MuTlU8eLDvN1yUzRcJQ5fqtA=",
772
+ "file": "reference-length-limit.rejected.json"
773
+ },
774
+ {
775
+ "digest": "sha256-qbq0vqz97FC6ec73IOccoFX+sHPfytGRWzDwTBBm7x8=",
776
+ "file": "reference-limit.accepted.json"
777
+ },
778
+ {
779
+ "digest": "sha256-cPDs9DHd/rYJ6IXKmK/UH/JV7bY1hnUSK3z2kc96ddQ=",
780
+ "file": "reference-limit.rejected.json"
781
+ },
782
+ {
783
+ "digest": "sha256-Gn+MKtrF0w7Tb693V9ztSFxFW1o/x3APNxQ+ufZYMXY=",
784
+ "file": "reference-vs-keyword-precedence.rejected.json"
785
+ },
786
+ {
787
+ "digest": "sha256-FsuqyPfDAok+x1gi1P/pIAatLtAYecKH2ZMxb1LI6yQ=",
788
+ "file": "reserved-pointer.rejected.json"
789
+ },
790
+ {
791
+ "digest": "sha256-Wo0aUVSFdXOwlBpQhf03l1e/29LVW5mrwiz2A2HnU6M=",
792
+ "file": "root-diagnostic-precedence.rejected.json"
793
+ },
794
+ {
795
+ "digest": "sha256-z6UHIncN/YPJnP6+0hEiDBLDLOBdno50//Ajb7pwzo0=",
796
+ "file": "root-vs-reference-precedence.rejected.json"
797
+ },
798
+ {
799
+ "digest": "sha256-2G5Q8PxdVQm+pIjmU51j4/N0pQlFcJhtlRChU/MNgSA=",
800
+ "file": "schema-map-limit.accepted.json"
801
+ },
802
+ {
803
+ "digest": "sha256-4x0uuKQE6e0Uch1j7J4lQn06ihAtiob0/lQwW4GId6I=",
804
+ "file": "schema-map-limit.rejected.json"
805
+ },
806
+ {
807
+ "digest": "sha256-W1ZdAZmlaku4JOlaoiRjlYY9nT1kKDsaDEq/NoKoHy8=",
808
+ "file": "semantic-recursion-precedence.rejected.json"
809
+ },
810
+ {
811
+ "digest": "sha256-GsxRnSg0sYZTAeuVAEnR/sWo+ObPhIjEam1jM3sNgoY=",
812
+ "file": "semantic-reference-precedence.rejected.json"
813
+ },
814
+ {
815
+ "digest": "sha256-HqQlNsHfoSSCPJtgvjlqNdU84u3bDSXlrva1hDUUoMY=",
816
+ "file": "title-limit.accepted.json"
817
+ },
818
+ {
819
+ "digest": "sha256-FqfwDPZ1xuZHxwpboodHgsTPXvoOtTMVZ+kkaMzciuo=",
820
+ "file": "title-limit.rejected.json"
821
+ },
822
+ {
823
+ "digest": "sha256-LdBEqO7AQoLxvqQ3ZgzL7iwSSalSTPSev86z4fKPnRQ=",
824
+ "file": "unresolved-reference.rejected.json"
825
+ },
826
+ {
827
+ "digest": "sha256-WbGGAMEYPGkbcGHS9kr+MFHuo4PFZ6wIOfeDD1PpQvI=",
828
+ "file": "unsafe-dependent-required.rejected.json"
829
+ },
830
+ {
831
+ "digest": "sha256-OhqGsFhN1nWPMOTau0GkBGqY6TCSYSwY5UdAeoOp378=",
832
+ "file": "unsafe-member.rejected.json"
833
+ },
834
+ {
835
+ "digest": "sha256-VdZIvd9xPvttTECok0J6TJZcLbY5t9RlDNJhzzAhSbE=",
836
+ "file": "unsafe-required.rejected.json"
837
+ }
838
+ ],
839
+ "group": "schema-profile-vectors",
840
+ "path": "vectors/schema-profile"
841
+ },
532
842
  {
533
843
  "files": [
534
844
  {
@@ -670,9 +980,17 @@
670
980
  "file": "entry.invalid-locale.json"
671
981
  },
672
982
  {
673
- "digest": "sha256-YHrXHl/Y5VS/Sh/BvJ5VUj6xxuIqhtn9wEI8pwaILt4=",
983
+ "digest": "sha256-uStQRWKgfZNleRDRh3RIPMpONCxXlrwzbAJOSFIoWSU=",
674
984
  "file": "host-capabilities.invalid-protocol-version.json"
675
985
  },
986
+ {
987
+ "digest": "sha256-TbyqAfnspj0axcP3sJNAj+Sqqg0XaOpCmYy6l6MEF2Y=",
988
+ "file": "host-sequence.pending-expectation.json"
989
+ },
990
+ {
991
+ "digest": "sha256-AdoHUaSqNPxNrob++GpX5D1+nkPSwaU7Bo1CheZKJbs=",
992
+ "file": "host-sequence.preview-render-missing-request-id.json"
993
+ },
676
994
  {
677
995
  "digest": "sha256-DTGs/q49uj8VR882hukd0i82Esx2iVGN1Jr54BwOc/I=",
678
996
  "file": "inspector.empty-block-types.json"
@@ -694,17 +1012,45 @@
694
1012
  "file": "migration.empty-artifact-kinds.json"
695
1013
  },
696
1014
  {
697
- "digest": "sha256-lFe0wcIoJJAUSuHSft608siXNhobNXq3sGRjNUozkSI=",
1015
+ "digest": "sha256-AXA+sQO5XcINDeoDcdP1Tq8r2Ll46Gv4kiNNzuxK0Pc=",
698
1016
  "file": "preview-message.activated-unknown-interaction.json"
699
1017
  },
700
1018
  {
701
- "digest": "sha256-siNA9LSSOkhr9JFbX5DTG/sjmRV9tI/TDRJTU00t8V4=",
1019
+ "digest": "sha256-RT0CyYY7FkA7Nnv34T841OaPYkOE3Y26875pmoWqXS4=",
1020
+ "file": "preview-message.duplicate-marker.json"
1021
+ },
1022
+ {
1023
+ "digest": "sha256-jji2txtf3U9wP3j9sS1uQa2Uij1w1qTKvsVfvH7dkUA=",
702
1024
  "file": "preview-message.invalid-digest.json"
703
1025
  },
1026
+ {
1027
+ "digest": "sha256-NLyfTzHImUYIzZ+5Jr2uShv0mghSxqQEsCiT9stHWUg=",
1028
+ "file": "preview-message.invalid-marker-grammar.json"
1029
+ },
1030
+ {
1031
+ "digest": "sha256-tL5xezmGX32duQcg1uYuTDG0qoH40pkWMXmxhp3gWVw=",
1032
+ "file": "preview-message.missing-marker-map.json"
1033
+ },
1034
+ {
1035
+ "digest": "sha256-uDh4+I7VCe62E+k5clj07RXQlr295E1PfTNBMS7QZkc=",
1036
+ "file": "preview-message.missing-render-request-id.json"
1037
+ },
1038
+ {
1039
+ "digest": "sha256-yLEAU9D7Z+aWV03xdUTQSkeIpCXgHCcLSwJUNBgP2A4=",
1040
+ "file": "preview-message.unknown-type.json"
1041
+ },
1042
+ {
1043
+ "digest": "sha256-UBBvBI7lRr7gEiH/guS4r7UxzNvXXG9CitHey2gIUXs=",
1044
+ "file": "preview-message.viewport-height-too-small.json"
1045
+ },
704
1046
  {
705
1047
  "digest": "sha256-3Uo8XF4hROPnVN34nROt7f2wg5ZHZvPU7KT/F98h/6s=",
706
1048
  "file": "preview-message.viewport-role-and-size.json"
707
1049
  },
1050
+ {
1051
+ "digest": "sha256-a7E9wkgCsB+d2WxYAjJjmRJJsFhrL+fnZo/aQsMYIE0=",
1052
+ "file": "preview-message.viewport-unsafe-role.json"
1053
+ },
708
1054
  {
709
1055
  "digest": "sha256-Ha4ygQciWMcqcM8k/7qDW3CW4mr2EIwdrRCxglwBG2c=",
710
1056
  "file": "rich-text.embedded-html.json"