@dreamboard-games/sdk 0.5.0-alpha.7 → 0.5.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-K75F5UIJ.js → chunk-4H4TAIV7.js} +7 -5
- package/dist/chunk-4H4TAIV7.js.map +1 -0
- package/dist/{chunk-UESVBUPU.js → chunk-DE4LWN42.js} +19 -19
- package/dist/chunk-DE4LWN42.js.map +1 -0
- package/dist/{chunk-3JXUL4VN.js → chunk-DPRHGA2C.js} +2 -2
- package/dist/chunk-DPRHGA2C.js.map +1 -0
- package/dist/{chunk-HZPKKBEG.js → chunk-EQ4BAJSB.js} +2 -2
- package/dist/{chunk-N37D7NPB.js → chunk-GZVYEVXY.js} +5 -5
- package/dist/chunk-GZVYEVXY.js.map +1 -0
- package/dist/{diagnostics-9gJgI85c.d.ts → diagnostics-Cg5NZ7NZ.d.ts} +1 -1
- package/dist/{extract-Bjuw_gdF.d.ts → extract-CoLo4qhk.d.ts} +75 -74
- package/dist/index.d.ts +7 -7
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/{model-D2Z9j0Yi.d.ts → model-Cvfxwq2n.d.ts} +2 -2
- package/dist/react.d.ts +9 -5
- package/dist/react.js +12 -6
- package/dist/react.js.map +1 -1
- package/dist/reducer.d.ts +15 -14
- package/dist/reducer.js +15 -15
- package/dist/reducer.js.map +1 -1
- package/dist/testing.d.ts +3 -3
- package/dist/testing.js +8 -8
- package/dist/testing.js.map +1 -1
- package/dist/{types-B3kIhBWb.d.ts → types-DPamTmUF.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-3JXUL4VN.js.map +0 -1
- package/dist/chunk-K75F5UIJ.js.map +0 -1
- package/dist/chunk-N37D7NPB.js.map +0 -1
- package/dist/chunk-UESVBUPU.js.map +0 -1
- /package/dist/{chunk-HZPKKBEG.js.map → chunk-EQ4BAJSB.js.map} +0 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PlayerBoardSpaceTargetSchema,
|
|
3
3
|
__export
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DPRHGA2C.js";
|
|
5
5
|
|
|
6
6
|
// src/shared/runtime-json.ts
|
|
7
|
-
import
|
|
7
|
+
import * as z from "zod";
|
|
8
|
+
import { en } from "zod/locales";
|
|
9
|
+
z.config(en());
|
|
8
10
|
var RuntimeJsonSchema = z.json();
|
|
9
11
|
|
|
10
12
|
// src/shared/interaction-schema.ts
|
|
11
|
-
import
|
|
13
|
+
import * as z2 from "zod";
|
|
12
14
|
var InteractionCommitPolicySchema = z2.discriminatedUnion("mode", [
|
|
13
15
|
z2.object({ mode: z2.literal("manual") }).strict(),
|
|
14
16
|
z2.object({ mode: z2.literal("autoWhenReady") }).strict()
|
|
@@ -210,7 +212,7 @@ __export(runtime_schema_exports, {
|
|
|
210
212
|
SystemActionEventSchema: () => SystemActionEventSchema,
|
|
211
213
|
TransitionRecordSchema: () => TransitionRecordSchema
|
|
212
214
|
});
|
|
213
|
-
import
|
|
215
|
+
import * as z3 from "zod";
|
|
214
216
|
var ReducerContractVersionSchema = z3.string().regex(new RegExp("^[0-9]+\\.[0-9]+\\.[0-9]+$"));
|
|
215
217
|
var RngOperationParameterSchema = z3.union([
|
|
216
218
|
z3.string(),
|
|
@@ -845,4 +847,4 @@ export {
|
|
|
845
847
|
encodeCanonicalPluginRuntimeJson,
|
|
846
848
|
digestPluginRuntimeJson
|
|
847
849
|
};
|
|
848
|
-
//# sourceMappingURL=chunk-
|
|
850
|
+
//# sourceMappingURL=chunk-4H4TAIV7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shared/runtime-json.ts","../src/shared/interaction-schema.ts","../src/shared/runtime-schema.ts","../src/shared/hex-board.ts","../src/shared/protocol/json.ts"],"sourcesContent":["import * as z from \"zod\";\nimport { en } from \"zod/locales\";\n\n// Preserve English errors without retaining Zod's complete locale namespace.\nz.config(en());\n\n/** JSON values shared by protocol and game-owned runtime state. */\nexport const RuntimeJsonSchema = z.json();\nexport type RuntimeJson = z.infer<typeof RuntimeJsonSchema>;\n","import * as z from \"zod\";\nimport { PlayerBoardSpaceTargetSchema } from \"./board-target.js\";\nimport { RuntimeJsonSchema } from \"./runtime-json.js\";\n\nexport const InteractionCommitPolicySchema = z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"manual\") }).strict(),\n z.object({ mode: z.literal(\"autoWhenReady\") }).strict(),\n]);\n\nexport const InputSelectionSchema = z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"single\") }).strict(),\n z\n .object({\n mode: z.literal(\"many\"),\n min: z.number().int(),\n max: z.number().int().optional(),\n distinct: z.boolean().optional(),\n })\n .strict(),\n]);\n\nexport const InteractionChoiceOptionSchema = z\n .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 })\n .strict();\n\nconst selection = { selection: InputSelectionSchema.optional() };\nexport const InputDomainSchema = z.discriminatedUnion(\"type\", [\n z.strictObject({\n type: z.literal(\"cardTarget\"),\n projection: z.literal(\"resolved\"),\n targetKind: z.literal(\"card\"),\n zoneIds: z.array(z.string()),\n eligibleTargets: z.array(z.string()),\n ...selection,\n }),\n z.discriminatedUnion(\"valueKind\", [\n z.strictObject({\n type: z.literal(\"boardTarget\"),\n projection: z.literal(\"resolved\"),\n targetKind: z.enum([\"edge\", \"vertex\", \"space\", \"tile\"]),\n boardId: z.string(),\n valueKind: z.literal(\"board-id\"),\n eligibleTargets: z.array(z.string()),\n ...selection,\n }),\n z.strictObject({\n type: z.literal(\"boardTarget\"),\n projection: z.literal(\"resolved\"),\n targetKind: z.literal(\"space\"),\n boardId: z.string(),\n valueKind: z.literal(\"player-board-space\"),\n eligibleTargets: z.array(PlayerBoardSpaceTargetSchema),\n ...selection,\n }),\n ]),\n z.strictObject({\n type: z.literal(\"resourceMap\"),\n resources: z.array(\n z.strictObject({\n resourceId: z.string(),\n label: z.string().optional(),\n icon: z.string().optional(),\n min: z.number(),\n max: z.number(),\n }),\n ),\n ...selection,\n }),\n z.strictObject({\n type: z.literal(\"boundedNumber\"),\n min: z.number(),\n max: z.number(),\n step: z.number().optional(),\n ...selection,\n }),\n z.strictObject({\n type: z.literal(\"choice\"),\n choices: z.array(InteractionChoiceOptionSchema),\n ...selection,\n }),\n z.strictObject({\n type: z.literal(\"choiceList\"),\n choices: z.array(\n InteractionChoiceOptionSchema.extend({ value: z.string() }),\n ),\n min: z.number().int().optional(),\n max: z.number().int().optional(),\n ...selection,\n }),\n]);\n\nexport const InteractionInputDescriptorSchema = z\n .object({\n key: z.string().min(1),\n kind: z.enum([\n \"form\",\n \"board-vertex\",\n \"board-edge\",\n \"board-tile\",\n \"board-space\",\n \"card\",\n \"rng\",\n ]),\n domain: InputDomainSchema,\n defaultValue: RuntimeJsonSchema.optional(),\n })\n .strict();\n\nexport const 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\n .object({\n status: z.literal(\"blocked\"),\n reason: z.string(),\n code: z.string().optional(),\n })\n .strict(),\n]);\n\nconst InteractionBaseSchema = z\n .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 step: z\n .object({\n index: z.number().int().nonnegative(),\n total: z.number().int().positive(),\n selected: z.record(z.string(), RuntimeJsonSchema),\n canCancel: z.boolean(),\n })\n .strict()\n .optional(),\n availability: InteractionAvailabilitySchema,\n reasons: z\n .array(\n z\n .object({\n ruleId: z.string(),\n errorCode: z.string(),\n })\n .strict(),\n )\n .optional(),\n })\n .strict();\n\nexport const InteractionDescriptorSchema = InteractionBaseSchema.extend({\n kind: z.literal(\"action\"),\n}).strict();\n\nexport const ZoneInteractionRefsSchema = z.strictObject({\n cardIds: z.array(z.string()),\n cardViewsById: z.record(z.string(), z.string()),\n cardBacksById: z.record(z.string(), z.string()),\n playableByCardId: z.record(z.string(), z.array(z.string())),\n});\n\ntype DeepReadonly<T> = T extends readonly (infer Item)[]\n ? readonly DeepReadonly<Item>[]\n : T extends object\n ? { readonly [K in keyof T]: DeepReadonly<T[K]> }\n : T;\nexport type InputDomain = DeepReadonly<z.infer<typeof InputDomainSchema>>;\nexport type InputSelection = DeepReadonly<z.infer<typeof InputSelectionSchema>>;\nexport type InteractionCommitPolicy = z.infer<\n typeof InteractionCommitPolicySchema\n>;\nexport type InteractionChoiceOption = DeepReadonly<\n z.infer<typeof InteractionChoiceOptionSchema>\n>;\nexport type InteractionInputDescriptor = Readonly<\n Omit<z.infer<typeof InteractionInputDescriptorSchema>, \"domain\">\n> & { readonly domain: InputDomain };\nexport type InteractionAvailability = DeepReadonly<\n z.infer<typeof InteractionAvailabilitySchema>\n>;\ntype DescriptorData = z.infer<typeof InteractionDescriptorSchema>;\nexport type InteractionDescriptor = Readonly<\n Omit<DescriptorData, \"inputs\" | \"step\" | \"zoneIds\" | \"reasons\">\n> & {\n readonly inputs: readonly InteractionInputDescriptor[];\n readonly zoneIds?: readonly string[];\n readonly reasons?: readonly Readonly<\n NonNullable<DescriptorData[\"reasons\"]>[number]\n >[];\n readonly step?: Readonly<\n Omit<NonNullable<DescriptorData[\"step\"]>, \"selected\">\n > & {\n readonly selected: Readonly<\n NonNullable<DescriptorData[\"step\"]>[\"selected\"]\n >;\n };\n};\nexport type InteractionDiagnosticReason = NonNullable<\n InteractionDescriptor[\"reasons\"]\n>[number];\nexport type ZoneInteractionRefs = DeepReadonly<\n z.infer<typeof ZoneInteractionRefsSchema>\n>;\n","import {\n InteractionDescriptorSchema,\n ZoneInteractionRefsSchema,\n} from \"./interaction-schema\";\nimport * as z from \"zod\";\nimport { RuntimeJsonSchema } from \"./runtime-json.js\";\n\n// Canonical wire schemas: no coercion, defaults, or game-authored refinements.\n// Intentional hard cut: session meta.contractFingerprint is no longer admitted.\nexport const ReducerContractVersionSchema = z\n .string()\n .regex(new RegExp(\"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+$\"));\n\nexport const RngOperationParameterSchema = z.union([\n z.string(),\n z.number().finite(),\n z.boolean(),\n]);\n\nexport const RngOperationSchema = z.strictObject({\n kind: z.string().min(1),\n parameters: z.record(z.string(), RngOperationParameterSchema),\n});\n\nexport const RngDrawSchema = z.strictObject({\n index: z.number().int().gte(0),\n cursorBefore: z.number().int().gte(0),\n cursorAfter: z.number().int().gte(0),\n operation: RngOperationSchema,\n});\n\nexport const RngStateSchema = z.strictObject({\n seed: z.union([\n z.number().refine(Number.isInteger, { message: \"Expected integer\" }),\n z.null(),\n ]),\n cursor: z.number().int(),\n trace: z.array(z.string()),\n draws: z.array(RngDrawSchema).optional(),\n});\n\nexport const ReducerFlowStateSchema = z.strictObject({\n currentPhase: z.string().min(1),\n turn: z.number().int(),\n round: z.number().int(),\n activePlayers: z.array(z.string().min(1)),\n});\n\nexport const RuntimeSimultaneousSubmissionSchema = z.strictObject({\n interactionId: z.string().min(1),\n params: RuntimeJsonSchema,\n});\n\nexport const RuntimeSimultaneousCurrentSchema = z.strictObject({\n phaseName: z.string().min(1),\n actors: z.array(z.string().min(1)),\n submissions: z.record(z.string(), RuntimeSimultaneousSubmissionSchema),\n});\n\nexport const RuntimeSimultaneousStateSchema = z.strictObject({\n current: z.union([RuntimeSimultaneousCurrentSchema, z.null()]),\n});\n\nexport const TransitionRecordSchema = z.strictObject({\n from: z.string().min(1),\n to: z.string().min(1),\n});\n\nexport const RuntimePendingInteractionSchema = z.strictObject({\n phaseName: z.string().min(1),\n interactionId: z.string().min(1),\n values: z.array(RuntimeJsonSchema).min(1),\n});\n\nexport const GameEventDetailSchema = z.strictObject({\n label: z.string().min(1),\n value: z.union([z.string(), z.number().finite(), z.boolean()]),\n});\n\nexport const SystemActionEventSchema = z.strictObject({\n kind: z.literal(\"systemAction\"),\n procedureId: z.string().min(1),\n title: z.string().min(1),\n summary: z.string().min(1).optional(),\n details: z.array(GameEventDetailSchema).max(16).optional(),\n});\n\nexport const GameEventSchema = z.discriminatedUnion(\"kind\", [\n SystemActionEventSchema,\n]);\n\nexport const ReducerRuntimeStateSchema = z.strictObject({\n events: z.array(GameEventSchema).max(32),\n rng: RngStateSchema,\n pending: z.record(z.string(), RuntimePendingInteractionSchema),\n simultaneous: RuntimeSimultaneousStateSchema,\n lastTransition: z.union([TransitionRecordSchema, z.null()]),\n options: z.record(z.string(), RuntimeJsonSchema),\n});\n\nexport const ReducerDomainStateSchema = z.strictObject({\n table: RuntimeJsonSchema,\n publicState: RuntimeJsonSchema,\n privateState: z.record(z.string(), RuntimeJsonSchema),\n hiddenState: RuntimeJsonSchema,\n flow: ReducerFlowStateSchema,\n phase: RuntimeJsonSchema,\n});\n\nexport const ReducerSessionStateSchema = z.strictObject({\n domain: ReducerDomainStateSchema,\n runtime: ReducerRuntimeStateSchema,\n});\n\nexport const GameInputInteractionSchema = z.strictObject({\n kind: z.literal(\"interaction\"),\n playerId: z.string().min(1),\n interactionId: z.string().min(1),\n params: RuntimeJsonSchema,\n});\n\nexport const GameInputCancelSchema = z.strictObject({\n kind: z.literal(\"interaction.cancel\"),\n playerId: z.string().min(1),\n interactionId: z.string().min(1),\n});\n\nexport const GameInputSchema = z.discriminatedUnion(\"kind\", [\n GameInputInteractionSchema,\n GameInputCancelSchema,\n]);\n\nexport const GameOutcomeReasonSchema = z.strictObject({\n code: z.string().min(1),\n message: z.string().min(1).optional(),\n});\n\nexport const OutcomeResultSchema = z.enum([\n \"win\",\n \"draw\",\n \"loss\",\n \"eliminated\",\n]);\n\nexport const OutcomeScoreComponentSchema = z.strictObject({\n id: z.string().min(1),\n label: z.string().min(1),\n value: z.number().finite(),\n});\n\nexport const OutcomeTieBreakSchema = z.strictObject({\n id: z.string().min(1),\n label: z.string().min(1),\n value: z.union([z.number().finite(), z.string()]),\n});\n\nexport const OutcomeStandingSchema = z.strictObject({\n playerId: z.string().min(1),\n rank: z.number().int().gte(1),\n result: OutcomeResultSchema,\n score: z.number().finite().optional(),\n scoreBreakdown: z.array(OutcomeScoreComponentSchema).optional(),\n tieBreaks: z.array(OutcomeTieBreakSchema).optional(),\n});\n\nexport const GameOutcomeSchema = z.strictObject({\n reason: GameOutcomeReasonSchema,\n standings: z.array(OutcomeStandingSchema).min(1),\n});\n\nexport const InitializeResultSchema = z.strictObject({\n state: ReducerSessionStateSchema,\n terminal: GameOutcomeSchema.optional(),\n events: z.array(GameEventSchema).optional(),\n});\n\nexport const InitializeRequestSchema = z.strictObject({\n table: RuntimeJsonSchema,\n playerIds: z.array(z.string().min(1)),\n rngSeed: z\n .union([\n z.number().refine(Number.isInteger, { message: \"Expected integer\" }),\n z.null(),\n ])\n .optional(),\n options: z.record(z.string(), RuntimeJsonSchema).optional(),\n});\n\nexport const DispatchRequestSchema = z.strictObject({\n state: ReducerSessionStateSchema,\n input: GameInputSchema,\n});\n\nexport const DispatchTraceAcceptedClientInputSchema = z.strictObject({\n kind: z.literal(\"acceptedClientInput\"),\n input: GameInputSchema,\n});\n\nexport const DispatchTracePhaseEnteredSchema = z.strictObject({\n kind: z.literal(\"phaseEntered\"),\n from: z.string(),\n to: z.string(),\n});\n\nexport const DispatchTraceRngConsumptionSchema = z.strictObject({\n kind: z.literal(\"rngConsumption\"),\n version: z.literal(2),\n operation: z.string().min(1),\n drawIndex: z.number().int().gte(0),\n traceEntry: z.string(),\n});\n\nexport const DispatchTraceSchema = z.discriminatedUnion(\"kind\", [\n DispatchTraceAcceptedClientInputSchema,\n DispatchTracePhaseEnteredSchema,\n DispatchTraceRngConsumptionSchema,\n]);\n\nexport const DispatchResultRejectSchema = z.strictObject({\n kind: z.literal(\"reject\"),\n errorCode: z.string().min(1),\n message: z.string().optional(),\n});\n\nexport const DispatchResultAcceptSchema = z.strictObject({\n kind: z.literal(\"accept\"),\n state: ReducerSessionStateSchema,\n terminal: GameOutcomeSchema.optional(),\n trace: z.array(DispatchTraceSchema),\n events: z.array(GameEventSchema).max(32),\n});\n\nexport const DispatchResultSchema = z.discriminatedUnion(\"kind\", [\n DispatchResultRejectSchema,\n DispatchResultAcceptSchema,\n]);\n\nexport const ReducerRuntimeLogEntryAcceptedClientInputSchema = z.strictObject({\n kind: z.literal(\"acceptedClientInput\"),\n version: z.number().int(),\n input: GameInputSchema,\n});\n\nexport const ReducerRuntimeLogEntryPhaseEnteredSchema = z.strictObject({\n kind: z.literal(\"phaseEntered\"),\n from: z.string(),\n to: z.string(),\n version: z.number().int(),\n});\n\nexport const ReducerRuntimeLogEntryRngConsumptionSchema = z.strictObject({\n kind: z.literal(\"rngConsumption\"),\n version: z.number().int(),\n operation: z.string().min(1),\n drawIndex: z.number().int().gte(0).optional(),\n traceEntry: z.string(),\n});\n\nexport const ReducerRuntimeLogEntryStateCommitSchema = z.strictObject({\n kind: z.literal(\"stateCommit\"),\n version: z.number().int(),\n state: ReducerSessionStateSchema,\n});\n\nexport const ReducerRuntimeLogEntrySchema = z.discriminatedUnion(\"kind\", [\n ReducerRuntimeLogEntryAcceptedClientInputSchema,\n ReducerRuntimeLogEntryPhaseEnteredSchema,\n ReducerRuntimeLogEntryRngConsumptionSchema,\n ReducerRuntimeLogEntryStateCommitSchema,\n]);\n\n/** Authored views are records; boards is reserved for manifest geometry. */\nexport const AuthoredViewSchema = z\n .object({\n boards: z\n .never({\n error: \"The view field 'boards' is reserved for manifest geometry.\",\n })\n .optional(),\n })\n .catchall(RuntimeJsonSchema);\n\nexport const SeatProjectionSchema = z.strictObject({\n view: AuthoredViewSchema.nullable().optional(),\n availableInteractionRefs: z.array(z.string()).optional(),\n zones: z.record(z.string(), ZoneInteractionRefsSchema).optional(),\n /** Resource balances by player that this seat may see. */\n resources: z\n .record(z.string(), z.record(z.string(), z.number().int()))\n .optional(),\n});\n\nexport const SimultaneousPhaseProjectionSchema = z.strictObject({\n phaseName: z.string().min(1),\n interactionId: z.string().min(1),\n actorIds: z.array(z.string().min(1)),\n sealedPlayerIds: z.array(z.string().min(1)),\n pendingPlayerIds: z.array(z.string().min(1)),\n});\n\nexport const SchedulerContinuationDependencySchema = z.strictObject({\n waiterPlayerId: z.string().min(1),\n blockerPlayerIds: z.array(z.string().min(1)),\n});\n\nexport const SchedulerFlowAuthorityProjectionSchema = z.strictObject({\n version: z.literal(1),\n activePlayerIds: z.array(z.string().min(1)),\n pendingPlayerIds: z.array(z.string().min(1)),\n continuationDependencies: z.array(SchedulerContinuationDependencySchema),\n});\n\nexport const ProjectionTimingMetadataSchema = z.strictObject({\n resolveAvailableInteractionsMs: z.number().finite().gte(0),\n resolveViewMs: z.number().finite().gte(0),\n resolveZoneHandlesMs: z.number().finite().gte(0),\n descriptorHashMs: z.number().finite().gte(0),\n});\n\nexport const SeatProjectionBundleSchema = z.strictObject({\n events: z.array(GameEventSchema).max(32),\n simultaneousPhase: z\n .union([SimultaneousPhaseProjectionSchema, z.null()])\n .optional(),\n schedulerFlow: SchedulerFlowAuthorityProjectionSchema.optional(),\n interactionsByRef: z\n .record(z.string(), InteractionDescriptorSchema)\n .optional(),\n seats: z.record(z.string(), SeatProjectionSchema),\n timing: ProjectionTimingMetadataSchema.optional(),\n});\n\nexport const ProjectRequestSchema = z.strictObject({\n state: ReducerSessionStateSchema,\n playerIds: z.array(z.string().min(1)),\n});\n\nexport const BoardStaticProjectionSchema = z.strictObject({\n view: z.record(z.string(), RuntimeJsonSchema),\n hash: z.string().min(1),\n manifestVersion: z.string(),\n});\n","import type { HexEdgeId, HexVertexId } from \"./domain/board-identities.js\";\nimport type {\n HexShape,\n HexCoordinate,\n HexOrientation,\n} from \"./domain/contracts.js\";\nimport {\n defineHex,\n Grid,\n Orientation,\n fromCoordinates as coordinatesTraversal,\n rectangle as rectangleTraversal,\n ring as ringTraversal,\n spiral as spiralTraversal,\n line as lineTraversal,\n type Point,\n} from \"honeycomb-grid\";\n\nexport type { HexShape } from \"./domain/contracts.js\";\nexport type AxialCoordinate = Readonly<HexCoordinate>;\nexport const hexagon = (\n options: Omit<Extract<HexShape, { kind: \"hexagon\" | \"spiral\" }>, \"kind\">,\n) => ({ kind: \"hexagon\" as const, ...options });\nexport const spiral = (\n options: Omit<Extract<HexShape, { kind: \"hexagon\" | \"spiral\" }>, \"kind\">,\n) => ({ kind: \"spiral\" as const, ...options });\nexport const ring = (\n options: Omit<Extract<HexShape, { kind: \"ring\" }>, \"kind\">,\n) => ({ kind: \"ring\" as const, ...options });\nexport const rectangle = (\n options: Omit<Extract<HexShape, { kind: \"rectangle\" }>, \"kind\">,\n) => ({ kind: \"rectangle\" as const, ...options });\nexport const fromCoordinates = <\n const Coordinates extends readonly AxialCoordinate[],\n>(\n coordinates: Coordinates,\n) => ({ kind: \"coordinates\" as const, coordinates });\n\nexport type HexBoardOrientation = HexOrientation;\nexport type HexBoardSpace<Id extends string = string> = AxialCoordinate & {\n id: Id;\n};\nconst coordinateKey = ({ q, r }: AxialCoordinate) => `${q},${r}`;\nconst pointKey = ({ x, y }: Point) =>\n `${Math.round(x * 1e9)},${Math.round(y * 1e9)}`;\nconst compare = (a: string, b: string) => (a < b ? -1 : a > b ? 1 : 0);\n\nfunction hexClass(orientation: HexBoardOrientation, dimensions = 1) {\n return defineHex({\n dimensions,\n orientation: orientation === \"flat\" ? Orientation.FLAT : Orientation.POINTY,\n origin: { x: 0, y: 0 },\n });\n}\n\n/** Generate axial coordinates with the library's traversers. Shapes remain JSON. */\nexport function hexShapeCoordinates(\n shape: HexShape,\n orientation: HexBoardOrientation = \"pointy\",\n): AxialCoordinate[] {\n const integer = (value: number, name: string, minimum: number) => {\n if (!Number.isSafeInteger(value) || value < minimum)\n throw new Error(`${name} must be a safe integer >= ${minimum}.`);\n };\n const coordinate = (value: AxialCoordinate) => {\n integer(value.q, \"q\", Number.MIN_SAFE_INTEGER);\n integer(value.r, \"r\", Number.MIN_SAFE_INTEGER);\n };\n if (shape.kind === \"coordinates\") {\n shape.coordinates.forEach(coordinate);\n if (\n new Set(shape.coordinates.map(coordinateKey)).size !==\n shape.coordinates.length\n )\n throw new Error(\"Hex shape contains duplicate coordinates.\");\n } else if (shape.kind === \"rectangle\") {\n integer(shape.width, \"width\", 1);\n integer(shape.height, \"height\", 1);\n if (shape.start) coordinate(shape.start);\n } else {\n integer(shape.radius, \"radius\", 0);\n if (shape.center) coordinate(shape.center);\n }\n const Tile = hexClass(orientation);\n const traversal =\n shape.kind === \"coordinates\"\n ? coordinatesTraversal(...shape.coordinates)\n : shape.kind === \"rectangle\"\n ? rectangleTraversal(shape)\n : shape.kind === \"ring\"\n ? ringTraversal({\n radius: shape.radius,\n center: shape.center ?? { q: 0, r: 0 },\n })\n : spiralTraversal({ radius: shape.radius, start: shape.center });\n return new Grid(Tile, traversal).toArray().map(({ q, r }) => ({ q, r }));\n}\n\nexport type HexTopologyEdge<BoardId extends string> = {\n id: HexEdgeId<BoardId>;\n spaceIds: string[];\n vertexIds: [HexVertexId<BoardId>, HexVertexId<BoardId>];\n};\nexport type HexTopologyVertex<BoardId extends string> = {\n id: HexVertexId<BoardId>;\n spaceIds: string[];\n edgeIds: HexEdgeId<BoardId>[];\n};\n\n/** One immutable topology for materialization, rules, layout, and hit testing. */\nexport function createHexBoardGeometry<\n const BoardId extends string,\n SpaceId extends string,\n>(board: {\n id: BoardId;\n orientation?: HexBoardOrientation;\n spaces: readonly HexBoardSpace<SpaceId>[];\n}) {\n const spaces = board.spaces\n .map(({ id, q, r }) => ({ id, q, r }))\n .sort((a, b) => compare(a.id, b.id));\n const orientation = board.orientation ?? \"pointy\";\n const grid = new Grid(hexClass(orientation), spaces);\n const spacesById = new Map(spaces.map((space) => [space.id, space]));\n if (spacesById.size !== spaces.length || grid.size !== spaces.length)\n throw new Error(\n `Hex board '${board.id}' contains duplicate space IDs or coordinates.`,\n );\n const spacesByCoordinate = new Map(\n spaces.map((space) => [coordinateKey(space), space]),\n );\n const cornerOwners = new Map<\n string,\n { point: Point; owners: { id: SpaceId; corner: number }[] }\n >();\n const edgeOwners = new Map<\n string,\n { corners: [string, string]; owners: { id: SpaceId; side: number }[] }\n >();\n const cornersBySpace = new Map<SpaceId, string[]>();\n const edgesBySpace = new Map<SpaceId, string[]>();\n for (const space of spaces) {\n const corners = grid.getHex(space)!.corners;\n const cornerKeys = corners.map(pointKey);\n cornersBySpace.set(space.id, cornerKeys);\n const edgeKeys: string[] = [];\n corners.forEach((point, corner) => {\n const key = cornerKeys[corner];\n const vertex = cornerOwners.get(key) ?? { point, owners: [] };\n vertex.owners.push({ id: space.id, corner });\n cornerOwners.set(key, vertex);\n const pair = [key, cornerKeys[(corner + 1) % 6]] as [string, string];\n const edgeKey = [...pair].sort(compare).join(\"|\");\n const edge = edgeOwners.get(edgeKey) ?? { corners: pair, owners: [] };\n edge.owners.push({ id: space.id, side: corner });\n edgeOwners.set(edgeKey, edge);\n edgeKeys.push(edgeKey);\n });\n edgesBySpace.set(space.id, edgeKeys);\n }\n // Boundary IDs include an owner's corner/side to distinguish multiple boundary\n // elements incident to the same set of spaces. Interior IDs use all owners.\n const vertexIds = new Map(\n [...cornerOwners].map(([key, vertex]) => {\n const owners = [...vertex.owners].sort((a, b) => compare(a.id, b.id));\n return [\n key,\n `${board.id}:vertex:${owners.map((owner) => encodeURIComponent(owner.id)).join(\"|\")}${owners.length < 3 ? `:${owners[0].corner}` : \"\"}` as HexVertexId<BoardId>,\n ];\n }),\n );\n const edgeIds = new Map(\n [...edgeOwners].map(([key, edge]) => {\n const owners = [...edge.owners].sort((a, b) => compare(a.id, b.id));\n return [\n key,\n `${board.id}:edge:${owners.map((owner) => encodeURIComponent(owner.id)).join(\"|\")}${owners.length === 1 ? `:${owners[0].side}` : \"\"}` as HexEdgeId<BoardId>,\n ];\n }),\n );\n const edges: HexTopologyEdge<BoardId>[] = [...edgeOwners]\n .map(([key, edge]) => ({\n id: edgeIds.get(key)!,\n spaceIds: edge.owners.map((owner) => owner.id).sort(compare),\n vertexIds: edge.corners\n .map((key) => vertexIds.get(key)!)\n .sort(compare) as [HexVertexId<BoardId>, HexVertexId<BoardId>],\n }))\n .sort((a, b) => compare(a.id, b.id));\n const vertices: HexTopologyVertex<BoardId>[] = [...cornerOwners]\n .map(([key, vertex]) => ({\n id: vertexIds.get(key)!,\n spaceIds: vertex.owners.map((owner) => owner.id).sort(compare),\n edgeIds: edges\n .filter((edge) => edge.vertexIds.includes(vertexIds.get(key)!))\n .map((edge) => edge.id),\n }))\n .sort((a, b) => compare(a.id, b.id));\n const requireSpace = (id: SpaceId) => {\n const space = spacesById.get(id);\n if (!space)\n throw new Error(`Unknown space '${id}' on board '${board.id}'.`);\n return space;\n };\n const selectedIds = (coordinates: Iterable<AxialCoordinate>): SpaceId[] =>\n Array.from(coordinates).flatMap((coordinate) => {\n const space = spacesByCoordinate.get(coordinateKey(coordinate));\n return space ? [space.id] : [];\n });\n return {\n edges,\n vertices,\n neighbors(id: SpaceId) {\n requireSpace(id);\n return edges\n .filter((edge) => edge.spaceIds.includes(id))\n .flatMap((edge) =>\n edge.spaceIds.filter((other) => other !== id),\n ) as SpaceId[];\n },\n distance(from: SpaceId, to: SpaceId) {\n return grid.distance(requireSpace(from), requireSpace(to));\n },\n ring(id: SpaceId, radius: number) {\n return selectedIds(\n new Grid(\n hexClass(orientation),\n ringTraversal({ center: requireSpace(id), radius }),\n ),\n );\n },\n line(from: SpaceId, to: SpaceId) {\n return selectedIds(\n new Grid(\n hexClass(orientation),\n lineTraversal({ start: requireSpace(from), stop: requireSpace(to) }),\n ),\n );\n },\n edgesOf(id: SpaceId) {\n requireSpace(id);\n return edgesBySpace.get(id)!.map((key) => edgeIds.get(key)!);\n },\n verticesOf(id: SpaceId) {\n requireSpace(id);\n return cornersBySpace.get(id)!.map((key) => vertexIds.get(key)!);\n },\n edgeAt(id: SpaceId, side: 0 | 1 | 2 | 3 | 4 | 5) {\n requireSpace(id);\n const key = edgesBySpace.get(id)![side];\n if (!key)\n throw new Error(\"Hex side must be an integer from 0 through 5.\");\n return edgeIds.get(key)!;\n },\n vertexAt(id: SpaceId, corner: 0 | 1 | 2 | 3 | 4 | 5) {\n requireSpace(id);\n const key = cornersBySpace.get(id)![corner];\n if (!key)\n throw new Error(\"Hex corner must be an integer from 0 through 5.\");\n return vertexIds.get(key)!;\n },\n edge(a: SpaceId, b: SpaceId) {\n requireSpace(a);\n requireSpace(b);\n const edge = edges.find(\n (edge) =>\n edge.spaceIds.length === 2 &&\n edge.spaceIds.includes(a) &&\n edge.spaceIds.includes(b),\n );\n if (!edge || a === b)\n throw new Error(`Spaces '${a}' and '${b}' do not share an edge.`);\n return edge.id;\n },\n vertex(a: SpaceId, b: SpaceId, c: SpaceId) {\n requireSpace(a);\n requireSpace(b);\n requireSpace(c);\n const vertex = vertices.find(\n (vertex) =>\n vertex.spaceIds.length === 3 &&\n [a, b, c].every((id) => vertex.spaceIds.includes(id)),\n );\n if (!vertex || new Set([a, b, c]).size !== 3)\n throw new Error(\"Spaces do not share exactly one vertex.\");\n return vertex.id;\n },\n incidentEdges(vertexId: HexVertexId<BoardId>) {\n const vertex = vertices.find((vertex) => vertex.id === vertexId);\n if (!vertex) throw new Error(`Unknown vertex '${vertexId}'.`);\n return vertex.edgeIds;\n },\n incidentVertices(edgeId: HexEdgeId<BoardId>) {\n const edge = edges.find((edge) => edge.id === edgeId);\n if (!edge) throw new Error(`Unknown edge '${edgeId}'.`);\n return edge.vertexIds;\n },\n spacesAt(vertexId: HexVertexId<BoardId>) {\n const vertex = vertices.find((vertex) => vertex.id === vertexId);\n if (!vertex) throw new Error(`Unknown vertex '${vertexId}'.`);\n return vertex.spaceIds as SpaceId[];\n },\n spacesAlong(edgeId: HexEdgeId<BoardId>) {\n const edge = edges.find((edge) => edge.id === edgeId);\n if (!edge) throw new Error(`Unknown edge '${edgeId}'.`);\n return edge.spaceIds as SpaceId[];\n },\n getLayout({\n hexSize,\n origin = { x: 0, y: 0 },\n }: {\n hexSize: number;\n origin?: Point;\n }) {\n if (!Number.isFinite(hexSize) || hexSize <= 0)\n throw new Error(\"hexSize must be positive and finite.\");\n const scaled = new Grid(hexClass(orientation, hexSize), spaces);\n const layoutSpaces = spaces.map((space) => {\n const hex = scaled.getHex(space)!;\n return {\n id: space.id,\n center: { x: hex.x + origin.x, y: hex.y + origin.y },\n corners: hex.corners.map((point) => ({\n x: point.x + origin.x,\n y: point.y + origin.y,\n })),\n };\n });\n const points = layoutSpaces.flatMap((space) => space.corners);\n const minX = points.length\n ? Math.min(...points.map((point) => point.x))\n : 0;\n const minY = points.length\n ? Math.min(...points.map((point) => point.y))\n : 0;\n const maxX = points.length\n ? Math.max(...points.map((point) => point.x))\n : 0;\n const maxY = points.length\n ? Math.max(...points.map((point) => point.y))\n : 0;\n const vertexPoints = new Map(\n [...cornerOwners].map(([key, vertex]) => [\n vertexIds.get(key)!,\n {\n x: vertex.point.x * hexSize + origin.x,\n y: vertex.point.y * hexSize + origin.y,\n },\n ]),\n );\n return {\n viewBox: { x: minX, y: minY, width: maxX - minX, height: maxY - minY },\n spaces: layoutSpaces,\n edges: edges.map((edge) => ({\n id: edge.id,\n from: vertexPoints.get(edge.vertexIds[0])!,\n to: vertexPoints.get(edge.vertexIds[1])!,\n })),\n vertices: vertices.map((vertex) => ({\n id: vertex.id,\n center: vertexPoints.get(vertex.id)!,\n })),\n pointToSpace(point: Point) {\n const hex = scaled.pointToHex(\n { x: point.x - origin.x, y: point.y - origin.y },\n { allowOutside: false },\n );\n return hex\n ? spacesByCoordinate.get(coordinateKey(hex))?.id\n : undefined;\n },\n };\n },\n };\n}\n\nexport function resolveHexSpaces(\n board: import(\"./domain/contracts.js\").HexBoardSpec,\n): import(\"./domain/contracts.js\").HexSpaceSpec[] {\n const excluded = new Set((board.exclude ?? []).map(coordinateKey));\n const coordinates = hexShapeCoordinates(\n board.shape,\n board.orientation,\n ).filter((coordinate) => !excluded.has(coordinateKey(coordinate)));\n const known = new Set(coordinates.map(coordinateKey));\n for (const key of Object.keys(board.spaces ?? {})) {\n if (!known.has(key))\n throw new Error(\n `Hex board '${board.id}' overrides coordinate '${key}' outside its shape.`,\n );\n }\n return coordinates\n .map((coordinate) => {\n const key = coordinateKey(coordinate) as `${number},${number}`;\n return {\n ...coordinate,\n ...board.spaces?.[key],\n id: board.spaces?.[key]?.id ?? key,\n };\n })\n .sort((a, b) => compare(a.id, b.id));\n}\n","import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { bytesToHex, utf8ToBytes } from \"@noble/hashes/utils.js\";\n\nimport { RuntimeJsonSchema, type RuntimeJson } from \"../runtime-json.js\";\n\nexport function canonicalizePluginRuntimeJson(value: unknown): RuntimeJson {\n return canonicalizeJson(\n RuntimeJsonSchema.parse(omitOptionalProperties(value)),\n );\n}\n\nexport function encodeCanonicalPluginRuntimeJson(value: unknown): string {\n return JSON.stringify(canonicalizePluginRuntimeJson(value));\n}\n\nexport function digestPluginRuntimeJson(value: unknown): string {\n return `sha256:${sha256Hex(encodeCanonicalPluginRuntimeJson(value))}`;\n}\n\nfunction canonicalizeJson(value: RuntimeJson): RuntimeJson {\n if (\n value === null ||\n typeof value === \"boolean\" ||\n typeof value === \"string\"\n ) {\n return value;\n }\n if (typeof value === \"number\") return value;\n if (Array.isArray(value)) {\n return value.map((item) => canonicalizeJson(item));\n }\n return Object.fromEntries(\n Object.entries(value)\n .sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))\n .map(([key, item]) => [key, canonicalizeJson(item)]),\n );\n}\n\n// Authored descriptors may explicitly carry undefined optional properties.\n// Omit only those JSON object fields; z.json rejects every other unsupported value.\nfunction omitOptionalProperties(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(omitOptionalProperties);\n if (\n value !== null &&\n typeof value === \"object\" &&\n (Object.getPrototypeOf(value) === Object.prototype ||\n Object.getPrototypeOf(value) === null)\n ) {\n return Object.fromEntries(\n Object.entries(value)\n .filter(([, item]) => item !== undefined)\n .map(([key, item]) => [key, omitOptionalProperties(item)]),\n );\n }\n return value;\n}\n\nfunction sha256Hex(input: string): string {\n return bytesToHex(sha256(utf8ToBytes(input)));\n}\n"],"mappings":"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","names":["z","z","key","edge","vertex"]}
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
createHexBoardGeometry,
|
|
9
9
|
digestPluginRuntimeJson,
|
|
10
10
|
encodeCanonicalPluginRuntimeJson
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4H4TAIV7.js";
|
|
12
12
|
import {
|
|
13
13
|
inputValueInDomain,
|
|
14
14
|
inputValueKey,
|
|
15
15
|
requireLookup
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-DPRHGA2C.js";
|
|
17
17
|
|
|
18
18
|
// src/reducer/model/error-codes.ts
|
|
19
19
|
var FrameworkErrorCodes = {
|
|
@@ -27,7 +27,7 @@ var FrameworkErrorCodes = {
|
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
// src/reducer/model/manifest.ts
|
|
30
|
-
import
|
|
30
|
+
import * as z from "zod";
|
|
31
31
|
function toNonEmptyStringTuple(values) {
|
|
32
32
|
const [first, ...rest] = Array.from(values);
|
|
33
33
|
if (typeof first === "undefined") {
|
|
@@ -139,8 +139,8 @@ function orderedComponentIdsForLocation(table, predicate) {
|
|
|
139
139
|
(left, right) => locationPosition(left[1]) - locationPosition(right[1])
|
|
140
140
|
).map(([componentId]) => componentId);
|
|
141
141
|
}
|
|
142
|
-
function hasOwnKey(
|
|
143
|
-
return Object.prototype.hasOwnProperty.call(
|
|
142
|
+
function hasOwnKey(record3, key) {
|
|
143
|
+
return Object.prototype.hasOwnProperty.call(record3, key);
|
|
144
144
|
}
|
|
145
145
|
function isSharedZoneId(table, zoneId) {
|
|
146
146
|
return hasOwnKey(table.decks, zoneId) || hasOwnKey(table.zones.shared, zoneId);
|
|
@@ -1763,7 +1763,7 @@ function dealCardsFromDeckToHandInPlace(table, fromZoneId, playerId, toZoneId, c
|
|
|
1763
1763
|
}
|
|
1764
1764
|
|
|
1765
1765
|
// src/reducer/per-player.ts
|
|
1766
|
-
import
|
|
1766
|
+
import * as z2 from "zod";
|
|
1767
1767
|
function asPlayerId(raw) {
|
|
1768
1768
|
return raw;
|
|
1769
1769
|
}
|
|
@@ -1816,7 +1816,7 @@ function isPerPlayerBoardRef(ref) {
|
|
|
1816
1816
|
}
|
|
1817
1817
|
|
|
1818
1818
|
// src/shared/worker-contract.ts
|
|
1819
|
-
import
|
|
1819
|
+
import * as z3 from "zod";
|
|
1820
1820
|
var REDUCER_CONTRACT_VERSION = "0.8.0";
|
|
1821
1821
|
var callable = z3.custom(
|
|
1822
1822
|
(value) => typeof value === "function"
|
|
@@ -2010,7 +2010,7 @@ function collectReducerDefinitionIndex(definition) {
|
|
|
2010
2010
|
}
|
|
2011
2011
|
|
|
2012
2012
|
// src/reducer/ingress/session-codec.ts
|
|
2013
|
-
import
|
|
2013
|
+
import * as z6 from "zod";
|
|
2014
2014
|
|
|
2015
2015
|
// src/reducer/parse-utils.ts
|
|
2016
2016
|
function formatIssue(label, issue) {
|
|
@@ -2029,7 +2029,7 @@ function safeParseOrThrow(schema, value, label) {
|
|
|
2029
2029
|
}
|
|
2030
2030
|
|
|
2031
2031
|
// src/reducer/ingress/runtime-payload.ts
|
|
2032
|
-
import
|
|
2032
|
+
import * as z4 from "zod";
|
|
2033
2033
|
|
|
2034
2034
|
// src/runtime-json.ts
|
|
2035
2035
|
var JsonValidationError = class extends Error {
|
|
@@ -2150,7 +2150,7 @@ function createRuntimeInputParser(playerIdSchema) {
|
|
|
2150
2150
|
}
|
|
2151
2151
|
|
|
2152
2152
|
// src/reducer/ingress/phase-schemas.ts
|
|
2153
|
-
import
|
|
2153
|
+
import * as z5 from "zod";
|
|
2154
2154
|
function createPhaseNameSchema(phaseNames) {
|
|
2155
2155
|
const allowed = new Set(phaseNames);
|
|
2156
2156
|
return z5.custom(
|
|
@@ -3463,9 +3463,9 @@ function makeValidationError(errorCode, message) {
|
|
|
3463
3463
|
// src/reducer/bundle/trusted/collector-params.ts
|
|
3464
3464
|
function parseInteractionParams(interaction, rawParams, options = {}) {
|
|
3465
3465
|
const collectors = interactionInputsOf(interaction);
|
|
3466
|
-
const
|
|
3466
|
+
const record3 = rawParams ?? {};
|
|
3467
3467
|
if (interaction.paramsSchema) {
|
|
3468
|
-
const result = interaction.paramsSchema.safeParse(
|
|
3468
|
+
const result = interaction.paramsSchema.safeParse(record3);
|
|
3469
3469
|
if (!result.success) {
|
|
3470
3470
|
return {
|
|
3471
3471
|
ok: false,
|
|
@@ -3478,7 +3478,7 @@ function parseInteractionParams(interaction, rawParams, options = {}) {
|
|
|
3478
3478
|
const issues = [];
|
|
3479
3479
|
for (const [key, collector] of Object.entries(collectors)) {
|
|
3480
3480
|
if (collector.kind === "rng" && options.skipRng) continue;
|
|
3481
|
-
const rawValue =
|
|
3481
|
+
const rawValue = record3[key] === void 0 && "defaultValue" in collector ? collector.defaultValue : record3[key];
|
|
3482
3482
|
const result = collector.schema.safeParse(rawValue);
|
|
3483
3483
|
if (!result.success) {
|
|
3484
3484
|
for (const issue of result.error.issues) {
|
|
@@ -3495,12 +3495,12 @@ function parseInteractionParams(interaction, rawParams, options = {}) {
|
|
|
3495
3495
|
}
|
|
3496
3496
|
function prepareInteractionProjectionParams(interaction, rawParams) {
|
|
3497
3497
|
const collectors = interactionInputsOf(interaction);
|
|
3498
|
-
const
|
|
3499
|
-
const prepared = { ...
|
|
3498
|
+
const record3 = rawParams ?? {};
|
|
3499
|
+
const prepared = { ...record3 };
|
|
3500
3500
|
for (const [key, collector] of Object.entries(collectors)) {
|
|
3501
3501
|
if (collector.kind === "rng") continue;
|
|
3502
|
-
if (
|
|
3503
|
-
const result = collector.schema.safeParse(
|
|
3502
|
+
if (record3[key] !== void 0) {
|
|
3503
|
+
const result = collector.schema.safeParse(record3[key]);
|
|
3504
3504
|
if (result.success) {
|
|
3505
3505
|
prepared[key] = result.data;
|
|
3506
3506
|
}
|
|
@@ -3696,7 +3696,7 @@ function createInteractionAuthorization(scope) {
|
|
|
3696
3696
|
}
|
|
3697
3697
|
|
|
3698
3698
|
// src/reducer/client-param-schemas.ts
|
|
3699
|
-
import
|
|
3699
|
+
import * as z7 from "zod";
|
|
3700
3700
|
function schemaForCollectors(collectors) {
|
|
3701
3701
|
const shape = {};
|
|
3702
3702
|
for (const [key, collector] of Object.entries(collectors)) {
|
|
@@ -6763,4 +6763,4 @@ export {
|
|
|
6763
6763
|
createProjectionBuilder,
|
|
6764
6764
|
createReducerBundle
|
|
6765
6765
|
};
|
|
6766
|
-
//# sourceMappingURL=chunk-
|
|
6766
|
+
//# sourceMappingURL=chunk-DE4LWN42.js.map
|