@dreamboard-games/sdk 0.4.0-alpha.5 → 0.4.0-alpha.7

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 (95) hide show
  1. package/REFERENCE.md +1493 -127
  2. package/dist/{HandView-x8MhbhFl.d.ts → HandView-Bi2lxzQP.d.ts} +3 -3
  3. package/dist/{ThemeProvider-DRalAWzY.d.ts → ThemeProvider-CElaL2ik.d.ts} +1 -1
  4. package/dist/authoring/index.d.ts +5 -4
  5. package/dist/authoring/index.js +4 -4
  6. package/dist/authoring/index.js.map +1 -1
  7. package/dist/browser-interaction.js +1 -1
  8. package/dist/{chunk-E3X552YM.js → chunk-2TRZSZGD.js} +1061 -425
  9. package/dist/chunk-2TRZSZGD.js.map +1 -0
  10. package/dist/{chunk-K5ZRJTZZ.js → chunk-3QIZKXJ2.js} +10 -5
  11. package/dist/chunk-3QIZKXJ2.js.map +1 -0
  12. package/dist/{chunk-KHY3RJLT.js → chunk-52DH7VQF.js} +62 -13
  13. package/dist/chunk-52DH7VQF.js.map +1 -0
  14. package/dist/chunk-5IHU5CUK.js +575 -0
  15. package/dist/chunk-5IHU5CUK.js.map +1 -0
  16. package/dist/{chunk-N6ZDIMRB.js → chunk-B2YBS3SG.js} +1 -1
  17. package/dist/chunk-B2YBS3SG.js.map +1 -0
  18. package/dist/chunk-IU6KGPY7.js +659 -0
  19. package/dist/chunk-IU6KGPY7.js.map +1 -0
  20. package/dist/{chunk-FXQPZZXC.js → chunk-KYEWGZ2Y.js} +2 -2
  21. package/dist/{chunk-FXQPZZXC.js.map → chunk-KYEWGZ2Y.js.map} +1 -1
  22. package/dist/{chunk-AQMEN3AT.js → chunk-NO537WSS.js} +2 -2
  23. package/dist/{chunk-TTISZQNI.js → chunk-Q322XCY2.js} +47 -31
  24. package/dist/chunk-Q322XCY2.js.map +1 -0
  25. package/dist/{chunk-QOFFRHZR.js → chunk-RKGJ64UN.js} +81 -41
  26. package/dist/chunk-RKGJ64UN.js.map +1 -0
  27. package/dist/{chunk-Y6Y2YABD.js → chunk-TGMXBRKY.js} +22 -6
  28. package/dist/chunk-TGMXBRKY.js.map +1 -0
  29. package/dist/{chunk-XZ667T4K.js → chunk-UC2UXAC6.js} +2 -2
  30. package/dist/chunk-VLG4YST5.js +564 -0
  31. package/dist/chunk-VLG4YST5.js.map +1 -0
  32. package/dist/{chunk-WUIVY2KE.js → chunk-WHR5UW3F.js} +1 -1
  33. package/dist/chunk-WHR5UW3F.js.map +1 -0
  34. package/dist/codegen.d.ts +13 -0
  35. package/dist/codegen.js +1 -1
  36. package/dist/{components-B7hFaEn_.d.ts → components-BTwSIjXj.d.ts} +77 -206
  37. package/dist/{stale-contract-artifact-error-BelRiIDR.d.ts → diagnostics-1BWjRo6-.d.ts} +1 -18
  38. package/dist/{hex-board-view-BFlWDb9k.d.ts → hex-board-view-aKkblDp6.d.ts} +180 -1
  39. package/dist/{index-gjxQichK.d.ts → index-CFTjJIXd.d.ts} +5 -4
  40. package/dist/{index.d-BL3bT5lt.d.ts → index.d-DMASeF6M.d.ts} +294 -27
  41. package/dist/index.js +2 -2
  42. package/dist/package-set.d.ts +2 -2
  43. package/dist/package-set.js +2 -2
  44. package/dist/{runtime-api-BJharVaj.d.ts → plugin-state-BRH3UiUp.d.ts} +19 -3
  45. package/dist/{protocol-BP193lva.d.ts → protocol-835hEGne.d.ts} +42 -1
  46. package/dist/reducer/advanced.d.ts +4 -2
  47. package/dist/reducer/advanced.js +1 -1
  48. package/dist/reducer-contract.d.ts +1 -1
  49. package/dist/reducer-contract.js +2 -2
  50. package/dist/reducer.d.ts +13 -6
  51. package/dist/reducer.js +322 -20
  52. package/dist/reducer.js.map +1 -1
  53. package/dist/reference-games/index.d.ts +223 -0
  54. package/dist/reference-games/index.js +230 -0
  55. package/dist/reference-games/index.js.map +1 -0
  56. package/dist/runtime/primitives.d.ts +32 -7
  57. package/dist/runtime/primitives.js +10 -5
  58. package/dist/runtime/runtime-api.d.ts +1 -1
  59. package/dist/runtime/workspace-contract.d.ts +7 -7
  60. package/dist/runtime/workspace-contract.js +7 -6
  61. package/dist/runtime-Dkfm1x2r.d.ts +1670 -0
  62. package/dist/runtime.d.ts +10 -9
  63. package/dist/runtime.js +53 -19
  64. package/dist/runtime.js.map +1 -1
  65. package/dist/stale-contract-artifact-error-C5AaZPJ8.d.ts +18 -0
  66. package/dist/testing-runtime.d.ts +42 -0
  67. package/dist/testing-runtime.js +153 -0
  68. package/dist/testing-runtime.js.map +1 -0
  69. package/dist/testing.d.ts +82 -205
  70. package/dist/testing.js +83 -640
  71. package/dist/testing.js.map +1 -1
  72. package/dist/types-DcADVHe9.d.ts +192 -0
  73. package/dist/{types-CYeN0wLK.d.ts → types-aI4V9CWe.d.ts} +5 -5
  74. package/dist/types.d.ts +13 -0
  75. package/dist/ui/components.d.ts +6 -3
  76. package/dist/ui/components.js +15 -3
  77. package/dist/ui/plugin-styles.css +2 -2
  78. package/dist/{ui-contract-B4NjRlvC.d.ts → ui-contract-Ue6SywvO.d.ts} +24 -10
  79. package/dist/ui.d.ts +9 -6
  80. package/dist/ui.js +16 -4
  81. package/dist/views-32rSsfeU.d.ts +1559 -0
  82. package/package.json +33 -21
  83. package/dist/chunk-E3X552YM.js.map +0 -1
  84. package/dist/chunk-K5ZRJTZZ.js.map +0 -1
  85. package/dist/chunk-KHY3RJLT.js.map +0 -1
  86. package/dist/chunk-N6ZDIMRB.js.map +0 -1
  87. package/dist/chunk-O6M6PN4E.js +0 -1225
  88. package/dist/chunk-O6M6PN4E.js.map +0 -1
  89. package/dist/chunk-QOFFRHZR.js.map +0 -1
  90. package/dist/chunk-TTISZQNI.js.map +0 -1
  91. package/dist/chunk-WUIVY2KE.js.map +0 -1
  92. package/dist/chunk-Y6Y2YABD.js.map +0 -1
  93. package/dist/views-fn2RuXOx.d.ts +0 -3168
  94. /package/dist/{chunk-AQMEN3AT.js.map → chunk-NO537WSS.js.map} +0 -0
  95. /package/dist/{chunk-XZ667T4K.js.map → chunk-UC2UXAC6.js.map} +0 -0
@@ -0,0 +1,575 @@
1
+ // ../plugin-runtime-contract/dist/chunk-GX5V4QL7.js
2
+ import { sha256 } from "@noble/hashes/sha2.js";
3
+ import { bytesToHex, utf8ToBytes } from "@noble/hashes/utils.js";
4
+ function canonicalizePluginRuntimeJson(value) {
5
+ assertRuntimeJson(value);
6
+ return canonicalizeJson(value);
7
+ }
8
+ function encodeCanonicalPluginRuntimeJson(value) {
9
+ return JSON.stringify(canonicalizePluginRuntimeJson(value));
10
+ }
11
+ function digestPluginRuntimeJson(value) {
12
+ return `sha256:${sha256Hex(encodeCanonicalPluginRuntimeJson(value))}`;
13
+ }
14
+ function canonicalizeJson(value) {
15
+ if (value === null || typeof value === "boolean" || typeof value === "string") {
16
+ return value;
17
+ }
18
+ if (typeof value === "number") {
19
+ if (!Number.isFinite(value)) {
20
+ throw new Error("canonical JSON contains a non-finite number");
21
+ }
22
+ return value;
23
+ }
24
+ if (Array.isArray(value)) {
25
+ return value.map((item) => canonicalizeJson(item));
26
+ }
27
+ return Object.fromEntries(
28
+ Object.entries(value).filter(([, item]) => item !== void 0).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([key, item]) => [key, canonicalizeJson(item)])
29
+ );
30
+ }
31
+ function assertRuntimeJson(value) {
32
+ if (value === null || typeof value === "boolean" || typeof value === "string") {
33
+ return;
34
+ }
35
+ if (typeof value === "number") {
36
+ if (!Number.isFinite(value)) {
37
+ throw new Error("runtime JSON contains a non-finite number");
38
+ }
39
+ return;
40
+ }
41
+ if (Array.isArray(value)) {
42
+ value.forEach(assertRuntimeJson);
43
+ return;
44
+ }
45
+ if (typeof value === "object") {
46
+ Object.values(value).forEach((item) => {
47
+ if (item !== void 0) {
48
+ assertRuntimeJson(item);
49
+ }
50
+ });
51
+ return;
52
+ }
53
+ throw new Error(`runtime JSON contains unsupported ${typeof value} value`);
54
+ }
55
+ function sha256Hex(input) {
56
+ return bytesToHex(sha256(utf8ToBytes(input)));
57
+ }
58
+ function computePluginActionSetVersion(input) {
59
+ return digestPluginRuntimeJson({
60
+ digestVersion: "plugin-action-set@3",
61
+ gameVersion: input.gameVersion,
62
+ availableInteractions: input.availableInteractions
63
+ });
64
+ }
65
+ function digestPluginGameplayFrame(frame) {
66
+ return digestPluginRuntimeJson({
67
+ digestVersion: "plugin-gameplay-frame@3",
68
+ frame
69
+ });
70
+ }
71
+
72
+ // ../plugin-runtime-contract/dist/chunk-E4Y6SAWF.js
73
+ import { z } from "zod";
74
+ var DREAMBOARD_PLUGIN_PROTOCOL = "dreamboard-plugin";
75
+ var DREAMBOARD_PLUGIN_PROTOCOL_VERSION = 3;
76
+ var RuntimeJsonSchema = z.lazy(
77
+ () => z.union([
78
+ z.null(),
79
+ z.boolean(),
80
+ z.number().finite(),
81
+ z.string(),
82
+ z.array(RuntimeJsonSchema),
83
+ z.record(z.string(), RuntimeJsonSchema)
84
+ ])
85
+ );
86
+ var BoardStaticProjectionSchema = z.object({
87
+ view: RuntimeJsonSchema,
88
+ hash: z.string().optional(),
89
+ manifestVersion: z.string().optional()
90
+ }).strict();
91
+ var SetupGuidanceStepSchema = z.object({
92
+ id: z.string().min(1),
93
+ label: z.string().min(1),
94
+ description: z.string().optional()
95
+ }).strict();
96
+ var GameGuidanceProjectionSchema = z.object({
97
+ phase: z.object({
98
+ id: z.string().min(1),
99
+ label: z.string().min(1),
100
+ summary: z.string().optional(),
101
+ objective: z.string().optional()
102
+ }).strict(),
103
+ setup: z.object({
104
+ profileId: z.string().min(1),
105
+ name: z.string().min(1),
106
+ summary: z.string().optional(),
107
+ steps: z.array(SetupGuidanceStepSchema)
108
+ }).strict().optional()
109
+ }).strict();
110
+ var GameEventDetailSchema = z.object({
111
+ label: z.string().min(1),
112
+ value: z.union([z.string(), z.number().finite(), z.boolean()])
113
+ }).strict();
114
+ var SystemActionEventSchema = z.object({
115
+ kind: z.literal("systemAction"),
116
+ procedureId: z.string().min(1),
117
+ title: z.string().min(1),
118
+ summary: z.string().optional(),
119
+ details: z.array(GameEventDetailSchema).optional()
120
+ }).strict();
121
+ var GameEventSchema = z.discriminatedUnion("kind", [
122
+ SystemActionEventSchema
123
+ ]);
124
+ var ProjectedGameEventSchema = GameEventSchema.and(
125
+ z.object({
126
+ version: z.number().int().nonnegative(),
127
+ index: z.number().int().nonnegative()
128
+ }).strict()
129
+ );
130
+ var SeatProjectionBundleSchema = z.object({
131
+ currentStage: z.string().nullable().optional(),
132
+ stageSeats: z.array(z.string()).optional(),
133
+ simultaneousPhase: z.unknown().nullable().optional(),
134
+ guidance: GameGuidanceProjectionSchema.nullable().optional(),
135
+ recentEvents: z.array(ProjectedGameEventSchema).optional(),
136
+ interactionsByRef: z.record(z.string(), z.unknown()).optional(),
137
+ seats: z.record(
138
+ z.string(),
139
+ z.object({
140
+ view: z.unknown().optional(),
141
+ availableInteractionRefs: z.array(z.string()).optional(),
142
+ zones: z.unknown().optional()
143
+ }).strict()
144
+ )
145
+ }).strict();
146
+ var PlayerIdSchema = z.string().min(1);
147
+ var PluginPlayerSummarySchema = z.object({
148
+ playerId: PlayerIdSchema,
149
+ displayName: z.string(),
150
+ color: z.string().optional()
151
+ }).strict();
152
+ var PluginSessionDescriptorSchema = z.object({
153
+ sessionId: z.string().min(1),
154
+ players: z.array(PluginPlayerSummarySchema)
155
+ }).strict();
156
+ var InteractionCommitPolicySchema = z.discriminatedUnion("mode", [
157
+ z.object({ mode: z.literal("manual") }).strict(),
158
+ z.object({ mode: z.literal("autoWhenReady") }).strict()
159
+ ]);
160
+ var InputSelectionSchema = z.discriminatedUnion("mode", [
161
+ z.object({ mode: z.literal("single") }).strict(),
162
+ z.object({
163
+ mode: z.literal("many"),
164
+ min: z.number().int(),
165
+ max: z.number().int().optional(),
166
+ distinct: z.boolean().optional()
167
+ }).strict()
168
+ ]);
169
+ var InputDomainDependencyCaseSchema = z.lazy(
170
+ () => z.object({
171
+ when: z.record(z.string(), z.string()),
172
+ domain: InputDomainSchema
173
+ }).strict()
174
+ );
175
+ var InputDomainDependenciesSchema = z.discriminatedUnion("mode", [
176
+ z.object({
177
+ mode: z.literal("eager"),
178
+ dependentCases: z.array(InputDomainDependencyCaseSchema)
179
+ }).strict(),
180
+ z.object({
181
+ mode: z.literal("lazy"),
182
+ dependsOn: z.array(z.string()),
183
+ resolver: z.object({
184
+ interactionKey: z.string().optional(),
185
+ inputKey: z.string()
186
+ }).strict()
187
+ }).strict()
188
+ ]);
189
+ var InputDomainSchema = z.object({
190
+ type: z.string(),
191
+ selection: InputSelectionSchema.optional(),
192
+ dependencies: InputDomainDependenciesSchema.optional()
193
+ }).catchall(RuntimeJsonSchema);
194
+ var InteractionChoiceOptionSchema = z.object({
195
+ value: z.string().nullable(),
196
+ label: z.string(),
197
+ icon: z.string().optional(),
198
+ badge: z.string().optional(),
199
+ description: z.string().optional(),
200
+ disabled: z.boolean().optional(),
201
+ disabledReason: z.string().optional()
202
+ }).strict();
203
+ var InteractionInputDescriptorSchema = z.object({
204
+ key: z.string().min(1),
205
+ kind: z.string().min(1),
206
+ domain: InputDomainSchema,
207
+ defaultValue: RuntimeJsonSchema.optional()
208
+ }).strict();
209
+ var InteractionAvailabilitySchema = z.discriminatedUnion("status", [
210
+ z.object({ status: z.literal("available") }).strict(),
211
+ z.object({ status: z.literal("notYourTurn"), reason: z.string() }).strict(),
212
+ z.object({
213
+ status: z.literal("insufficientResources"),
214
+ reason: z.string(),
215
+ missingResources: z.record(z.string(), z.number().finite())
216
+ }).strict(),
217
+ z.object({
218
+ status: z.literal("blocked"),
219
+ reason: z.string(),
220
+ code: z.string().optional()
221
+ }).strict()
222
+ ]);
223
+ var InteractionBaseSchema = z.object({
224
+ phaseName: z.string().min(1),
225
+ interactionKey: z.string().min(1),
226
+ interactionId: z.string().min(1),
227
+ label: z.string().min(1),
228
+ help: z.string().optional(),
229
+ zoneId: z.string().optional(),
230
+ zoneIds: z.array(z.string()).optional(),
231
+ commit: InteractionCommitPolicySchema,
232
+ descriptorDigest: z.string().optional(),
233
+ actorSeat: z.number().int().optional(),
234
+ draftDigest: z.string().optional(),
235
+ inputs: z.array(InteractionInputDescriptorSchema),
236
+ cost: z.record(z.string(), RuntimeJsonSchema).optional(),
237
+ currentResources: z.record(z.string(), RuntimeJsonSchema).optional(),
238
+ availability: InteractionAvailabilitySchema,
239
+ reasons: z.array(
240
+ z.object({
241
+ ruleId: z.string(),
242
+ errorCode: z.string()
243
+ }).strict()
244
+ ).optional()
245
+ }).strict();
246
+ var InteractionContextSchema = z.object({
247
+ to: z.string().min(1),
248
+ title: z.string().optional(),
249
+ payload: z.record(z.string(), RuntimeJsonSchema).optional(),
250
+ options: z.array(
251
+ z.object({
252
+ id: z.string(),
253
+ label: z.string().optional()
254
+ }).strict()
255
+ ).optional()
256
+ }).strict();
257
+ var InteractionDescriptorSchema = z.discriminatedUnion("kind", [
258
+ InteractionBaseSchema.extend({ kind: z.literal("action") }).strict(),
259
+ InteractionBaseSchema.extend({
260
+ kind: z.literal("prompt"),
261
+ context: InteractionContextSchema
262
+ }).strict()
263
+ ]);
264
+ var ZoneHandlesSnapshotSchema = z.object({
265
+ cardIds: z.array(z.string()),
266
+ cardViewsById: z.record(z.string(), z.string()),
267
+ playableByCardId: z.record(
268
+ z.string(),
269
+ z.array(InteractionDescriptorSchema)
270
+ )
271
+ }).strict();
272
+ var SimultaneousPhaseSnapshotSchema = z.object({
273
+ phaseName: z.string().min(1),
274
+ interactionId: z.string().min(1),
275
+ actorIds: z.array(PlayerIdSchema),
276
+ sealedPlayerIds: z.array(PlayerIdSchema),
277
+ pendingPlayerIds: z.array(PlayerIdSchema)
278
+ }).strict();
279
+ var PluginGameplayFrameSchema = z.object({
280
+ gameVersion: z.number().int().nonnegative(),
281
+ actionSetVersion: z.string().min(1),
282
+ perspectivePlayerId: PlayerIdSchema.nullable(),
283
+ view: RuntimeJsonSchema.nullable(),
284
+ flow: z.object({
285
+ currentPhase: z.string().nullable(),
286
+ currentStage: z.string().nullable(),
287
+ activePlayers: z.array(PlayerIdSchema),
288
+ simultaneousPhase: SimultaneousPhaseSnapshotSchema.nullable()
289
+ }).strict(),
290
+ availableInteractions: z.array(InteractionDescriptorSchema),
291
+ guidance: GameGuidanceProjectionSchema.nullable().optional(),
292
+ recentEvents: z.array(ProjectedGameEventSchema),
293
+ zones: z.record(z.string(), ZoneHandlesSnapshotSchema)
294
+ }).strict();
295
+ var ValidationResultSchema = z.object({
296
+ valid: z.boolean(),
297
+ errorCode: z.string().optional(),
298
+ message: z.string().optional()
299
+ }).strict();
300
+ var SubmissionResultSchema = z.discriminatedUnion("accepted", [
301
+ z.object({ accepted: z.literal(true) }).strict(),
302
+ z.object({
303
+ accepted: z.literal(false),
304
+ errorCode: z.string().min(1),
305
+ message: z.string().optional()
306
+ }).strict()
307
+ ]);
308
+ var PluginInteractionBasisSchema = z.object({
309
+ gameVersion: z.number().int().nonnegative(),
310
+ actionSetVersion: z.string().min(1),
311
+ perspectivePlayerId: PlayerIdSchema.nullable()
312
+ }).strict();
313
+ var ValidateInteractionCommandSchema = z.object({
314
+ type: z.literal("interaction.validate"),
315
+ requestId: z.string().min(1),
316
+ basis: PluginInteractionBasisSchema,
317
+ interactionId: z.string().min(1),
318
+ params: RuntimeJsonSchema
319
+ }).strict();
320
+ var SubmitInteractionCommandSchema = z.object({
321
+ type: z.literal("interaction.submit"),
322
+ requestId: z.string().min(1),
323
+ basis: PluginInteractionBasisSchema,
324
+ interactionId: z.string().min(1),
325
+ params: RuntimeJsonSchema
326
+ }).strict();
327
+ var HostToPluginPayloadSchema = z.discriminatedUnion("type", [
328
+ z.object({
329
+ type: z.literal("runtime.init"),
330
+ session: PluginSessionDescriptorSchema
331
+ }).strict(),
332
+ z.object({
333
+ type: z.literal("gameplay.frame"),
334
+ frame: PluginGameplayFrameSchema
335
+ }).strict(),
336
+ z.object({
337
+ type: z.literal("interaction.validation-result"),
338
+ requestId: z.string().min(1),
339
+ result: ValidationResultSchema
340
+ }).strict(),
341
+ z.object({
342
+ type: z.literal("interaction.submit-result"),
343
+ requestId: z.string().min(1),
344
+ result: SubmissionResultSchema
345
+ }).strict()
346
+ ]);
347
+ var PluginToHostPayloadSchema = z.discriminatedUnion("type", [
348
+ z.object({ type: z.literal("runtime.ready") }).strict(),
349
+ z.object({
350
+ type: z.literal("runtime.ack"),
351
+ sequence: z.number().int().nonnegative(),
352
+ clientReceivedAtMs: z.number().finite().optional(),
353
+ clientRenderedAtMs: z.number().finite().optional()
354
+ }).strict(),
355
+ ValidateInteractionCommandSchema,
356
+ SubmitInteractionCommandSchema,
357
+ z.object({
358
+ type: z.literal("runtime.error"),
359
+ message: z.string(),
360
+ code: z.string().optional()
361
+ }).strict()
362
+ ]);
363
+ function createPluginProtocolEnvelopeSchema(payloadSchema) {
364
+ return z.object({
365
+ protocol: z.literal(DREAMBOARD_PLUGIN_PROTOCOL),
366
+ version: z.literal(DREAMBOARD_PLUGIN_PROTOCOL_VERSION),
367
+ channelId: z.string().min(1),
368
+ sequence: z.number().int().nonnegative(),
369
+ payload: payloadSchema
370
+ }).strict();
371
+ }
372
+ var HostToPluginEnvelopeSchema = createPluginProtocolEnvelopeSchema(
373
+ HostToPluginPayloadSchema
374
+ );
375
+ var PluginToHostEnvelopeSchema = createPluginProtocolEnvelopeSchema(
376
+ PluginToHostPayloadSchema
377
+ );
378
+ var PluginProtocolFrameSchema = z.object({
379
+ id: z.string().min(1),
380
+ frame: PluginGameplayFrameSchema,
381
+ projectionDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/)
382
+ }).strict();
383
+ var PluginProtocolStepSchema = z.discriminatedUnion("kind", [
384
+ z.object({
385
+ id: z.string().min(1),
386
+ kind: z.literal("host.frame"),
387
+ frameId: z.string().min(1)
388
+ }).strict(),
389
+ z.object({
390
+ id: z.string().min(1),
391
+ kind: z.literal("client.validate"),
392
+ fromFrameId: z.string().min(1),
393
+ requestDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),
394
+ response: ValidationResultSchema
395
+ }).strict(),
396
+ z.object({
397
+ id: z.string().min(1),
398
+ kind: z.literal("client.submit"),
399
+ fromFrameId: z.string().min(1),
400
+ requestDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),
401
+ response: SubmissionResultSchema
402
+ }).strict()
403
+ ]);
404
+ var PluginProtocolTapeSchema = z.object({
405
+ session: PluginSessionDescriptorSchema,
406
+ frames: z.array(PluginProtocolFrameSchema),
407
+ steps: z.array(PluginProtocolStepSchema)
408
+ }).strict();
409
+
410
+ // ../plugin-runtime-contract/dist/index.js
411
+ function materializePluginGameplayFrame(input) {
412
+ const dynamicProjection = SeatProjectionBundleSchema.parse(
413
+ canonicalizeReducerProjection(input.dynamicProjection)
414
+ );
415
+ const staticProjection = input.staticProjection == null ? null : BoardStaticProjectionSchema.parse(
416
+ canonicalizeReducerProjection(input.staticProjection)
417
+ );
418
+ const registry = parseInteractionRegistry(
419
+ dynamicProjection.interactionsByRef
420
+ );
421
+ const seat = input.perspectivePlayerId == null ? null : dynamicProjection.seats[input.perspectivePlayerId] ?? null;
422
+ const availableInteractions = seat == null ? [] : hydrateInteractionRefs(
423
+ registry,
424
+ seat.availableInteractionRefs,
425
+ "availableInteractionRefs"
426
+ );
427
+ const zones = seat?.zones == null ? {} : hydrateZones(registry, seat.zones, "zones");
428
+ const frame = {
429
+ gameVersion: input.gameVersion,
430
+ actionSetVersion: input.actionSetVersion,
431
+ perspectivePlayerId: input.perspectivePlayerId,
432
+ view: composeProjectionView(staticProjection, seat?.view),
433
+ flow: {
434
+ currentPhase: input.currentPhase,
435
+ currentStage: dynamicProjection.currentStage ?? null,
436
+ activePlayers: [...input.activePlayers],
437
+ simultaneousPhase: dynamicProjection.simultaneousPhase ?? null
438
+ },
439
+ availableInteractions,
440
+ guidance: dynamicProjection.guidance ?? null,
441
+ recentEvents: [...dynamicProjection.recentEvents ?? []],
442
+ zones
443
+ };
444
+ return PluginGameplayFrameSchema.parse(frame);
445
+ }
446
+ function canonicalizeReducerProjection(value) {
447
+ return canonicalizePluginRuntimeJson(value);
448
+ }
449
+ function parseInteractionRegistry(value) {
450
+ if (value == null) return {};
451
+ if (!isRecord(value)) {
452
+ throw new Error("Seat projection interactionsByRef must be an object.");
453
+ }
454
+ return Object.fromEntries(
455
+ Object.entries(value).map(([ref, descriptor]) => [
456
+ ref,
457
+ InteractionDescriptorSchema.parse(descriptor)
458
+ ])
459
+ );
460
+ }
461
+ function hydrateZones(registry, value, path) {
462
+ if (!isRecord(value)) {
463
+ throw new Error(`Seat projection ${path} must be an object.`);
464
+ }
465
+ return Object.fromEntries(
466
+ Object.entries(value).map(([zoneId, zoneValue]) => [
467
+ zoneId,
468
+ hydrateZone(registry, zoneValue, `${path}.${zoneId}`)
469
+ ])
470
+ );
471
+ }
472
+ function hydrateZone(registry, value, path) {
473
+ if (!isRecord(value)) {
474
+ throw new Error(`Seat projection ${path} must be an object.`);
475
+ }
476
+ const cardIds = arrayOfStrings(value.cardIds, `${path}.cardIds`);
477
+ const cardViewsById = stringRecord(
478
+ value.cardViewsById,
479
+ `${path}.cardViewsById`
480
+ );
481
+ if (!isRecord(value.playableByCardId)) {
482
+ throw new Error(
483
+ `Seat projection ${path}.playableByCardId must be an object.`
484
+ );
485
+ }
486
+ const playableByCardId = Object.fromEntries(
487
+ Object.entries(value.playableByCardId).map(([cardId, refs]) => [
488
+ cardId,
489
+ hydrateInteractionRefs(
490
+ registry,
491
+ refs,
492
+ `${path}.playableByCardId.${cardId}`
493
+ )
494
+ ])
495
+ );
496
+ return ZoneHandlesSnapshotSchema.parse({
497
+ cardIds,
498
+ cardViewsById,
499
+ playableByCardId
500
+ });
501
+ }
502
+ function hydrateInteractionRefs(registry, value, path) {
503
+ if (!Array.isArray(value)) {
504
+ throw new Error(`Seat projection ${path} must be an array of refs.`);
505
+ }
506
+ return value.map((ref, index) => {
507
+ if (typeof ref !== "string") {
508
+ throw new Error(
509
+ `Seat projection ${path}[${index}] must be a ref string.`
510
+ );
511
+ }
512
+ const descriptor = registry[ref];
513
+ if (!descriptor) {
514
+ throw new Error(
515
+ `Seat projection ${path}[${index}] references '${ref}', which is missing from interactionsByRef.`
516
+ );
517
+ }
518
+ return descriptor;
519
+ });
520
+ }
521
+ function composeProjectionView(staticProjection, dynamicView) {
522
+ const normalizedDynamicView = dynamicView === void 0 ? null : dynamicView;
523
+ if (staticProjection == null) {
524
+ return normalizedDynamicView;
525
+ }
526
+ if (normalizedDynamicView == null) {
527
+ return staticProjection.view;
528
+ }
529
+ if (isRecord(staticProjection.view) && isRecord(normalizedDynamicView)) {
530
+ return {
531
+ ...staticProjection.view,
532
+ ...normalizedDynamicView
533
+ };
534
+ }
535
+ return {
536
+ static: staticProjection.view,
537
+ dynamic: normalizedDynamicView
538
+ };
539
+ }
540
+ function arrayOfStrings(value, path) {
541
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
542
+ throw new Error(`Seat projection ${path} must be an array of strings.`);
543
+ }
544
+ return value;
545
+ }
546
+ function stringRecord(value, path) {
547
+ if (!isRecord(value)) {
548
+ throw new Error(`Seat projection ${path} must be an object.`);
549
+ }
550
+ const result = {};
551
+ for (const [key, item] of Object.entries(value)) {
552
+ if (typeof item !== "string") {
553
+ throw new Error(`Seat projection ${path}.${key} must be a string.`);
554
+ }
555
+ result[key] = item;
556
+ }
557
+ return result;
558
+ }
559
+ function isRecord(value) {
560
+ return value !== null && typeof value === "object" && !Array.isArray(value) && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);
561
+ }
562
+
563
+ export {
564
+ computePluginActionSetVersion,
565
+ digestPluginGameplayFrame,
566
+ DREAMBOARD_PLUGIN_PROTOCOL,
567
+ DREAMBOARD_PLUGIN_PROTOCOL_VERSION,
568
+ RuntimeJsonSchema,
569
+ HostToPluginEnvelopeSchema,
570
+ PluginProtocolFrameSchema,
571
+ PluginProtocolStepSchema,
572
+ PluginProtocolTapeSchema,
573
+ materializePluginGameplayFrame
574
+ };
575
+ //# sourceMappingURL=chunk-5IHU5CUK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../plugin-runtime-contract/dist/chunk-GX5V4QL7.js","../../plugin-runtime-contract/dist/chunk-E4Y6SAWF.js","../../plugin-runtime-contract/dist/index.js"],"sourcesContent":["// src/json.ts\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { bytesToHex, utf8ToBytes } from \"@noble/hashes/utils.js\";\nfunction canonicalizePluginRuntimeJson(value) {\n assertRuntimeJson(value);\n return canonicalizeJson(value);\n}\nfunction encodeCanonicalPluginRuntimeJson(value) {\n return JSON.stringify(canonicalizePluginRuntimeJson(value));\n}\nfunction digestPluginRuntimeJson(value) {\n return `sha256:${sha256Hex(encodeCanonicalPluginRuntimeJson(value))}`;\n}\nfunction canonicalizeJson(value) {\n if (value === null || typeof value === \"boolean\" || typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new Error(\"canonical JSON contains a non-finite number\");\n }\n return value;\n }\n if (Array.isArray(value)) {\n return value.map((item) => canonicalizeJson(item));\n }\n return Object.fromEntries(\n Object.entries(value).filter(([, item]) => item !== void 0).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([key, item]) => [key, canonicalizeJson(item)])\n );\n}\nfunction assertRuntimeJson(value) {\n if (value === null || typeof value === \"boolean\" || typeof value === \"string\") {\n return;\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new Error(\"runtime JSON contains a non-finite number\");\n }\n return;\n }\n if (Array.isArray(value)) {\n value.forEach(assertRuntimeJson);\n return;\n }\n if (typeof value === \"object\") {\n Object.values(value).forEach((item) => {\n if (item !== void 0) {\n assertRuntimeJson(item);\n }\n });\n return;\n }\n throw new Error(`runtime JSON contains unsupported ${typeof value} value`);\n}\nfunction sha256Hex(input) {\n return bytesToHex(sha256(utf8ToBytes(input)));\n}\n\n// src/digest.ts\nfunction computePluginActionSetVersion(input) {\n return digestPluginRuntimeJson({\n digestVersion: \"plugin-action-set@3\",\n gameVersion: input.gameVersion,\n availableInteractions: input.availableInteractions\n });\n}\nfunction digestPluginGameplayFrame(frame) {\n return digestPluginRuntimeJson({\n digestVersion: \"plugin-gameplay-frame@3\",\n frame\n });\n}\nfunction digestPluginCommandRequest(command) {\n return digestPluginRuntimeJson({\n digestVersion: \"plugin-command-request@3\",\n command\n });\n}\n\nexport {\n canonicalizePluginRuntimeJson,\n encodeCanonicalPluginRuntimeJson,\n digestPluginRuntimeJson,\n computePluginActionSetVersion,\n digestPluginGameplayFrame,\n digestPluginCommandRequest\n};\n","// src/schema.ts\nimport { z } from \"zod\";\n\n// src/protocol.ts\nvar DREAMBOARD_PLUGIN_PROTOCOL = \"dreamboard-plugin\";\nvar DREAMBOARD_PLUGIN_PROTOCOL_VERSION = 3;\n\n// src/schema.ts\nvar RuntimeJsonSchema = z.lazy(\n () => z.union([\n z.null(),\n z.boolean(),\n z.number().finite(),\n z.string(),\n z.array(RuntimeJsonSchema),\n z.record(z.string(), RuntimeJsonSchema)\n ])\n);\nvar BoardStaticProjectionSchema = z.object({\n view: RuntimeJsonSchema,\n hash: z.string().optional(),\n manifestVersion: z.string().optional()\n}).strict();\nvar SetupGuidanceStepSchema = z.object({\n id: z.string().min(1),\n label: z.string().min(1),\n description: z.string().optional()\n}).strict();\nvar GameGuidanceProjectionSchema = z.object({\n phase: z.object({\n id: z.string().min(1),\n label: z.string().min(1),\n summary: z.string().optional(),\n objective: z.string().optional()\n }).strict(),\n setup: z.object({\n profileId: z.string().min(1),\n name: z.string().min(1),\n summary: z.string().optional(),\n steps: z.array(SetupGuidanceStepSchema)\n }).strict().optional()\n}).strict();\nvar GameEventDetailSchema = z.object({\n label: z.string().min(1),\n value: z.union([z.string(), z.number().finite(), z.boolean()])\n}).strict();\nvar SystemActionEventSchema = z.object({\n kind: z.literal(\"systemAction\"),\n procedureId: z.string().min(1),\n title: z.string().min(1),\n summary: z.string().optional(),\n details: z.array(GameEventDetailSchema).optional()\n}).strict();\nvar GameEventSchema = z.discriminatedUnion(\"kind\", [\n SystemActionEventSchema\n]);\nvar ProjectedGameEventSchema = GameEventSchema.and(\n z.object({\n version: z.number().int().nonnegative(),\n index: z.number().int().nonnegative()\n }).strict()\n);\nvar SeatProjectionBundleSchema = z.object({\n currentStage: z.string().nullable().optional(),\n stageSeats: z.array(z.string()).optional(),\n simultaneousPhase: z.unknown().nullable().optional(),\n guidance: GameGuidanceProjectionSchema.nullable().optional(),\n recentEvents: z.array(ProjectedGameEventSchema).optional(),\n interactionsByRef: z.record(z.string(), z.unknown()).optional(),\n seats: z.record(\n z.string(),\n z.object({\n view: z.unknown().optional(),\n availableInteractionRefs: z.array(z.string()).optional(),\n zones: z.unknown().optional()\n }).strict()\n )\n}).strict();\nvar PlayerIdSchema = z.string().min(1);\nvar PluginPlayerSummarySchema = z.object({\n playerId: PlayerIdSchema,\n displayName: z.string(),\n color: z.string().optional()\n}).strict();\nvar PluginSessionDescriptorSchema = z.object({\n sessionId: z.string().min(1),\n players: z.array(PluginPlayerSummarySchema)\n}).strict();\nvar InteractionCommitPolicySchema = z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"manual\") }).strict(),\n z.object({ mode: z.literal(\"autoWhenReady\") }).strict()\n]);\nvar InputSelectionSchema = z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"single\") }).strict(),\n z.object({\n mode: z.literal(\"many\"),\n min: z.number().int(),\n max: z.number().int().optional(),\n distinct: z.boolean().optional()\n }).strict()\n]);\nvar InputDomainDependencyCaseSchema = z.lazy(\n () => z.object({\n when: z.record(z.string(), z.string()),\n domain: InputDomainSchema\n }).strict()\n);\nvar InputDomainDependenciesSchema = z.discriminatedUnion(\"mode\", [\n z.object({\n mode: z.literal(\"eager\"),\n dependentCases: z.array(InputDomainDependencyCaseSchema)\n }).strict(),\n z.object({\n mode: z.literal(\"lazy\"),\n dependsOn: z.array(z.string()),\n resolver: z.object({\n interactionKey: z.string().optional(),\n inputKey: z.string()\n }).strict()\n }).strict()\n]);\nvar InputDomainSchema = z.object({\n type: z.string(),\n selection: InputSelectionSchema.optional(),\n dependencies: InputDomainDependenciesSchema.optional()\n}).catchall(RuntimeJsonSchema);\nvar InteractionChoiceOptionSchema = z.object({\n value: z.string().nullable(),\n label: z.string(),\n icon: z.string().optional(),\n badge: z.string().optional(),\n description: z.string().optional(),\n disabled: z.boolean().optional(),\n disabledReason: z.string().optional()\n}).strict();\nvar InteractionInputDescriptorSchema = z.object({\n key: z.string().min(1),\n kind: z.string().min(1),\n domain: InputDomainSchema,\n defaultValue: RuntimeJsonSchema.optional()\n}).strict();\nvar InteractionAvailabilitySchema = z.discriminatedUnion(\"status\", [\n z.object({ status: z.literal(\"available\") }).strict(),\n z.object({ status: z.literal(\"notYourTurn\"), reason: z.string() }).strict(),\n z.object({\n status: z.literal(\"insufficientResources\"),\n reason: z.string(),\n missingResources: z.record(z.string(), z.number().finite())\n }).strict(),\n z.object({\n status: z.literal(\"blocked\"),\n reason: z.string(),\n code: z.string().optional()\n }).strict()\n]);\nvar InteractionBaseSchema = z.object({\n phaseName: z.string().min(1),\n interactionKey: z.string().min(1),\n interactionId: z.string().min(1),\n label: z.string().min(1),\n help: z.string().optional(),\n zoneId: z.string().optional(),\n zoneIds: z.array(z.string()).optional(),\n commit: InteractionCommitPolicySchema,\n descriptorDigest: z.string().optional(),\n actorSeat: z.number().int().optional(),\n draftDigest: z.string().optional(),\n inputs: z.array(InteractionInputDescriptorSchema),\n cost: z.record(z.string(), RuntimeJsonSchema).optional(),\n currentResources: z.record(z.string(), RuntimeJsonSchema).optional(),\n availability: InteractionAvailabilitySchema,\n reasons: z.array(\n z.object({\n ruleId: z.string(),\n errorCode: z.string()\n }).strict()\n ).optional()\n}).strict();\nvar InteractionContextSchema = z.object({\n to: z.string().min(1),\n title: z.string().optional(),\n payload: z.record(z.string(), RuntimeJsonSchema).optional(),\n options: z.array(\n z.object({\n id: z.string(),\n label: z.string().optional()\n }).strict()\n ).optional()\n}).strict();\nvar InteractionDescriptorSchema = z.discriminatedUnion(\"kind\", [\n InteractionBaseSchema.extend({ kind: z.literal(\"action\") }).strict(),\n InteractionBaseSchema.extend({\n kind: z.literal(\"prompt\"),\n context: InteractionContextSchema\n }).strict()\n]);\nvar ZoneHandlesSnapshotSchema = z.object({\n cardIds: z.array(z.string()),\n cardViewsById: z.record(z.string(), z.string()),\n playableByCardId: z.record(\n z.string(),\n z.array(InteractionDescriptorSchema)\n )\n}).strict();\nvar SimultaneousPhaseSnapshotSchema = z.object({\n phaseName: z.string().min(1),\n interactionId: z.string().min(1),\n actorIds: z.array(PlayerIdSchema),\n sealedPlayerIds: z.array(PlayerIdSchema),\n pendingPlayerIds: z.array(PlayerIdSchema)\n}).strict();\nvar PluginGameplayFrameSchema = z.object({\n gameVersion: z.number().int().nonnegative(),\n actionSetVersion: z.string().min(1),\n perspectivePlayerId: PlayerIdSchema.nullable(),\n view: RuntimeJsonSchema.nullable(),\n flow: z.object({\n currentPhase: z.string().nullable(),\n currentStage: z.string().nullable(),\n activePlayers: z.array(PlayerIdSchema),\n simultaneousPhase: SimultaneousPhaseSnapshotSchema.nullable()\n }).strict(),\n availableInteractions: z.array(InteractionDescriptorSchema),\n guidance: GameGuidanceProjectionSchema.nullable().optional(),\n recentEvents: z.array(ProjectedGameEventSchema),\n zones: z.record(z.string(), ZoneHandlesSnapshotSchema)\n}).strict();\nvar ValidationResultSchema = z.object({\n valid: z.boolean(),\n errorCode: z.string().optional(),\n message: z.string().optional()\n}).strict();\nvar SubmissionResultSchema = z.discriminatedUnion(\"accepted\", [\n z.object({ accepted: z.literal(true) }).strict(),\n z.object({\n accepted: z.literal(false),\n errorCode: z.string().min(1),\n message: z.string().optional()\n }).strict()\n]);\nvar PluginInteractionBasisSchema = z.object({\n gameVersion: z.number().int().nonnegative(),\n actionSetVersion: z.string().min(1),\n perspectivePlayerId: PlayerIdSchema.nullable()\n}).strict();\nvar ValidateInteractionCommandSchema = z.object({\n type: z.literal(\"interaction.validate\"),\n requestId: z.string().min(1),\n basis: PluginInteractionBasisSchema,\n interactionId: z.string().min(1),\n params: RuntimeJsonSchema\n}).strict();\nvar SubmitInteractionCommandSchema = z.object({\n type: z.literal(\"interaction.submit\"),\n requestId: z.string().min(1),\n basis: PluginInteractionBasisSchema,\n interactionId: z.string().min(1),\n params: RuntimeJsonSchema\n}).strict();\nvar HostToPluginPayloadSchema = z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"runtime.init\"),\n session: PluginSessionDescriptorSchema\n }).strict(),\n z.object({\n type: z.literal(\"gameplay.frame\"),\n frame: PluginGameplayFrameSchema\n }).strict(),\n z.object({\n type: z.literal(\"interaction.validation-result\"),\n requestId: z.string().min(1),\n result: ValidationResultSchema\n }).strict(),\n z.object({\n type: z.literal(\"interaction.submit-result\"),\n requestId: z.string().min(1),\n result: SubmissionResultSchema\n }).strict()\n]);\nvar PluginToHostPayloadSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"runtime.ready\") }).strict(),\n z.object({\n type: z.literal(\"runtime.ack\"),\n sequence: z.number().int().nonnegative(),\n clientReceivedAtMs: z.number().finite().optional(),\n clientRenderedAtMs: z.number().finite().optional()\n }).strict(),\n ValidateInteractionCommandSchema,\n SubmitInteractionCommandSchema,\n z.object({\n type: z.literal(\"runtime.error\"),\n message: z.string(),\n code: z.string().optional()\n }).strict()\n]);\nfunction createPluginProtocolEnvelopeSchema(payloadSchema) {\n return z.object({\n protocol: z.literal(DREAMBOARD_PLUGIN_PROTOCOL),\n version: z.literal(DREAMBOARD_PLUGIN_PROTOCOL_VERSION),\n channelId: z.string().min(1),\n sequence: z.number().int().nonnegative(),\n payload: payloadSchema\n }).strict();\n}\nvar HostToPluginEnvelopeSchema = createPluginProtocolEnvelopeSchema(\n HostToPluginPayloadSchema\n);\nvar PluginToHostEnvelopeSchema = createPluginProtocolEnvelopeSchema(\n PluginToHostPayloadSchema\n);\nvar PluginProtocolFrameSchema = z.object({\n id: z.string().min(1),\n frame: PluginGameplayFrameSchema,\n projectionDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/)\n}).strict();\nvar PluginProtocolStepSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n id: z.string().min(1),\n kind: z.literal(\"host.frame\"),\n frameId: z.string().min(1)\n }).strict(),\n z.object({\n id: z.string().min(1),\n kind: z.literal(\"client.validate\"),\n fromFrameId: z.string().min(1),\n requestDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n response: ValidationResultSchema\n }).strict(),\n z.object({\n id: z.string().min(1),\n kind: z.literal(\"client.submit\"),\n fromFrameId: z.string().min(1),\n requestDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n response: SubmissionResultSchema\n }).strict()\n]);\nvar PluginProtocolTapeSchema = z.object({\n session: PluginSessionDescriptorSchema,\n frames: z.array(PluginProtocolFrameSchema),\n steps: z.array(PluginProtocolStepSchema)\n}).strict();\nfunction parsePluginSessionDescriptor(value) {\n return PluginSessionDescriptorSchema.parse(value);\n}\nfunction parsePluginGameplayFrame(value) {\n return PluginGameplayFrameSchema.parse(value);\n}\nfunction parseHostToPluginEnvelope(value) {\n return HostToPluginEnvelopeSchema.parse(value);\n}\nfunction parsePluginToHostEnvelope(value) {\n return PluginToHostEnvelopeSchema.parse(value);\n}\n\nexport {\n DREAMBOARD_PLUGIN_PROTOCOL,\n DREAMBOARD_PLUGIN_PROTOCOL_VERSION,\n RuntimeJsonSchema,\n BoardStaticProjectionSchema,\n SetupGuidanceStepSchema,\n GameGuidanceProjectionSchema,\n GameEventDetailSchema,\n SystemActionEventSchema,\n GameEventSchema,\n ProjectedGameEventSchema,\n SeatProjectionBundleSchema,\n PlayerIdSchema,\n PluginPlayerSummarySchema,\n PluginSessionDescriptorSchema,\n InteractionCommitPolicySchema,\n InputSelectionSchema,\n InputDomainDependenciesSchema,\n InputDomainSchema,\n InteractionChoiceOptionSchema,\n InteractionInputDescriptorSchema,\n InteractionAvailabilitySchema,\n InteractionContextSchema,\n InteractionDescriptorSchema,\n ZoneHandlesSnapshotSchema,\n SimultaneousPhaseSnapshotSchema,\n PluginGameplayFrameSchema,\n ValidationResultSchema,\n SubmissionResultSchema,\n PluginInteractionBasisSchema,\n ValidateInteractionCommandSchema,\n SubmitInteractionCommandSchema,\n HostToPluginPayloadSchema,\n PluginToHostPayloadSchema,\n createPluginProtocolEnvelopeSchema,\n HostToPluginEnvelopeSchema,\n PluginToHostEnvelopeSchema,\n PluginProtocolFrameSchema,\n PluginProtocolStepSchema,\n PluginProtocolTapeSchema,\n parsePluginSessionDescriptor,\n parsePluginGameplayFrame,\n parseHostToPluginEnvelope,\n parsePluginToHostEnvelope\n};\n","import {\n canonicalizePluginRuntimeJson,\n computePluginActionSetVersion,\n digestPluginCommandRequest,\n digestPluginGameplayFrame,\n digestPluginRuntimeJson,\n encodeCanonicalPluginRuntimeJson\n} from \"./chunk-GX5V4QL7.js\";\nimport {\n BoardStaticProjectionSchema,\n DREAMBOARD_PLUGIN_PROTOCOL,\n DREAMBOARD_PLUGIN_PROTOCOL_VERSION,\n GameEventDetailSchema,\n GameEventSchema,\n HostToPluginEnvelopeSchema,\n HostToPluginPayloadSchema,\n InputDomainDependenciesSchema,\n InputDomainSchema,\n InteractionAvailabilitySchema,\n InteractionCommitPolicySchema,\n InteractionContextSchema,\n InteractionDescriptorSchema,\n InteractionInputDescriptorSchema,\n PluginGameplayFrameSchema,\n PluginInteractionBasisSchema,\n PluginPlayerSummarySchema,\n PluginProtocolFrameSchema,\n PluginProtocolStepSchema,\n PluginProtocolTapeSchema,\n PluginSessionDescriptorSchema,\n PluginToHostEnvelopeSchema,\n PluginToHostPayloadSchema,\n ProjectedGameEventSchema,\n RuntimeJsonSchema,\n SeatProjectionBundleSchema,\n SimultaneousPhaseSnapshotSchema,\n SubmissionResultSchema,\n SubmitInteractionCommandSchema,\n SystemActionEventSchema,\n ValidateInteractionCommandSchema,\n ValidationResultSchema,\n ZoneHandlesSnapshotSchema,\n createPluginProtocolEnvelopeSchema,\n parseHostToPluginEnvelope,\n parsePluginGameplayFrame,\n parsePluginSessionDescriptor,\n parsePluginToHostEnvelope\n} from \"./chunk-E4Y6SAWF.js\";\n\n// src/projection.ts\nfunction materializePluginGameplayFrame(input) {\n const dynamicProjection = SeatProjectionBundleSchema.parse(\n canonicalizeReducerProjection(input.dynamicProjection)\n );\n const staticProjection = input.staticProjection == null ? null : BoardStaticProjectionSchema.parse(\n canonicalizeReducerProjection(input.staticProjection)\n );\n const registry = parseInteractionRegistry(\n dynamicProjection.interactionsByRef\n );\n const seat = input.perspectivePlayerId == null ? null : dynamicProjection.seats[input.perspectivePlayerId] ?? null;\n const availableInteractions = seat == null ? [] : hydrateInteractionRefs(\n registry,\n seat.availableInteractionRefs,\n \"availableInteractionRefs\"\n );\n const zones = seat?.zones == null ? {} : hydrateZones(registry, seat.zones, \"zones\");\n const frame = {\n gameVersion: input.gameVersion,\n actionSetVersion: input.actionSetVersion,\n perspectivePlayerId: input.perspectivePlayerId,\n view: composeProjectionView(staticProjection, seat?.view),\n flow: {\n currentPhase: input.currentPhase,\n currentStage: dynamicProjection.currentStage ?? null,\n activePlayers: [...input.activePlayers],\n simultaneousPhase: dynamicProjection.simultaneousPhase ?? null\n },\n availableInteractions,\n guidance: dynamicProjection.guidance ?? null,\n recentEvents: [...dynamicProjection.recentEvents ?? []],\n zones\n };\n return PluginGameplayFrameSchema.parse(frame);\n}\nfunction canonicalizeReducerProjection(value) {\n return canonicalizePluginRuntimeJson(value);\n}\nfunction parseInteractionRegistry(value) {\n if (value == null) return {};\n if (!isRecord(value)) {\n throw new Error(\"Seat projection interactionsByRef must be an object.\");\n }\n return Object.fromEntries(\n Object.entries(value).map(([ref, descriptor]) => [\n ref,\n InteractionDescriptorSchema.parse(descriptor)\n ])\n );\n}\nfunction hydrateZones(registry, value, path) {\n if (!isRecord(value)) {\n throw new Error(`Seat projection ${path} must be an object.`);\n }\n return Object.fromEntries(\n Object.entries(value).map(([zoneId, zoneValue]) => [\n zoneId,\n hydrateZone(registry, zoneValue, `${path}.${zoneId}`)\n ])\n );\n}\nfunction hydrateZone(registry, value, path) {\n if (!isRecord(value)) {\n throw new Error(`Seat projection ${path} must be an object.`);\n }\n const cardIds = arrayOfStrings(value.cardIds, `${path}.cardIds`);\n const cardViewsById = stringRecord(\n value.cardViewsById,\n `${path}.cardViewsById`\n );\n if (!isRecord(value.playableByCardId)) {\n throw new Error(\n `Seat projection ${path}.playableByCardId must be an object.`\n );\n }\n const playableByCardId = Object.fromEntries(\n Object.entries(value.playableByCardId).map(([cardId, refs]) => [\n cardId,\n hydrateInteractionRefs(\n registry,\n refs,\n `${path}.playableByCardId.${cardId}`\n )\n ])\n );\n return ZoneHandlesSnapshotSchema.parse({\n cardIds,\n cardViewsById,\n playableByCardId\n });\n}\nfunction hydrateInteractionRefs(registry, value, path) {\n if (!Array.isArray(value)) {\n throw new Error(`Seat projection ${path} must be an array of refs.`);\n }\n return value.map((ref, index) => {\n if (typeof ref !== \"string\") {\n throw new Error(\n `Seat projection ${path}[${index}] must be a ref string.`\n );\n }\n const descriptor = registry[ref];\n if (!descriptor) {\n throw new Error(\n `Seat projection ${path}[${index}] references '${ref}', which is missing from interactionsByRef.`\n );\n }\n return descriptor;\n });\n}\nfunction composeProjectionView(staticProjection, dynamicView) {\n const normalizedDynamicView = dynamicView === void 0 ? null : dynamicView;\n if (staticProjection == null) {\n return normalizedDynamicView;\n }\n if (normalizedDynamicView == null) {\n return staticProjection.view;\n }\n if (isRecord(staticProjection.view) && isRecord(normalizedDynamicView)) {\n return {\n ...staticProjection.view,\n ...normalizedDynamicView\n };\n }\n return {\n static: staticProjection.view,\n dynamic: normalizedDynamicView\n };\n}\nfunction arrayOfStrings(value, path) {\n if (!Array.isArray(value) || value.some((item) => typeof item !== \"string\")) {\n throw new Error(`Seat projection ${path} must be an array of strings.`);\n }\n return value;\n}\nfunction stringRecord(value, path) {\n if (!isRecord(value)) {\n throw new Error(`Seat projection ${path} must be an object.`);\n }\n const result = {};\n for (const [key, item] of Object.entries(value)) {\n if (typeof item !== \"string\") {\n throw new Error(`Seat projection ${path}.${key} must be a string.`);\n }\n result[key] = item;\n }\n return result;\n}\nfunction isRecord(value) {\n return value !== null && typeof value === \"object\" && !Array.isArray(value) && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);\n}\nexport {\n BoardStaticProjectionSchema,\n DREAMBOARD_PLUGIN_PROTOCOL,\n DREAMBOARD_PLUGIN_PROTOCOL_VERSION,\n GameEventDetailSchema,\n GameEventSchema,\n HostToPluginEnvelopeSchema,\n HostToPluginPayloadSchema,\n InputDomainDependenciesSchema,\n InputDomainSchema,\n InteractionAvailabilitySchema,\n InteractionCommitPolicySchema,\n InteractionContextSchema,\n InteractionDescriptorSchema,\n InteractionInputDescriptorSchema,\n PluginGameplayFrameSchema,\n PluginInteractionBasisSchema,\n PluginPlayerSummarySchema,\n PluginProtocolFrameSchema,\n PluginProtocolStepSchema,\n PluginProtocolTapeSchema,\n PluginSessionDescriptorSchema,\n PluginToHostEnvelopeSchema,\n PluginToHostPayloadSchema,\n ProjectedGameEventSchema,\n RuntimeJsonSchema,\n SeatProjectionBundleSchema,\n SimultaneousPhaseSnapshotSchema,\n SubmissionResultSchema,\n SubmitInteractionCommandSchema,\n SystemActionEventSchema,\n ValidateInteractionCommandSchema,\n ValidationResultSchema,\n ZoneHandlesSnapshotSchema,\n canonicalizePluginRuntimeJson,\n computePluginActionSetVersion,\n createPluginProtocolEnvelopeSchema,\n digestPluginCommandRequest,\n digestPluginGameplayFrame,\n digestPluginRuntimeJson,\n encodeCanonicalPluginRuntimeJson,\n materializePluginGameplayFrame,\n parseHostToPluginEnvelope,\n parsePluginGameplayFrame,\n parsePluginSessionDescriptor,\n parsePluginToHostEnvelope\n};\n"],"mappings":"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","names":[]}
@@ -2872,4 +2872,4 @@ export {
2872
2872
  collectReducerDefinitionIndex,
2873
2873
  applySetupBootstrap
2874
2874
  };
2875
- //# sourceMappingURL=chunk-N6ZDIMRB.js.map
2875
+ //# sourceMappingURL=chunk-B2YBS3SG.js.map