openplanr 3.0.1 → 3.1.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 (223) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cli/commands/init-deterministic.d.ts.map +1 -1
  3. package/dist/cli/commands/init-deterministic.js +49 -6
  4. package/dist/cli/commands/init-deterministic.js.map +1 -1
  5. package/dist/dashboard/.vite/manifest.json +2 -2
  6. package/dist/dashboard/assets/{index-Bk8DyO_2.css → index-BU5fzjyz.css} +1 -1
  7. package/dist/dashboard/assets/index-G7ygVDGg.js +572 -0
  8. package/dist/dashboard/assets/index-G7ygVDGg.js.map +1 -0
  9. package/dist/dashboard/dashboard-manifest.json +14 -14
  10. package/dist/dashboard/index.html +2 -2
  11. package/dist/models/types.d.ts +0 -46
  12. package/dist/models/types.d.ts.map +1 -1
  13. package/dist/services/capability-map-service.d.ts +4 -0
  14. package/dist/services/capability-map-service.d.ts.map +1 -1
  15. package/dist/services/capability-map-service.js +7 -1
  16. package/dist/services/capability-map-service.js.map +1 -1
  17. package/dist/services/claude-plugin-service.d.ts +6 -1
  18. package/dist/services/claude-plugin-service.d.ts.map +1 -1
  19. package/dist/services/claude-plugin-service.js +54 -15
  20. package/dist/services/claude-plugin-service.js.map +1 -1
  21. package/dist/services/config-service.d.ts +24 -1
  22. package/dist/services/config-service.d.ts.map +1 -1
  23. package/dist/services/config-service.js +69 -2
  24. package/dist/services/config-service.js.map +1 -1
  25. package/dist/services/git-service.d.ts +5 -0
  26. package/dist/services/git-service.d.ts.map +1 -1
  27. package/dist/services/git-service.js +27 -0
  28. package/dist/services/git-service.js.map +1 -1
  29. package/dist/services/linear-pull-service.d.ts.map +1 -1
  30. package/dist/services/linear-pull-service.js +1 -2
  31. package/dist/services/linear-pull-service.js.map +1 -1
  32. package/dist/services/pipeline-package-service.d.ts +2 -0
  33. package/dist/services/pipeline-package-service.d.ts.map +1 -1
  34. package/dist/services/pipeline-package-service.js +2 -1
  35. package/dist/services/pipeline-package-service.js.map +1 -1
  36. package/dist/services/runtime-change-summary.d.ts.map +1 -1
  37. package/dist/services/runtime-change-summary.js +4 -0
  38. package/dist/services/runtime-change-summary.js.map +1 -1
  39. package/dist/services/runtime-manager-service.d.ts.map +1 -1
  40. package/dist/services/runtime-manager-service.js +14 -3
  41. package/dist/services/runtime-manager-service.js.map +1 -1
  42. package/dist/services/spec-service.d.ts.map +1 -1
  43. package/dist/services/spec-service.js +11 -22
  44. package/dist/services/spec-service.js.map +1 -1
  45. package/dist/services/upgrade-service.d.ts.map +1 -1
  46. package/dist/services/upgrade-service.js +3 -1
  47. package/dist/services/upgrade-service.js.map +1 -1
  48. package/dist/templates/rules/shared/capability-map.md.hbs +2 -2
  49. package/lib/host-packages/adapter-registry.json +5 -5
  50. package/lib/host-packages/capability-map.json +89 -29
  51. package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
  52. package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
  53. package/lib/host-packages/claude/openplanr/.openplanr-content.json +69 -37
  54. package/lib/host-packages/claude/openplanr/CONNECTORS.md +62 -0
  55. package/lib/host-packages/claude/openplanr/README.md +1 -1
  56. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  57. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
  58. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
  59. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
  60. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
  61. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  62. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  63. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
  64. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
  65. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
  66. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
  67. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
  68. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
  69. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
  70. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
  71. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
  72. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
  73. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +23 -23
  74. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +4 -4
  75. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
  76. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +4 -4
  77. package/lib/host-packages/claude/openplanr/skills/connect/SKILL.md +60 -0
  78. package/lib/host-packages/claude/openplanr/skills/connect/references/connectors.md +62 -0
  79. package/lib/host-packages/claude/openplanr/skills/openplanr/SKILL.md +4 -0
  80. package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +4 -1
  81. package/lib/host-packages/claude/openplanr/skills/plan/scripts/planning-ids.mjs +49 -3
  82. package/lib/host-packages/claude/openplanr/skills/share/SKILL.md +87 -0
  83. package/lib/host-packages/claude/openplanr/skills/share/references/connectors.md +62 -0
  84. package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +6 -3
  85. package/lib/host-packages/claude/openplanr/skills/ship/scripts/discover-verification.mjs +2 -1
  86. package/lib/host-packages/claude/openplanr/skills/sprint/SKILL.md +15 -6
  87. package/lib/host-packages/claude/openplanr/skills/sprint/references/connectors.md +62 -0
  88. package/lib/host-packages/claude/openplanr/skills/sprint/references/tracker-connections.md +9 -13
  89. package/lib/host-packages/claude/openplanr/skills/status/SKILL.md +14 -3
  90. package/lib/host-packages/claude/openplanr/skills/status/references/connectors.md +62 -0
  91. package/lib/host-packages/claude/openplanr/skills/status/references/tracker-connections.md +9 -13
  92. package/lib/host-packages/claude/openplanr/skills/sync/SKILL.md +25 -10
  93. package/lib/host-packages/claude/openplanr/skills/sync/references/connectors.md +62 -0
  94. package/lib/host-packages/claude/openplanr/skills/sync/references/tracker-connections.md +9 -13
  95. package/lib/host-packages/cursor/openplanr/.openplanr-content.json +68 -36
  96. package/lib/host-packages/cursor/openplanr/CONNECTORS.md +62 -0
  97. package/lib/host-packages/cursor/openplanr/manifest.json +4 -2
  98. package/lib/host-packages/cursor/openplanr/rules/planr-connect/references/connectors.md +62 -0
  99. package/lib/host-packages/cursor/openplanr/rules/planr-connect.mdc +58 -0
  100. package/lib/host-packages/cursor/openplanr/rules/planr-openplanr.mdc +4 -0
  101. package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/planning-ids.mjs +49 -3
  102. package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +4 -1
  103. package/lib/host-packages/cursor/openplanr/rules/planr-share/references/connectors.md +62 -0
  104. package/lib/host-packages/cursor/openplanr/rules/planr-share.mdc +85 -0
  105. package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/discover-verification.mjs +2 -1
  106. package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +6 -3
  107. package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/connectors.md +62 -0
  108. package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/tracker-connections.md +9 -13
  109. package/lib/host-packages/cursor/openplanr/rules/planr-sprint.mdc +15 -6
  110. package/lib/host-packages/cursor/openplanr/rules/planr-status/references/connectors.md +62 -0
  111. package/lib/host-packages/cursor/openplanr/rules/planr-status/references/tracker-connections.md +9 -13
  112. package/lib/host-packages/cursor/openplanr/rules/planr-status.mdc +14 -3
  113. package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/connectors.md +62 -0
  114. package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/tracker-connections.md +9 -13
  115. package/lib/host-packages/cursor/openplanr/rules/planr-sync.mdc +25 -10
  116. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  117. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
  118. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
  119. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
  120. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
  121. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  122. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  123. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
  124. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
  125. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
  126. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
  127. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
  128. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
  129. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
  130. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
  131. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
  132. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
  133. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +23 -23
  134. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +4 -4
  135. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
  136. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +4 -4
  137. package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
  138. package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
  139. package/lib/host-packages/openai/openplanr/.openplanr-content.json +87 -39
  140. package/lib/host-packages/openai/openplanr/CONNECTORS.md +62 -0
  141. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  142. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
  143. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
  144. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
  145. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
  146. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  147. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  148. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
  149. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
  150. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
  151. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
  152. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
  153. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
  154. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
  155. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
  156. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
  157. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
  158. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +23 -23
  159. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +4 -4
  160. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
  161. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +4 -4
  162. package/lib/host-packages/openai/openplanr/skills/connect/SKILL.md +59 -0
  163. package/lib/host-packages/openai/openplanr/skills/connect/agents/openai.yaml +6 -0
  164. package/lib/host-packages/openai/openplanr/skills/connect/openplanr.skill.json +37 -0
  165. package/lib/host-packages/openai/openplanr/skills/connect/references/connectors.md +62 -0
  166. package/lib/host-packages/openai/openplanr/skills/openplanr/SKILL.md +4 -0
  167. package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +4 -1
  168. package/lib/host-packages/openai/openplanr/skills/plan/scripts/planning-ids.mjs +49 -3
  169. package/lib/host-packages/openai/openplanr/skills/share/SKILL.md +86 -0
  170. package/lib/host-packages/openai/openplanr/skills/share/agents/openai.yaml +6 -0
  171. package/lib/host-packages/openai/openplanr/skills/share/openplanr.skill.json +37 -0
  172. package/lib/host-packages/openai/openplanr/skills/share/references/connectors.md +62 -0
  173. package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +6 -3
  174. package/lib/host-packages/openai/openplanr/skills/ship/scripts/discover-verification.mjs +2 -1
  175. package/lib/host-packages/openai/openplanr/skills/sprint/SKILL.md +15 -6
  176. package/lib/host-packages/openai/openplanr/skills/sprint/openplanr.skill.json +11 -0
  177. package/lib/host-packages/openai/openplanr/skills/sprint/references/connectors.md +62 -0
  178. package/lib/host-packages/openai/openplanr/skills/sprint/references/tracker-connections.md +9 -13
  179. package/lib/host-packages/openai/openplanr/skills/status/SKILL.md +14 -3
  180. package/lib/host-packages/openai/openplanr/skills/status/openplanr.skill.json +11 -0
  181. package/lib/host-packages/openai/openplanr/skills/status/references/connectors.md +62 -0
  182. package/lib/host-packages/openai/openplanr/skills/status/references/tracker-connections.md +9 -13
  183. package/lib/host-packages/openai/openplanr/skills/sync/SKILL.md +25 -10
  184. package/lib/host-packages/openai/openplanr/skills/sync/openplanr.skill.json +11 -0
  185. package/lib/host-packages/openai/openplanr/skills/sync/references/connectors.md +62 -0
  186. package/lib/host-packages/openai/openplanr/skills/sync/references/tracker-connections.md +9 -13
  187. package/lib/json-schema.mjs +313 -36
  188. package/lib/schemas/v1.0.0/spec.schema.json +120 -0
  189. package/lib/schemas/v1.0.0/story.schema.json +95 -0
  190. package/lib/schemas/v1.0.0/task.schema.json +171 -0
  191. package/lib/schemas/v1.7.0/spec.schema.json +117 -0
  192. package/lib/schemas/v1.7.0/story.schema.json +107 -0
  193. package/lib/schemas/v1.7.0/task.schema.json +217 -0
  194. package/package.json +31 -31
  195. package/dist/dashboard/assets/index-n08LJ6bK.js +0 -557
  196. package/dist/dashboard/assets/index-n08LJ6bK.js.map +0 -1
  197. package/dist/services/audit-log-service.d.ts +0 -47
  198. package/dist/services/audit-log-service.d.ts.map +0 -1
  199. package/dist/services/audit-log-service.js +0 -211
  200. package/dist/services/audit-log-service.js.map +0 -1
  201. package/dist/services/delta-apply-service.d.ts +0 -16
  202. package/dist/services/delta-apply-service.d.ts.map +0 -1
  203. package/dist/services/delta-apply-service.js +0 -74
  204. package/dist/services/delta-apply-service.js.map +0 -1
  205. package/dist/services/evidence-verifier.d.ts +0 -71
  206. package/dist/services/evidence-verifier.d.ts.map +0 -1
  207. package/dist/services/evidence-verifier.js +0 -174
  208. package/dist/services/evidence-verifier.js.map +0 -1
  209. package/dist/services/revise-apply-service.d.ts +0 -55
  210. package/dist/services/revise-apply-service.d.ts.map +0 -1
  211. package/dist/services/revise-apply-service.js +0 -265
  212. package/dist/services/revise-apply-service.js.map +0 -1
  213. package/dist/services/revise-cache-service.d.ts +0 -46
  214. package/dist/services/revise-cache-service.d.ts.map +0 -1
  215. package/dist/services/revise-cache-service.js +0 -89
  216. package/dist/services/revise-cache-service.js.map +0 -1
  217. package/dist/services/revise-plan-service.d.ts +0 -38
  218. package/dist/services/revise-plan-service.d.ts.map +0 -1
  219. package/dist/services/revise-plan-service.js +0 -153
  220. package/dist/services/revise-plan-service.js.map +0 -1
  221. /package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
  222. /package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
  223. /package/lib/host-packages/openai/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
@@ -240,17 +240,179 @@
240
240
  };
241
241
  var FORMAT_DATE = /^\d{4}-\d{2}-\d{2}$/;
242
242
  var FORMAT_DATETIME = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
243
+ var SUPPORTED_FORMATS = /* @__PURE__ */ new Set(["date", "date-time"]);
244
+ var ANNOTATION_KEYWORDS = [
245
+ "$schema",
246
+ "$id",
247
+ "$defs",
248
+ "$comment",
249
+ "title",
250
+ "description",
251
+ "default",
252
+ "examples",
253
+ "deprecated",
254
+ "readOnly",
255
+ "writeOnly"
256
+ ];
257
+ var VALIDATION_KEYWORDS = [
258
+ "$ref",
259
+ "type",
260
+ "const",
261
+ "enum",
262
+ "minLength",
263
+ "maxLength",
264
+ "pattern",
265
+ "format",
266
+ "minimum",
267
+ "maximum",
268
+ "exclusiveMinimum",
269
+ "minItems",
270
+ "maxItems",
271
+ "prefixItems",
272
+ "items",
273
+ "uniqueItems",
274
+ "contains",
275
+ "minContains",
276
+ "maxContains",
277
+ "required",
278
+ "properties",
279
+ "additionalProperties",
280
+ "maxProperties",
281
+ "dependentRequired",
282
+ "unevaluatedProperties",
283
+ "oneOf",
284
+ "anyOf",
285
+ "allOf",
286
+ "if",
287
+ "then",
288
+ "else",
289
+ "not"
290
+ ];
291
+ var KNOWN_KEYWORDS = /* @__PURE__ */ new Set([...ANNOTATION_KEYWORDS, ...VALIDATION_KEYWORDS]);
292
+ var TYPE_NAMES = /* @__PURE__ */ new Set(["array", "boolean", "integer", "null", "number", "object", "string"]);
293
+ var isSchema = (value) => typeof value === "boolean" || value !== null && typeof value === "object" && !Array.isArray(value);
294
+ var isPlainObject = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
295
+ var isCount = (value) => Number.isSafeInteger(value) && value >= 0;
296
+ var isUniqueStrings = (value) => Array.isArray(value) && value.every((item2) => typeof item2 === "string") && new Set(value).size === value.length;
297
+ var isSchemaArray = (value) => Array.isArray(value) && value.length > 0 && value.every(isSchema);
298
+ var isSchemaMap = (value) => isPlainObject(value) && Object.values(value).every(isSchema);
299
+ var compiledPatterns = /* @__PURE__ */ new Map();
300
+ var MAX_COMPILED_PATTERNS = 1024;
301
+ var tryCompilePattern = (source) => {
302
+ try {
303
+ return new RegExp(source);
304
+ } catch (error) {
305
+ if (error instanceof SyntaxError) return null;
306
+ throw error;
307
+ }
308
+ };
309
+ var compilePattern = (source) => {
310
+ if (!compiledPatterns.has(source)) {
311
+ if (compiledPatterns.size >= MAX_COMPILED_PATTERNS) compiledPatterns.clear();
312
+ compiledPatterns.set(source, tryCompilePattern(source));
313
+ }
314
+ return compiledPatterns.get(source) ?? null;
315
+ };
316
+ var describeValue = (value) => {
317
+ const text5 = String(JSON.stringify(value));
318
+ return text5.length > 80 ? `${text5.slice(0, 77)}...` : text5;
319
+ };
320
+ var KEYWORD_SHAPES = {
321
+ $ref: ["a string", (value) => typeof value === "string"],
322
+ $defs: ["an object of schemas", isSchemaMap],
323
+ type: [
324
+ "a type name or a non-empty array of unique type names",
325
+ (value) => typeof value === "string" && TYPE_NAMES.has(value) || isUniqueStrings(value) && value.length > 0 && value.every((name) => TYPE_NAMES.has(name))
326
+ ],
327
+ enum: ["an array", Array.isArray],
328
+ minLength: ["a non-negative integer", isCount],
329
+ maxLength: ["a non-negative integer", isCount],
330
+ pattern: [
331
+ "a valid regular expression string",
332
+ (value) => typeof value === "string" && compilePattern(value) !== null
333
+ ],
334
+ minimum: ["a finite number", Number.isFinite],
335
+ maximum: ["a finite number", Number.isFinite],
336
+ exclusiveMinimum: ["a finite number", Number.isFinite],
337
+ minItems: ["a non-negative integer", isCount],
338
+ maxItems: ["a non-negative integer", isCount],
339
+ prefixItems: ["a non-empty array of schemas", isSchemaArray],
340
+ items: ["a schema", isSchema],
341
+ uniqueItems: ["a boolean", (value) => typeof value === "boolean"],
342
+ contains: ["a schema", isSchema],
343
+ minContains: ["a non-negative integer", isCount],
344
+ maxContains: ["a non-negative integer", isCount],
345
+ required: ["an array of unique strings", isUniqueStrings],
346
+ properties: ["an object of schemas", isSchemaMap],
347
+ additionalProperties: ["a schema", isSchema],
348
+ maxProperties: ["a non-negative integer", isCount],
349
+ dependentRequired: [
350
+ "an object of unique string arrays",
351
+ (value) => isPlainObject(value) && Object.values(value).every(isUniqueStrings)
352
+ ],
353
+ unevaluatedProperties: ["a schema", isSchema],
354
+ oneOf: ["a non-empty array of schemas", isSchemaArray],
355
+ anyOf: ["a non-empty array of schemas", isSchemaArray],
356
+ allOf: ["a non-empty array of schemas", isSchemaArray],
357
+ if: ["a schema", isSchema],
358
+ then: ["a schema", isSchema],
359
+ else: ["a schema", isSchema],
360
+ not: ["a schema", isSchema]
361
+ };
243
362
  function resolveJsonPointer(root, reference) {
244
363
  if (reference === "#") return root;
245
364
  if (!reference.startsWith("#/")) return null;
246
365
  return reference.slice(2).split("/").map((part) => part.replaceAll("~1", "/").replaceAll("~0", "~")).reduce((value, part) => value?.[part], root);
247
366
  }
367
+ var wellFormedSchemas = /* @__PURE__ */ new WeakSet();
368
+ var isFrozenNode = (schema6) => Object.isFrozen(schema6) && Object.values(schema6).every(Object.isFrozen) && (!isPlainObject(schema6.dependentRequired) || Object.values(schema6.dependentRequired).every(Object.isFrozen));
369
+ var checkSchemaNode = (schema6, path, context) => {
370
+ if (wellFormedSchemas.has(schema6) || context.checkedSchemas.has(schema6)) return;
371
+ context.checkedSchemas.add(schema6);
372
+ const errorCount = context.schemaErrors.length;
373
+ for (const keyword of Object.keys(schema6)) {
374
+ if (!KNOWN_KEYWORDS.has(keyword) && !keyword.startsWith("x-")) {
375
+ context.schemaErrors.push({
376
+ path,
377
+ rule: "unsupported-keyword",
378
+ detail: `schema keyword '${keyword}' is not supported by this validator`
379
+ });
380
+ }
381
+ }
382
+ if (Object.hasOwn(schema6, "format") && !SUPPORTED_FORMATS.has(schema6.format)) {
383
+ context.schemaErrors.push({
384
+ path,
385
+ rule: "unsupported-format",
386
+ detail: `schema format ${JSON.stringify(schema6.format)} is not supported by this validator`
387
+ });
388
+ }
389
+ for (const [keyword, [expected, isValid]] of Object.entries(KEYWORD_SHAPES)) {
390
+ if (Object.hasOwn(schema6, keyword) && !isValid(schema6[keyword])) {
391
+ context.schemaErrors.push({
392
+ path,
393
+ rule: "schema",
394
+ detail: `schema keyword '${keyword}' must be ${expected}, got ${describeValue(schema6[keyword])}`
395
+ });
396
+ }
397
+ }
398
+ if (context.schemaErrors.length === errorCount && isFrozenNode(schema6)) {
399
+ wellFormedSchemas.add(schema6);
400
+ }
401
+ };
402
+ var reportReference = (schema6, path, detail, context) => {
403
+ if (context.reportedReferences.has(schema6)) return;
404
+ context.reportedReferences.add(schema6);
405
+ context.schemaErrors.push({ path, rule: "$ref", detail });
406
+ };
248
407
  var validateNode = (value, schema6, path, errs, context) => {
249
- if (schema6 === true) return;
408
+ const evaluated = /* @__PURE__ */ new Set();
409
+ if (schema6 === true) return evaluated;
250
410
  if (schema6 === false) {
251
411
  errs.push({ path, rule: "schema:false", detail: "value not allowed" });
252
- return;
412
+ return evaluated;
253
413
  }
414
+ if (!isSchema(schema6)) return evaluated;
415
+ checkSchemaNode(schema6, path, context);
254
416
  if (typeof schema6?.$ref === "string") {
255
417
  const reference = schema6.$ref;
256
418
  let resolved;
@@ -264,21 +426,23 @@
264
426
  nextRoot = result?.rootSchema ?? resolved;
265
427
  resolvedBase = result?.base ?? resolved?.$id ?? context.base;
266
428
  }
267
- if (!resolved) {
268
- errs.push({ path, rule: "$ref", detail: `could not resolve schema reference ${reference}` });
269
- return;
429
+ if (!isSchema(resolved)) {
430
+ const detail = resolved === void 0 || resolved === null ? `could not resolve schema reference ${reference}` : `schema reference ${reference} resolved to ${typeOf(resolved)}, not a schema`;
431
+ reportReference(schema6, path, detail, context);
432
+ return evaluated;
270
433
  }
271
- const referenceKey = `${context.base ?? "<root>"}:${reference}`;
434
+ const referenceKey = `${path} ${context.base ?? "<root>"}:${reference}`;
272
435
  if (context.referenceStack.includes(referenceKey)) {
273
- errs.push({ path, rule: "$ref", detail: `circular schema reference ${reference}` });
274
- return;
436
+ reportReference(schema6, path, `circular schema reference ${reference}`, context);
437
+ return evaluated;
275
438
  }
276
- validateNode(value, resolved, path, errs, {
439
+ const referenced = validateNode(value, resolved, path, errs, {
277
440
  ...context,
278
441
  rootSchema: nextRoot,
279
442
  base: resolvedBase,
280
443
  referenceStack: [...context.referenceStack, referenceKey]
281
444
  });
445
+ for (const key of referenced) evaluated.add(key);
282
446
  }
283
447
  if (schema6.type !== void 0) {
284
448
  const types = Array.isArray(schema6.type) ? schema6.type : [schema6.type];
@@ -288,7 +452,7 @@
288
452
  rule: "type",
289
453
  detail: `expected ${types.join("|")}, got ${typeOf(value)}`
290
454
  });
291
- return;
455
+ return evaluated;
292
456
  }
293
457
  }
294
458
  if (schema6.const !== void 0) {
@@ -324,22 +488,13 @@
324
488
  detail: `length ${value.length} > ${schema6.maxLength}`
325
489
  });
326
490
  }
327
- if (typeof schema6.pattern === "string") {
328
- try {
329
- if (!new RegExp(schema6.pattern).test(value)) {
330
- errs.push({
331
- path,
332
- rule: "pattern",
333
- detail: `value ${JSON.stringify(value)} does not match /${schema6.pattern}/`
334
- });
335
- }
336
- } catch (e) {
337
- errs.push({
338
- path,
339
- rule: "pattern",
340
- detail: `invalid regex /${schema6.pattern}/: ${e instanceof Error ? e.message : String(e)}`
341
- });
342
- }
491
+ const pattern = typeof schema6.pattern === "string" ? compilePattern(schema6.pattern) : null;
492
+ if (pattern && !pattern.test(value)) {
493
+ errs.push({
494
+ path,
495
+ rule: "pattern",
496
+ detail: `value ${JSON.stringify(value)} does not match /${schema6.pattern}/`
497
+ });
343
498
  }
344
499
  if (typeof schema6.format === "string") {
345
500
  if (schema6.format === "date" && !FORMAT_DATE.test(value)) {
@@ -364,6 +519,13 @@
364
519
  if (typeof schema6.maximum === "number" && value > schema6.maximum) {
365
520
  errs.push({ path, rule: "maximum", detail: `value ${value} > ${schema6.maximum}` });
366
521
  }
522
+ if (typeof schema6.exclusiveMinimum === "number" && value <= schema6.exclusiveMinimum) {
523
+ errs.push({
524
+ path,
525
+ rule: "exclusiveMinimum",
526
+ detail: `value ${value} <= ${schema6.exclusiveMinimum}`
527
+ });
528
+ }
367
529
  }
368
530
  if (Array.isArray(value)) {
369
531
  if (typeof schema6.minItems === "number" && value.length < schema6.minItems) {
@@ -427,8 +589,31 @@
427
589
  }
428
590
  }
429
591
  }
592
+ if (typeof schema6.maxProperties === "number" && Object.keys(value).length > schema6.maxProperties) {
593
+ errs.push({
594
+ path,
595
+ rule: "maxProperties",
596
+ detail: `property count ${Object.keys(value).length} > ${schema6.maxProperties}`
597
+ });
598
+ }
599
+ if (schema6.dependentRequired !== null && typeof schema6.dependentRequired === "object") {
600
+ for (const [trigger, dependencies] of Object.entries(schema6.dependentRequired)) {
601
+ if (!Object.hasOwn(value, trigger) || !Array.isArray(dependencies)) continue;
602
+ for (const dependency of dependencies) {
603
+ if (!Object.hasOwn(value, dependency)) {
604
+ errs.push({
605
+ path,
606
+ rule: "dependentRequired",
607
+ detail: `property '${trigger}' requires property '${dependency}'`
608
+ });
609
+ }
610
+ }
611
+ }
612
+ }
430
613
  const props = schema6.properties || {};
431
614
  for (const [k, v] of Object.entries(value)) {
615
+ if (Object.hasOwn(props, k)) evaluated.add(k);
616
+ else if (schema6.additionalProperties !== void 0) evaluated.add(k);
432
617
  if (!Object.hasOwn(props, k)) {
433
618
  if (schema6.additionalProperties === false) {
434
619
  errs.push({ path, rule: "additionalProperties", detail: `unknown property '${k}'` });
@@ -445,8 +630,11 @@
445
630
  let matched = 0;
446
631
  for (const sub of schema6.oneOf) {
447
632
  const e = [];
448
- validateNode(value, sub, path, e, context);
449
- if (e.length === 0) matched++;
633
+ const branch = validateNode(value, sub, path, e, context);
634
+ if (e.length === 0) {
635
+ matched++;
636
+ for (const key of branch) evaluated.add(key);
637
+ }
450
638
  }
451
639
  if (matched !== 1) {
452
640
  const titles = schema6.oneOf.map((s) => s.title || "(unnamed)").join(" | ");
@@ -461,8 +649,11 @@
461
649
  let matched = 0;
462
650
  for (const sub of schema6.anyOf) {
463
651
  const candidateErrors = [];
464
- validateNode(value, sub, path, candidateErrors, context);
465
- if (candidateErrors.length === 0) matched += 1;
652
+ const branch = validateNode(value, sub, path, candidateErrors, context);
653
+ if (candidateErrors.length === 0) {
654
+ matched += 1;
655
+ for (const key of branch) evaluated.add(key);
656
+ }
466
657
  }
467
658
  if (matched === 0) {
468
659
  const titles = schema6.anyOf.map((sub) => sub.title || "(unnamed)").join(" | ");
@@ -475,14 +666,21 @@
475
666
  }
476
667
  if (Array.isArray(schema6.allOf)) {
477
668
  for (const sub of schema6.allOf) {
478
- validateNode(value, sub, path, errs, context);
669
+ for (const key of validateNode(value, sub, path, errs, context)) evaluated.add(key);
479
670
  }
480
671
  }
481
672
  if (schema6.if !== void 0) {
482
673
  const conditionErrors = [];
483
- validateNode(value, schema6.if, path, conditionErrors, context);
484
- const branch = conditionErrors.length === 0 ? schema6.then : schema6.else;
485
- if (branch !== void 0) validateNode(value, branch, path, errs, context);
674
+ const condition = validateNode(value, schema6.if, path, conditionErrors, context);
675
+ const passed = conditionErrors.length === 0;
676
+ if (passed) for (const key of condition) evaluated.add(key);
677
+ const branch = passed ? schema6.then : schema6.else;
678
+ if (branch !== void 0) {
679
+ const branchErrors = [];
680
+ const branchEvaluated = validateNode(value, branch, path, branchErrors, context);
681
+ errs.push(...branchErrors);
682
+ if (branchErrors.length === 0) for (const key of branchEvaluated) evaluated.add(key);
683
+ }
486
684
  }
487
685
  if (schema6.not !== void 0) {
488
686
  const e = [];
@@ -491,6 +689,18 @@
491
689
  errs.push({ path, rule: "not", detail: "value matched a forbidden subschema" });
492
690
  }
493
691
  }
692
+ if (schema6.unevaluatedProperties !== void 0 && value !== null && typeof value === "object" && !Array.isArray(value)) {
693
+ for (const [k, v] of Object.entries(value)) {
694
+ if (evaluated.has(k)) continue;
695
+ if (schema6.unevaluatedProperties === false) {
696
+ errs.push({ path, rule: "unevaluatedProperties", detail: `unevaluated property '${k}'` });
697
+ } else {
698
+ validateNode(v, schema6.unevaluatedProperties, `${path}.${k}`, errs, context);
699
+ }
700
+ evaluated.add(k);
701
+ }
702
+ }
703
+ return evaluated;
494
704
  };
495
705
  var validateJson = (value, schema6, {
496
706
  resolveRef,
@@ -500,13 +710,26 @@
500
710
  )
501
711
  } = {}) => {
502
712
  const errs = [];
713
+ const schemaErrors = [];
714
+ if (!isSchema(schema6)) {
715
+ return [
716
+ {
717
+ path: "$",
718
+ rule: "schema",
719
+ detail: `expected a schema object or boolean, got ${typeOf(schema6)}`
720
+ }
721
+ ];
722
+ }
503
723
  validateNode(value, schema6, "$", errs, {
504
724
  rootSchema: schema6,
505
725
  resolveRef,
506
726
  base,
507
- referenceStack: []
727
+ referenceStack: [],
728
+ schemaErrors,
729
+ checkedSchemas: /* @__PURE__ */ new WeakSet(),
730
+ reportedReferences: /* @__PURE__ */ new WeakSet()
508
731
  });
509
- return errs;
732
+ return [...schemaErrors, ...errs];
510
733
  };
511
734
 
512
735
  // ../protocol/src/sharing-security-contracts.mjs
@@ -2,8 +2,8 @@
2
2
  "kind": "openplanr-runtime-asset-sources",
3
3
  "schemaVersion": "1.0.0",
4
4
  "asset": "artifact-review-stage.js",
5
- "bytes": 519386,
6
- "sha256": "f073ea1d7315f804b2a98f37ce4a0acd944d277fee3244b632ef7fe397b5f8ea",
5
+ "bytes": 528628,
6
+ "sha256": "8fe516175b5e135ea06b54a9a40776a140b27d6301d0a1530f953c4bcb7963a6",
7
7
  "scopes": [
8
8
  {
9
9
  "id": "bundle",
@@ -54,8 +54,8 @@
54
54
  "packages/protocol/src/studio-presentation-contracts.mjs",
55
55
  "packages/protocol/src/workspace-contracts.mjs"
56
56
  ],
57
- "bytes": 172739,
58
- "sha256": "2222cb9544f49c3af6ee1255085450119cb0973bba4b63c610964835c2ed0d54"
57
+ "bytes": 181981,
58
+ "sha256": "3494e8e8cd50ff596dc2c00cc4c02f6dd2f016de50e0fb1c284ac03b6470b19d"
59
59
  },
60
60
  {
61
61
  "path": "artifact-review-stage.js.sources/04-compression.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openplanr/design",
3
- "version": "0.4.7",
3
+ "version": "0.4.8",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Canonical OpenPlanr design helpers and design-loop engine",
@@ -46,8 +46,8 @@
46
46
  "node": ">=22.13.0"
47
47
  },
48
48
  "dependencies": {
49
- "@openplanr/artifact": "0.6.7",
50
- "@openplanr/protocol": "0.12.0"
49
+ "@openplanr/artifact": "0.6.8",
50
+ "@openplanr/protocol": "0.13.0"
51
51
  },
52
52
  "scripts": {
53
53
  "test": "node --test --test-concurrency=2 tests/*.test.mjs",
@@ -76,6 +76,7 @@
76
76
  var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
77
77
  var REACT_LAZY_TYPE2 = /* @__PURE__ */ Symbol.for("react.lazy");
78
78
  var REACT_ACTIVITY_TYPE = /* @__PURE__ */ Symbol.for("react.activity");
79
+ var REACT_VIEW_TRANSITION_TYPE = /* @__PURE__ */ Symbol.for("react.view_transition");
79
80
  var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
80
81
  function getIteratorFn(maybeIterable) {
81
82
  if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
@@ -263,19 +264,18 @@
263
264
  }
264
265
  function lazyInitializer(payload) {
265
266
  if (-1 === payload._status) {
266
- var ctor = payload._result;
267
- ctor = ctor();
268
- ctor.then(
267
+ var ctor = payload._result, thenable = ctor();
268
+ thenable.then(
269
269
  function(moduleObject) {
270
270
  if (0 === payload._status || -1 === payload._status)
271
- payload._status = 1, payload._result = moduleObject;
271
+ payload._status = 1, payload._result = moduleObject, void 0 === thenable.status && (thenable.status = "fulfilled", thenable.value = moduleObject);
272
272
  },
273
273
  function(error) {
274
274
  if (0 === payload._status || -1 === payload._status)
275
- payload._status = 2, payload._result = error;
275
+ payload._status = 2, payload._result = error, void 0 === thenable.status && (thenable.status = "rejected", thenable.reason = error);
276
276
  }
277
277
  );
278
- -1 === payload._status && (payload._status = 0, payload._result = ctor);
278
+ -1 === payload._status && (payload._status = 0, payload._result = thenable);
279
279
  }
280
280
  if (1 === payload._status) return payload._result.default;
281
281
  throw payload._result;
@@ -295,6 +295,27 @@
295
295
  }
296
296
  console.error(error);
297
297
  };
298
+ function startTransition(scope) {
299
+ var prevTransition = ReactSharedInternals.T, currentTransition = {};
300
+ currentTransition.types = null !== prevTransition ? prevTransition.types : null;
301
+ ReactSharedInternals.T = currentTransition;
302
+ try {
303
+ var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S;
304
+ null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue);
305
+ "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && returnValue.then(noop3, reportGlobalError);
306
+ } catch (error) {
307
+ reportGlobalError(error);
308
+ } finally {
309
+ null !== prevTransition && null !== currentTransition.types && (prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition;
310
+ }
311
+ }
312
+ function addTransitionType(type) {
313
+ var transition = ReactSharedInternals.T;
314
+ if (null !== transition) {
315
+ var transitionTypes = transition.types;
316
+ null === transitionTypes ? transition.types = [type] : -1 === transitionTypes.indexOf(type) && transitionTypes.push(type);
317
+ } else startTransition(addTransitionType.bind(null, type));
318
+ }
298
319
  var Children5 = {
299
320
  map: mapChildren,
300
321
  forEach: function(children, forEachFunc, forEachContext) {
@@ -334,6 +355,7 @@
334
355
  exports.PureComponent = PureComponent;
335
356
  exports.StrictMode = REACT_STRICT_MODE_TYPE;
336
357
  exports.Suspense = REACT_SUSPENSE_TYPE;
358
+ exports.ViewTransition = REACT_VIEW_TRANSITION_TYPE;
337
359
  exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals;
338
360
  exports.__COMPILER_RUNTIME = {
339
361
  __proto__: null,
@@ -341,6 +363,7 @@
341
363
  return ReactSharedInternals.H.useMemoCache(size4);
342
364
  }
343
365
  };
366
+ exports.addTransitionType = addTransitionType;
344
367
  exports.cache = function(fn) {
345
368
  return function() {
346
369
  return fn.apply(null, arguments);
@@ -421,19 +444,7 @@
421
444
  compare: void 0 === compare ? null : compare
422
445
  };
423
446
  };
424
- exports.startTransition = function(scope) {
425
- var prevTransition = ReactSharedInternals.T, currentTransition = {};
426
- ReactSharedInternals.T = currentTransition;
427
- try {
428
- var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S;
429
- null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue);
430
- "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && returnValue.then(noop3, reportGlobalError);
431
- } catch (error) {
432
- reportGlobalError(error);
433
- } finally {
434
- null !== prevTransition && null !== currentTransition.types && (prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition;
435
- }
436
- };
447
+ exports.startTransition = startTransition;
437
448
  exports.unstable_useCacheRefresh = function() {
438
449
  return ReactSharedInternals.H.useCacheRefresh();
439
450
  };
@@ -497,7 +508,7 @@
497
508
  exports.useTransition = function() {
498
509
  return ReactSharedInternals.H.useTransition();
499
510
  };
500
- exports.version = "19.2.8";
511
+ exports.version = "19.3.0";
501
512
  }
502
513
  });
503
514
 
@@ -556,11 +567,13 @@
556
567
  findDOMNode: null
557
568
  };
558
569
  var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
570
+ var REACT_RECOVERABLE_TYPE = /* @__PURE__ */ Symbol.for("react.recoverable");
571
+ var REACT_OPTIMISTIC_KEY = /* @__PURE__ */ Symbol.for("react.optimistic_key");
559
572
  function createPortal$1(children, containerInfo, implementation) {
560
573
  var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
561
574
  return {
562
575
  $$typeof: REACT_PORTAL_TYPE,
563
- key: null == key ? null : "" + key,
576
+ key: null == key ? null : key === REACT_OPTIMISTIC_KEY ? REACT_OPTIMISTIC_KEY : "" + key,
564
577
  children,
565
578
  containerInfo,
566
579
  implementation
@@ -573,6 +586,9 @@
573
586
  return "use-credentials" === input ? input : "";
574
587
  }
575
588
  exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;
589
+ exports.browser = function(reason) {
590
+ return { $$typeof: REACT_RECOVERABLE_TYPE, _reason: reason };
591
+ };
576
592
  exports.createPortal = function(children, container) {
577
593
  var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
578
594
  if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType)
@@ -623,7 +639,8 @@
623
639
  Internals.d.M(href, {
624
640
  crossOrigin,
625
641
  integrity: "string" === typeof options2.integrity ? options2.integrity : void 0,
626
- nonce: "string" === typeof options2.nonce ? options2.nonce : void 0
642
+ nonce: "string" === typeof options2.nonce ? options2.nonce : void 0,
643
+ fetchPriority: "string" === typeof options2.fetchPriority ? options2.fetchPriority : void 0
627
644
  });
628
645
  }
629
646
  } else null == options2 && Internals.d.M(href);
@@ -651,7 +668,9 @@
651
668
  Internals.d.m(href, {
652
669
  as: "string" === typeof options2.as && "script" !== options2.as ? options2.as : void 0,
653
670
  crossOrigin,
654
- integrity: "string" === typeof options2.integrity ? options2.integrity : void 0
671
+ integrity: "string" === typeof options2.integrity ? options2.integrity : void 0,
672
+ nonce: "string" === typeof options2.nonce ? options2.nonce : void 0,
673
+ fetchPriority: "string" === typeof options2.fetchPriority ? options2.fetchPriority : void 0
655
674
  });
656
675
  } else Internals.d.m(href);
657
676
  };
@@ -667,7 +686,7 @@
667
686
  exports.useFormStatus = function() {
668
687
  return ReactSharedInternals.H.useHostTransitionStatus();
669
688
  };
670
- exports.version = "19.2.8";
689
+ exports.version = "19.3.0";
671
690
  }
672
691
  });
673
692