@dreamboard-games/sdk 0.4.0-alpha.13 → 0.4.0-alpha.14
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/README.md +29 -11
- package/dist/authoring/index.d.ts +3 -6
- package/dist/authoring/index.js +2 -2
- package/dist/authoring-compiler.d.ts +3 -3
- package/dist/authoring-compiler.js +3 -4
- package/dist/authoring-materialize-cli.js +5 -6
- package/dist/authoring-materialize-cli.js.map +1 -1
- package/dist/browser-interaction.d.ts +21 -21
- package/dist/{chunk-3PFDHTR7.js → chunk-3VSOH3TZ.js} +29 -2
- package/dist/chunk-3VSOH3TZ.js.map +1 -0
- package/dist/{chunk-OFIDC7DJ.js → chunk-73YISGYO.js} +4 -4
- package/dist/chunk-73YISGYO.js.map +1 -0
- package/dist/{chunk-YNW3KBDE.js → chunk-7QKE5BFU.js} +2 -2
- package/dist/{chunk-KZFHTUI5.js → chunk-CHOXM43O.js} +4 -4
- package/dist/chunk-CSIEFYTC.js +9 -0
- package/dist/chunk-CSIEFYTC.js.map +1 -0
- package/dist/{chunk-MLFHVYF7.js → chunk-KH6AET7P.js} +4 -4
- package/dist/chunk-KH6AET7P.js.map +1 -0
- package/dist/{chunk-MPVC2SU6.js → chunk-LMHCGCA6.js} +2 -2
- package/dist/{chunk-WAQUD4IG.js → chunk-NLZDRIVW.js} +16 -16
- package/dist/{chunk-5XTAQ4EQ.js → chunk-TO6WRLRN.js} +2 -2
- package/dist/{chunk-42HQLHVA.js → chunk-VJVKGWHW.js} +4 -7
- package/dist/chunk-VJVKGWHW.js.map +1 -0
- package/dist/{chunk-YOLIZMXR.js → chunk-VRRR6QZT.js} +3 -3
- package/dist/{chunk-YOLIZMXR.js.map → chunk-VRRR6QZT.js.map} +1 -1
- package/dist/{chunk-XDGRC6OR.js → chunk-WASWAYYX.js} +3 -3
- package/dist/{chunk-7JBPOJOF.js → chunk-ZGQGFXFG.js} +9 -9
- package/dist/{index.d-C7Ztirg6.d.ts → index.d-90ms7Mwh.d.ts} +124 -115
- package/dist/index.js +2 -2
- package/dist/package-set.d.ts +2 -2
- package/dist/package-set.js +2 -2
- package/dist/reducer/advanced.js +3 -3
- package/dist/reducer-contract.d.ts +1 -1
- package/dist/reducer-contract.js +3 -1
- package/dist/reducer.d.ts +1 -1
- package/dist/reducer.js +3 -3
- package/dist/reference-games/index.d.ts +29 -11
- package/dist/reference-games/index.js +43 -45
- package/dist/reference-games/index.js.map +1 -1
- package/dist/runtime/primitives.js +4 -4
- package/dist/runtime/workspace-contract.js +8 -8
- package/dist/runtime.js +12 -12
- package/dist/testing-compiler.d.ts +1 -1
- package/dist/testing-compiler.js +1 -4
- package/dist/testing-compiler.js.map +1 -1
- package/dist/testing-runtime.d.ts +3 -3
- package/dist/testing-runtime.js +5 -5
- package/dist/testing.d.ts +5 -140
- package/dist/testing.js +5 -450
- package/dist/testing.js.map +1 -1
- package/dist/{types-B-FI0jrx.d.ts → types-Cs_Jp0cf.d.ts} +1 -1
- package/dist/ui/components.js +1 -1
- package/dist/ui.js +2 -2
- package/package.json +22 -29
- package/REFERENCE.md +0 -25375
- package/dist/chunk-3PFDHTR7.js.map +0 -1
- package/dist/chunk-42HQLHVA.js.map +0 -1
- package/dist/chunk-MLFHVYF7.js.map +0 -1
- package/dist/chunk-OFIDC7DJ.js.map +0 -1
- package/dist/chunk-THWT4V3Z.js +0 -12
- package/dist/chunk-THWT4V3Z.js.map +0 -1
- package/dist/chunk-UNVCT5Z7.js +0 -73
- package/dist/chunk-UNVCT5Z7.js.map +0 -1
- package/dist/chunk-UTSBXZAM.js +0 -435
- package/dist/chunk-UTSBXZAM.js.map +0 -1
- package/dist/chunk-YN5W67YL.js +0 -174
- package/dist/chunk-YN5W67YL.js.map +0 -1
- package/dist/reference-game-compiler.d.ts +0 -45
- package/dist/reference-game-compiler.js +0 -25
- package/dist/reference-game-compiler.js.map +0 -1
- package/dist/reference-game-source-manifest-cli.d.ts +0 -1
- package/dist/reference-game-source-manifest-cli.js +0 -84
- package/dist/reference-game-source-manifest-cli.js.map +0 -1
- package/dist/schema-CJc0UfjJ.d.ts +0 -216
- /package/dist/{chunk-YNW3KBDE.js.map → chunk-7QKE5BFU.js.map} +0 -0
- /package/dist/{chunk-KZFHTUI5.js.map → chunk-CHOXM43O.js.map} +0 -0
- /package/dist/{chunk-MPVC2SU6.js.map → chunk-LMHCGCA6.js.map} +0 -0
- /package/dist/{chunk-WAQUD4IG.js.map → chunk-NLZDRIVW.js.map} +0 -0
- /package/dist/{chunk-5XTAQ4EQ.js.map → chunk-TO6WRLRN.js.map} +0 -0
- /package/dist/{chunk-XDGRC6OR.js.map → chunk-WASWAYYX.js.map} +0 -0
- /package/dist/{chunk-7JBPOJOF.js.map → chunk-ZGQGFXFG.js.map} +0 -0
package/README.md
CHANGED
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
# @dreamboard-games/sdk
|
|
2
2
|
|
|
3
|
-
The public
|
|
4
|
-
package
|
|
5
|
-
|
|
3
|
+
The public TypeScript SDK for authoring, testing, and rendering Dreamboard
|
|
4
|
+
games. Install this package rather than any of the repository's unpublished
|
|
5
|
+
workspace inputs.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
```sh
|
|
8
|
+
pnpm add @dreamboard-games/sdk
|
|
9
|
+
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
The package's declarations and export map are the API authority. Supported
|
|
12
|
+
imports include the root module and explicit subpaths for authoring, runtime,
|
|
13
|
+
reducer contracts, testing, browser interaction, UI, and reference-game
|
|
14
|
+
metadata. Import only subpaths present in the installed package's `exports`
|
|
15
|
+
field.
|
|
12
16
|
|
|
13
17
|
```ts
|
|
14
|
-
import {
|
|
15
|
-
DREAMBOARD_SDK_PACKAGE_SET,
|
|
16
|
-
DREAMBOARD_SDK_VERSION,
|
|
17
|
-
} from "@dreamboard-games/sdk";
|
|
18
|
+
import { DREAMBOARD_SDK_VERSION } from "@dreamboard-games/sdk";
|
|
18
19
|
import type { ReducerWire } from "@dreamboard-games/sdk/reducer-contract";
|
|
20
|
+
import {
|
|
21
|
+
REFERENCE_GAME_MANIFEST_SCHEMA_VERSION,
|
|
22
|
+
parseReferenceGameManifest,
|
|
23
|
+
type ReferenceGameManifest,
|
|
24
|
+
} from "@dreamboard-games/sdk/reference-games";
|
|
25
|
+
|
|
26
|
+
const manifest: ReferenceGameManifest = parseReferenceGameManifest(input);
|
|
27
|
+
console.log(REFERENCE_GAME_MANIFEST_SCHEMA_VERSION, manifest.id);
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Reference-game manifests use schema V5. They describe the game workspace,
|
|
31
|
+
teaching purpose, mechanics, UI patterns, and substantive rights metadata.
|
|
32
|
+
|
|
33
|
+
Include the packaged stylesheet when using SDK UI components:
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import "@dreamboard-games/sdk/ui/plugin-styles.css";
|
|
19
37
|
```
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { JsonValue } from '../types.js';
|
|
2
2
|
|
|
3
|
-
type
|
|
3
|
+
type AuthoringMetadataV1 = {
|
|
4
4
|
sdkVersion: string;
|
|
5
|
-
codegenVersion: string;
|
|
6
|
-
manifestSchemaVersion: number;
|
|
7
|
-
generatedArtifactSchemaVersion: number;
|
|
8
5
|
};
|
|
9
6
|
type AuthoringValidationResultV1 = {
|
|
10
7
|
valid: boolean;
|
|
@@ -36,7 +33,7 @@ type AuthoringManifestConformanceCaseV1 = {
|
|
|
36
33
|
};
|
|
37
34
|
type ProjectAuthoringAdapterV1 = {
|
|
38
35
|
protocolVersion: 1;
|
|
39
|
-
metadata:
|
|
36
|
+
metadata: AuthoringMetadataV1;
|
|
40
37
|
generatedPaths: readonly string[];
|
|
41
38
|
generatedPathPatterns: readonly GeneratedPathPatternV1[];
|
|
42
39
|
manifestConformanceCases: readonly AuthoringManifestConformanceCaseV1[];
|
|
@@ -59,4 +56,4 @@ declare const GENERATED_WORKSPACE_PATH_PATTERNS: readonly GeneratedWorkspacePath
|
|
|
59
56
|
declare const MANIFEST_CONFORMANCE_CASES: readonly AuthoringManifestConformanceCaseV1[];
|
|
60
57
|
declare const projectAuthoringAdapter: ProjectAuthoringAdapterV1;
|
|
61
58
|
|
|
62
|
-
export { type AuthoringManifestConformanceCaseV1, type AuthoringValidationResultV1, GENERATED_WORKSPACE_PATHS, GENERATED_WORKSPACE_PATH_PATTERNS, type GeneratedArtifactV1, type
|
|
59
|
+
export { type AuthoringManifestConformanceCaseV1, type AuthoringMetadataV1, type AuthoringValidationResultV1, GENERATED_WORKSPACE_PATHS, GENERATED_WORKSPACE_PATH_PATTERNS, type GeneratedArtifactV1, type GeneratedPathPatternV1, MANIFEST_CONFORMANCE_CASES, type ProjectAuthoringAdapterV1, diagnosticCodesForValidationErrors, generateWorkspaceArtifacts, materializeManifest, projectAuthoringAdapter, validateManifest };
|
package/dist/authoring/index.js
CHANGED
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
materializeManifest,
|
|
8
8
|
projectAuthoringAdapter,
|
|
9
9
|
validateManifest
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-73YISGYO.js";
|
|
11
|
+
import "../chunk-CSIEFYTC.js";
|
|
12
12
|
import "../chunk-HIH6Y4FA.js";
|
|
13
13
|
import "../chunk-PZ5AY32C.js";
|
|
14
14
|
export {
|
|
@@ -4,7 +4,7 @@ type MaterializeWorkspaceOptions = {
|
|
|
4
4
|
/** Scaffolding-only. Existing build/test paths leave seed files untouched. */
|
|
5
5
|
readonly writeMissingSeeds?: boolean;
|
|
6
6
|
};
|
|
7
|
-
type
|
|
7
|
+
type MaterializedWorkspaceResult = {
|
|
8
8
|
readonly schemaVersion: 1;
|
|
9
9
|
readonly projectRoot: string;
|
|
10
10
|
readonly authoritativeFiles: number;
|
|
@@ -22,6 +22,6 @@ type MaterializedWorkspaceReceipt = {
|
|
|
22
22
|
* scaffolding caller explicitly opts in. No test state or projection artifact
|
|
23
23
|
* is emitted.
|
|
24
24
|
*/
|
|
25
|
-
declare function materializeWorkspace(options: MaterializeWorkspaceOptions): Promise<
|
|
25
|
+
declare function materializeWorkspace(options: MaterializeWorkspaceOptions): Promise<MaterializedWorkspaceResult>;
|
|
26
26
|
|
|
27
|
-
export { type MaterializeWorkspaceOptions, type
|
|
27
|
+
export { type MaterializeWorkspaceOptions, type MaterializedWorkspaceResult, materializeWorkspace };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
materializeWorkspace
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-THWT4V3Z.js";
|
|
3
|
+
} from "./chunk-VJVKGWHW.js";
|
|
4
|
+
import "./chunk-73YISGYO.js";
|
|
5
|
+
import "./chunk-CSIEFYTC.js";
|
|
7
6
|
import "./chunk-HIH6Y4FA.js";
|
|
8
7
|
import "./chunk-PZ5AY32C.js";
|
|
9
8
|
export {
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
materializeWorkspace
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-THWT4V3Z.js";
|
|
4
|
+
} from "./chunk-VJVKGWHW.js";
|
|
5
|
+
import "./chunk-73YISGYO.js";
|
|
6
|
+
import "./chunk-CSIEFYTC.js";
|
|
8
7
|
import "./chunk-HIH6Y4FA.js";
|
|
9
8
|
import "./chunk-PZ5AY32C.js";
|
|
10
9
|
|
|
11
10
|
// src/authoring-materialize-cli.ts
|
|
12
11
|
var options = parseArgs(process.argv.slice(2));
|
|
13
|
-
var
|
|
14
|
-
console.log(JSON.stringify(
|
|
12
|
+
var result = await materializeWorkspace(options);
|
|
13
|
+
console.log(JSON.stringify(result, null, 2));
|
|
15
14
|
function parseArgs(argv) {
|
|
16
15
|
let manifestPath;
|
|
17
16
|
let projectRoot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/authoring-materialize-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { materializeWorkspace } from \"./authoring/materialize-workspace.js\";\n\nconst options = parseArgs(process.argv.slice(2));\nconst
|
|
1
|
+
{"version":3,"sources":["../src/authoring-materialize-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { materializeWorkspace } from \"./authoring/materialize-workspace.js\";\n\nconst options = parseArgs(process.argv.slice(2));\nconst result = await materializeWorkspace(options);\nconsole.log(JSON.stringify(result, null, 2));\n\nfunction parseArgs(argv: readonly string[]): {\n readonly manifestPath: string;\n readonly projectRoot?: string;\n readonly writeMissingSeeds?: boolean;\n} {\n let manifestPath: string | undefined;\n let projectRoot: string | undefined;\n let writeMissingSeeds = false;\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (arg === \"--manifest\") {\n manifestPath = argv[index + 1];\n index += 1;\n continue;\n }\n if (arg === \"--project-root\") {\n projectRoot = argv[index + 1];\n index += 1;\n continue;\n }\n if (arg === \"--write-missing-seeds\") {\n writeMissingSeeds = true;\n continue;\n }\n throw new Error(`Unknown argument '${arg}'.`);\n }\n if (!manifestPath) {\n throw new Error(\"--manifest is required.\");\n }\n return {\n manifestPath,\n ...(projectRoot === undefined ? {} : { projectRoot }),\n ...(writeMissingSeeds ? { writeMissingSeeds: true } : {}),\n };\n}\n"],"mappings":";;;;;;;;;;AAGA,IAAM,UAAU,UAAU,QAAQ,KAAK,MAAM,CAAC,CAAC;AAC/C,IAAM,SAAS,MAAM,qBAAqB,OAAO;AACjD,QAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAE3C,SAAS,UAAU,MAIjB;AACA,MAAI;AACJ,MAAI;AACJ,MAAI,oBAAoB;AACxB,WAAS,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS,GAAG;AACnD,UAAM,MAAM,KAAK,KAAK;AACtB,QAAI,QAAQ,cAAc;AACxB,qBAAe,KAAK,QAAQ,CAAC;AAC7B,eAAS;AACT;AAAA,IACF;AACA,QAAI,QAAQ,kBAAkB;AAC5B,oBAAc,KAAK,QAAQ,CAAC;AAC5B,eAAS;AACT;AAAA,IACF;AACA,QAAI,QAAQ,yBAAyB;AACnC,0BAAoB;AACpB;AAAA,IACF;AACA,UAAM,IAAI,MAAM,qBAAqB,GAAG,IAAI;AAAA,EAC9C;AACA,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AACA,SAAO;AAAA,IACL;AAAA,IACA,GAAI,gBAAgB,SAAY,CAAC,IAAI,EAAE,YAAY;AAAA,IACnD,GAAI,oBAAoB,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAAA,EACzD;AACF;","names":[]}
|
|
@@ -111,8 +111,8 @@ declare const gameplaySemanticEffectSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
111
111
|
declare const browserInteractionDiagnosticSchema: z.ZodObject<{
|
|
112
112
|
code: z.ZodString;
|
|
113
113
|
severity: z.ZodEnum<{
|
|
114
|
-
error: "error";
|
|
115
114
|
warning: "warning";
|
|
115
|
+
error: "error";
|
|
116
116
|
}>;
|
|
117
117
|
message: z.ZodString;
|
|
118
118
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -190,8 +190,8 @@ declare const browserInteractionActuatorSchema: z.ZodObject<{
|
|
|
190
190
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
191
191
|
code: z.ZodString;
|
|
192
192
|
severity: z.ZodEnum<{
|
|
193
|
-
error: "error";
|
|
194
193
|
warning: "warning";
|
|
194
|
+
error: "error";
|
|
195
195
|
}>;
|
|
196
196
|
message: z.ZodString;
|
|
197
197
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -225,8 +225,8 @@ declare const browserInteractionPointerTargetSchema: z.ZodObject<{
|
|
|
225
225
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
226
226
|
code: z.ZodString;
|
|
227
227
|
severity: z.ZodEnum<{
|
|
228
|
-
error: "error";
|
|
229
228
|
warning: "warning";
|
|
229
|
+
error: "error";
|
|
230
230
|
}>;
|
|
231
231
|
message: z.ZodString;
|
|
232
232
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -315,8 +315,8 @@ declare const browserGameplayInteractionSchema: z.ZodObject<{
|
|
|
315
315
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
316
316
|
code: z.ZodString;
|
|
317
317
|
severity: z.ZodEnum<{
|
|
318
|
-
error: "error";
|
|
319
318
|
warning: "warning";
|
|
319
|
+
error: "error";
|
|
320
320
|
}>;
|
|
321
321
|
message: z.ZodString;
|
|
322
322
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -350,8 +350,8 @@ declare const browserGameplayInteractionSchema: z.ZodObject<{
|
|
|
350
350
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
351
351
|
code: z.ZodString;
|
|
352
352
|
severity: z.ZodEnum<{
|
|
353
|
-
error: "error";
|
|
354
353
|
warning: "warning";
|
|
354
|
+
error: "error";
|
|
355
355
|
}>;
|
|
356
356
|
message: z.ZodString;
|
|
357
357
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -365,8 +365,8 @@ declare const browserGameplayInteractionSchema: z.ZodObject<{
|
|
|
365
365
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
366
366
|
code: z.ZodString;
|
|
367
367
|
severity: z.ZodEnum<{
|
|
368
|
-
error: "error";
|
|
369
368
|
warning: "warning";
|
|
369
|
+
error: "error";
|
|
370
370
|
}>;
|
|
371
371
|
message: z.ZodString;
|
|
372
372
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -458,8 +458,8 @@ declare const browserGameplaySurfaceSnapshotSchema: z.ZodObject<{
|
|
|
458
458
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
459
459
|
code: z.ZodString;
|
|
460
460
|
severity: z.ZodEnum<{
|
|
461
|
-
error: "error";
|
|
462
461
|
warning: "warning";
|
|
462
|
+
error: "error";
|
|
463
463
|
}>;
|
|
464
464
|
message: z.ZodString;
|
|
465
465
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -493,8 +493,8 @@ declare const browserGameplaySurfaceSnapshotSchema: z.ZodObject<{
|
|
|
493
493
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
494
494
|
code: z.ZodString;
|
|
495
495
|
severity: z.ZodEnum<{
|
|
496
|
-
error: "error";
|
|
497
496
|
warning: "warning";
|
|
497
|
+
error: "error";
|
|
498
498
|
}>;
|
|
499
499
|
message: z.ZodString;
|
|
500
500
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -508,8 +508,8 @@ declare const browserGameplaySurfaceSnapshotSchema: z.ZodObject<{
|
|
|
508
508
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
509
509
|
code: z.ZodString;
|
|
510
510
|
severity: z.ZodEnum<{
|
|
511
|
-
error: "error";
|
|
512
511
|
warning: "warning";
|
|
512
|
+
error: "error";
|
|
513
513
|
}>;
|
|
514
514
|
message: z.ZodString;
|
|
515
515
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -523,8 +523,8 @@ declare const browserGameplaySurfaceSnapshotSchema: z.ZodObject<{
|
|
|
523
523
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
524
524
|
code: z.ZodString;
|
|
525
525
|
severity: z.ZodEnum<{
|
|
526
|
-
error: "error";
|
|
527
526
|
warning: "warning";
|
|
527
|
+
error: "error";
|
|
528
528
|
}>;
|
|
529
529
|
message: z.ZodString;
|
|
530
530
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -616,8 +616,8 @@ declare const browserSemanticSurfaceSnapshotSchema: z.ZodObject<{
|
|
|
616
616
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
617
617
|
code: z.ZodString;
|
|
618
618
|
severity: z.ZodEnum<{
|
|
619
|
-
error: "error";
|
|
620
619
|
warning: "warning";
|
|
620
|
+
error: "error";
|
|
621
621
|
}>;
|
|
622
622
|
message: z.ZodString;
|
|
623
623
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -651,8 +651,8 @@ declare const browserSemanticSurfaceSnapshotSchema: z.ZodObject<{
|
|
|
651
651
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
652
652
|
code: z.ZodString;
|
|
653
653
|
severity: z.ZodEnum<{
|
|
654
|
-
error: "error";
|
|
655
654
|
warning: "warning";
|
|
655
|
+
error: "error";
|
|
656
656
|
}>;
|
|
657
657
|
message: z.ZodString;
|
|
658
658
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -666,8 +666,8 @@ declare const browserSemanticSurfaceSnapshotSchema: z.ZodObject<{
|
|
|
666
666
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
667
667
|
code: z.ZodString;
|
|
668
668
|
severity: z.ZodEnum<{
|
|
669
|
-
error: "error";
|
|
670
669
|
warning: "warning";
|
|
670
|
+
error: "error";
|
|
671
671
|
}>;
|
|
672
672
|
message: z.ZodString;
|
|
673
673
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -681,8 +681,8 @@ declare const browserSemanticSurfaceSnapshotSchema: z.ZodObject<{
|
|
|
681
681
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
682
682
|
code: z.ZodString;
|
|
683
683
|
severity: z.ZodEnum<{
|
|
684
|
-
error: "error";
|
|
685
684
|
warning: "warning";
|
|
685
|
+
error: "error";
|
|
686
686
|
}>;
|
|
687
687
|
message: z.ZodString;
|
|
688
688
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -699,8 +699,8 @@ declare const browserUnknownSurfaceSnapshotSchema: z.ZodObject<{
|
|
|
699
699
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
700
700
|
code: z.ZodString;
|
|
701
701
|
severity: z.ZodEnum<{
|
|
702
|
-
error: "error";
|
|
703
702
|
warning: "warning";
|
|
703
|
+
error: "error";
|
|
704
704
|
}>;
|
|
705
705
|
message: z.ZodString;
|
|
706
706
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -797,8 +797,8 @@ declare const browserInteractionSnapshotSchema: z.ZodObject<{
|
|
|
797
797
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
798
798
|
code: z.ZodString;
|
|
799
799
|
severity: z.ZodEnum<{
|
|
800
|
-
error: "error";
|
|
801
800
|
warning: "warning";
|
|
801
|
+
error: "error";
|
|
802
802
|
}>;
|
|
803
803
|
message: z.ZodString;
|
|
804
804
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -832,8 +832,8 @@ declare const browserInteractionSnapshotSchema: z.ZodObject<{
|
|
|
832
832
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
833
833
|
code: z.ZodString;
|
|
834
834
|
severity: z.ZodEnum<{
|
|
835
|
-
error: "error";
|
|
836
835
|
warning: "warning";
|
|
836
|
+
error: "error";
|
|
837
837
|
}>;
|
|
838
838
|
message: z.ZodString;
|
|
839
839
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -847,8 +847,8 @@ declare const browserInteractionSnapshotSchema: z.ZodObject<{
|
|
|
847
847
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
848
848
|
code: z.ZodString;
|
|
849
849
|
severity: z.ZodEnum<{
|
|
850
|
-
error: "error";
|
|
851
850
|
warning: "warning";
|
|
851
|
+
error: "error";
|
|
852
852
|
}>;
|
|
853
853
|
message: z.ZodString;
|
|
854
854
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -862,8 +862,8 @@ declare const browserInteractionSnapshotSchema: z.ZodObject<{
|
|
|
862
862
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
863
863
|
code: z.ZodString;
|
|
864
864
|
severity: z.ZodEnum<{
|
|
865
|
-
error: "error";
|
|
866
865
|
warning: "warning";
|
|
866
|
+
error: "error";
|
|
867
867
|
}>;
|
|
868
868
|
message: z.ZodString;
|
|
869
869
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -879,8 +879,8 @@ declare const browserInteractionSnapshotSchema: z.ZodObject<{
|
|
|
879
879
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
880
880
|
code: z.ZodString;
|
|
881
881
|
severity: z.ZodEnum<{
|
|
882
|
-
error: "error";
|
|
883
882
|
warning: "warning";
|
|
883
|
+
error: "error";
|
|
884
884
|
}>;
|
|
885
885
|
message: z.ZodString;
|
|
886
886
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -894,8 +894,8 @@ declare const browserInteractionSnapshotSchema: z.ZodObject<{
|
|
|
894
894
|
diagnostics: z.ZodArray<z.ZodObject<{
|
|
895
895
|
code: z.ZodString;
|
|
896
896
|
severity: z.ZodEnum<{
|
|
897
|
-
error: "error";
|
|
898
897
|
warning: "warning";
|
|
898
|
+
error: "error";
|
|
899
899
|
}>;
|
|
900
900
|
message: z.ZodString;
|
|
901
901
|
surface: z.ZodOptional<z.ZodString>;
|
|
@@ -141,6 +141,32 @@ var BoardStaticProjectionSchema = z.object({ "view": JsonValueSchema, "hash": z.
|
|
|
141
141
|
// ../reducer-contract/generated/version.ts
|
|
142
142
|
var REDUCER_CONTRACT_VERSION = "0.4.0";
|
|
143
143
|
|
|
144
|
+
// ../reducer-contract/src/bundle.ts
|
|
145
|
+
function assertReducerBundleContract(value, source) {
|
|
146
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
147
|
+
throw new Error(`Reducer bundle ${source} did not export an object.`);
|
|
148
|
+
}
|
|
149
|
+
const bundle = value;
|
|
150
|
+
if (bundle.reducerContractVersion !== REDUCER_CONTRACT_VERSION) {
|
|
151
|
+
throw new Error(
|
|
152
|
+
`Reducer bundle ${source} requires exact contract ${REDUCER_CONTRACT_VERSION}; received ${String(bundle.reducerContractVersion ?? "missing")}.`
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
for (const method of [
|
|
156
|
+
"initialize",
|
|
157
|
+
"initializePhase",
|
|
158
|
+
"validateInput",
|
|
159
|
+
"reduce",
|
|
160
|
+
"dispatch",
|
|
161
|
+
"projectStatic",
|
|
162
|
+
"projectSeatsDynamic"
|
|
163
|
+
]) {
|
|
164
|
+
if (typeof bundle[method] !== "function") {
|
|
165
|
+
throw new Error(`Reducer bundle ${source} is missing ${method}().`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
144
170
|
// ../reducer-contract/generated/builders.ts
|
|
145
171
|
var builders_exports = {};
|
|
146
172
|
__export(builders_exports, {
|
|
@@ -188,6 +214,7 @@ function materializeAccept(pending) {
|
|
|
188
214
|
export {
|
|
189
215
|
zod_exports,
|
|
190
216
|
builders_exports,
|
|
191
|
-
REDUCER_CONTRACT_VERSION
|
|
217
|
+
REDUCER_CONTRACT_VERSION,
|
|
218
|
+
assertReducerBundleContract
|
|
192
219
|
};
|
|
193
|
-
//# sourceMappingURL=chunk-
|
|
220
|
+
//# sourceMappingURL=chunk-3VSOH3TZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../reducer-contract/generated/zod.ts","../../reducer-contract/generated/version.ts","../../reducer-contract/src/bundle.ts","../../reducer-contract/generated/builders.ts"],"sourcesContent":["// @generated by packages/reducer-contract/scripts/generate.ts\n// DO NOT EDIT BY HAND. Edit schema/reducer-runtime.schema.json and rerun `pnpm generate`.\n\n/* eslint-disable */\nimport type * as Wire from \"./wire\";\nimport { z } from \"zod\";\n\nexport const ReducerContractVersionSchema = z.string().regex(new RegExp(\"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+$\"));\n\nexport const EffectIdSchema = z.string().min(1);\n\nlet JsonValueSchemaInternal: z.ZodType<Wire.JsonValue>;\nJsonValueSchemaInternal = z.lazy(() => z.union([z.record(z.string(), JsonValueSchemaInternal), z.array(JsonValueSchemaInternal), z.string(), z.number(), z.boolean(), z.null()]));\nexport const JsonValueSchema = JsonValueSchemaInternal;\n\nexport const ContinuationTokenSchema = z.object({ \"id\": z.string().min(1), \"data\": JsonValueSchema }).strict();\n\nexport const ContinuationMapSchema = z.record(z.string(), ContinuationTokenSchema);\n\nexport const ReducerSetupSelectionSchema = z.object({ \"profileId\": z.string().min(1), \"optionValues\": z.record(z.string(), z.union([z.string(), z.null()])) }).strict();\n\nexport const RngOperationParameterSchema = z.union([z.string(), z.number().finite(), z.boolean()]);\n\nexport const RngOperationSchema = z.object({ \"kind\": z.string().min(1), \"parameters\": z.record(z.string(), RngOperationParameterSchema) }).strict();\n\nexport const RngDrawSchema = z.object({ \"index\": z.number().int().gte(0), \"cursorBefore\": z.number().int().gte(0), \"cursorAfter\": z.number().int().gte(0), \"operation\": RngOperationSchema }).strict();\n\nexport const RngStateSchema = z.object({ \"seed\": z.union([z.number().refine(Number.isInteger, { message: \"Expected integer\" }), z.null()]), \"cursor\": z.number().int(), \"trace\": z.array(z.string()), \"draws\": z.array(RngDrawSchema).optional() }).strict();\n\nexport const ReducerFlowStateSchema = z.object({ \"currentPhase\": z.string().min(1), \"turn\": z.number().int(), \"round\": z.number().int(), \"activePlayers\": z.array(z.string().min(1)) }).strict();\n\nexport const RuntimeSimultaneousSubmissionSchema = z.object({ \"interactionId\": z.string().min(1), \"params\": JsonValueSchema }).strict();\n\nexport const RuntimeSimultaneousCurrentSchema = z.object({ \"phaseName\": z.string().min(1), \"actors\": z.array(z.string().min(1)), \"submissions\": z.record(z.string(), RuntimeSimultaneousSubmissionSchema) }).strict();\n\nexport const RuntimeSimultaneousStateSchema = z.object({ \"current\": z.union([RuntimeSimultaneousCurrentSchema, z.null()]) }).strict();\n\nexport const TransitionRecordSchema = z.object({ \"from\": z.string().min(1), \"to\": z.string().min(1) }).strict();\n\nexport const ReducerRuntimeStateSchema = z.object({ \"rng\": RngStateSchema, \"setup\": z.union([ReducerSetupSelectionSchema, z.null()]), \"simultaneous\": RuntimeSimultaneousStateSchema, \"lastTransition\": z.union([TransitionRecordSchema, z.null()]) }).strict();\n\nexport const ReducerDomainStateSchema = z.object({ \"table\": JsonValueSchema, \"publicState\": JsonValueSchema, \"privateState\": z.record(z.string(), JsonValueSchema), \"hiddenState\": JsonValueSchema, \"flow\": ReducerFlowStateSchema, \"phase\": JsonValueSchema }).strict();\n\nexport const ReducerSessionMetaSchema = z.object({ \"contractFingerprint\": z.string().regex(new RegExp(\"^cfp[0-9]+:[a-f0-9]{16}$\")) }).strict();\n\nexport const ReducerSessionStateSchema = z.object({ \"meta\": ReducerSessionMetaSchema.optional(), \"domain\": ReducerDomainStateSchema, \"runtime\": ReducerRuntimeStateSchema }).strict();\n\nexport const GameInputInteractionSchema = z.object({ \"kind\": z.literal(\"interaction\"), \"playerId\": z.string().min(1), \"interactionId\": z.string().min(1), \"params\": JsonValueSchema }).strict();\n\nexport const GameInputSchema = z.discriminatedUnion(\"kind\", [GameInputInteractionSchema]);\n\nexport const EffectTransitionSchema = z.object({ \"effectId\": EffectIdSchema, \"type\": z.literal(\"transition\"), \"to\": z.string().min(1) }).strict();\n\nexport const EffectRollDieSchema = z.object({ \"effectId\": EffectIdSchema, \"type\": z.literal(\"rollDie\"), \"dieId\": z.string().min(1) }).strict();\n\nexport const EffectShuffleSharedZoneSchema = z.object({ \"effectId\": EffectIdSchema, \"type\": z.literal(\"shuffleSharedZone\"), \"zoneId\": z.string().min(1) }).strict();\n\nexport const EffectShufflePlayerZoneSchema = z.object({ \"effectId\": EffectIdSchema, \"type\": z.literal(\"shufflePlayerZone\"), \"zoneId\": z.string().min(1), \"playerId\": z.string().min(1) }).strict();\n\nexport const EffectSchema = z.discriminatedUnion(\"type\", [EffectTransitionSchema, EffectRollDieSchema, EffectShuffleSharedZoneSchema, EffectShufflePlayerZoneSchema]);\n\nexport const ReducerInputValidationResultSchema = z.object({ \"valid\": z.boolean(), \"errorCode\": z.string().optional(), \"message\": z.string().optional() }).strict();\n\nexport const InitializeRequestSchema = z.object({ \"table\": JsonValueSchema, \"playerIds\": z.array(z.string().min(1)), \"rngSeed\": z.union([z.number().refine(Number.isInteger, { message: \"Expected integer\" }), z.null()]).optional(), \"setup\": z.union([ReducerSetupSelectionSchema, z.null()]).optional() }).strict();\n\nexport const InitializePhaseRequestSchema = z.object({ \"state\": ReducerSessionStateSchema, \"to\": z.string().min(1) }).strict();\n\nexport const ValidateInputRequestSchema = z.object({ \"state\": ReducerSessionStateSchema, \"input\": GameInputSchema }).strict();\n\nexport const ReduceRequestSchema = z.object({ \"state\": ReducerSessionStateSchema, \"input\": GameInputSchema }).strict();\n\nexport const DispatchRequestSchema = z.object({ \"state\": ReducerSessionStateSchema, \"input\": GameInputSchema }).strict();\n\nexport const ReduceResultRejectSchema = z.object({ \"kind\": z.literal(\"reject\"), \"errorCode\": z.string().min(1), \"message\": z.string().optional() }).strict();\n\nexport const GameOutcomeReasonSchema = z.object({ \"code\": z.string().min(1), \"message\": z.string().min(1).optional() }).strict();\n\nexport const OutcomeResultSchema = z.enum([\"win\", \"draw\", \"loss\", \"eliminated\"]);\n\nexport const OutcomeScoreComponentSchema = z.object({ \"id\": z.string().min(1), \"label\": z.string().min(1), \"value\": z.number().finite() }).strict();\n\nexport const OutcomeTieBreakSchema = z.object({ \"id\": z.string().min(1), \"label\": z.string().min(1), \"value\": z.union([z.number().finite(), z.string()]) }).strict();\n\nexport const OutcomeStandingSchema = z.object({ \"playerId\": z.string().min(1), \"rank\": z.number().int().gte(1), \"result\": OutcomeResultSchema, \"score\": z.number().finite().optional(), \"scoreBreakdown\": z.array(OutcomeScoreComponentSchema).optional(), \"tieBreaks\": z.array(OutcomeTieBreakSchema).optional() }).strict();\n\nexport const GameOutcomeSchema = z.object({ \"reason\": GameOutcomeReasonSchema, \"standings\": z.array(OutcomeStandingSchema).min(1) }).strict();\n\nexport const GameEventDetailSchema = z.object({ \"label\": z.string().min(1), \"value\": z.union([z.string(), z.number().finite(), z.boolean()]) }).strict();\n\nexport const SystemActionEventSchema = z.object({ \"kind\": z.literal(\"systemAction\"), \"procedureId\": z.string().min(1), \"title\": z.string().min(1), \"summary\": z.string().min(1).optional(), \"details\": z.array(GameEventDetailSchema).max(16).optional() }).strict();\n\nexport const GameEventSchema = z.discriminatedUnion(\"kind\", [SystemActionEventSchema]);\n\nexport const ReduceResultAcceptSchema = z.object({ \"kind\": z.literal(\"accept\"), \"state\": ReducerSessionStateSchema, \"terminal\": GameOutcomeSchema.optional(), \"effects\": z.array(EffectSchema), \"continuations\": ContinuationMapSchema, \"events\": z.array(GameEventSchema).max(32) }).strict();\n\nexport const ReduceResultSchema = z.discriminatedUnion(\"kind\", [ReduceResultRejectSchema, ReduceResultAcceptSchema]);\n\nexport const DispatchTraceAcceptedClientInputSchema = z.object({ \"kind\": z.literal(\"acceptedClientInput\"), \"input\": GameInputSchema }).strict();\n\nexport const DispatchTraceAppliedEffectSchema = z.object({ \"kind\": z.literal(\"appliedEffect\"), \"effect\": EffectSchema, \"continuation\": ContinuationTokenSchema.optional() }).strict();\n\nexport const DispatchTraceRngConsumptionSchema = z.object({ \"kind\": z.literal(\"rngConsumption\"), \"version\": z.literal(2), \"operation\": z.string().min(1), \"drawIndex\": z.number().int().gte(0), \"traceEntry\": z.string() }).strict();\n\nexport const DispatchTraceSchema = z.discriminatedUnion(\"kind\", [DispatchTraceAcceptedClientInputSchema, DispatchTraceAppliedEffectSchema, DispatchTraceRngConsumptionSchema]);\n\nexport const DispatchResultRejectSchema = z.object({ \"kind\": z.literal(\"reject\"), \"errorCode\": z.string().min(1), \"message\": z.string().optional() }).strict();\n\nexport const DispatchResultAcceptSchema = z.object({ \"kind\": z.literal(\"accept\"), \"state\": ReducerSessionStateSchema, \"terminal\": GameOutcomeSchema.optional(), \"trace\": z.array(DispatchTraceSchema), \"events\": z.array(GameEventSchema).max(32) }).strict();\n\nexport const DispatchResultSchema = z.discriminatedUnion(\"kind\", [DispatchResultRejectSchema, DispatchResultAcceptSchema]);\n\nexport const ReducerRuntimeLogEntryAcceptedClientInputSchema = z.object({ \"kind\": z.literal(\"acceptedClientInput\"), \"version\": z.number().int(), \"input\": GameInputSchema }).strict();\n\nexport const ReducerRuntimeLogEntryAppliedEffectSchema = z.object({ \"kind\": z.literal(\"appliedEffect\"), \"version\": z.number().int(), \"effect\": EffectSchema, \"continuation\": z.union([ContinuationTokenSchema, z.null()]) }).strict();\n\nexport const ReducerRuntimeLogEntryRngConsumptionSchema = z.object({ \"kind\": z.literal(\"rngConsumption\"), \"version\": z.number().int(), \"operation\": z.string().min(1), \"drawIndex\": z.number().int().gte(0).optional(), \"traceEntry\": z.string() }).strict();\n\nexport const ReducerRuntimeLogEntryStateCommitSchema = z.object({ \"kind\": z.literal(\"stateCommit\"), \"version\": z.number().int(), \"state\": ReducerSessionStateSchema }).strict();\n\nexport const ReducerRuntimeLogEntrySchema = z.discriminatedUnion(\"kind\", [ReducerRuntimeLogEntryAcceptedClientInputSchema, ReducerRuntimeLogEntryAppliedEffectSchema, ReducerRuntimeLogEntryRngConsumptionSchema, ReducerRuntimeLogEntryStateCommitSchema]);\n\nexport const SeatProjectionSchema = z.object({ \"view\": JsonValueSchema.optional(), \"availableInteractionRefs\": JsonValueSchema.optional(), \"zones\": JsonValueSchema.optional() }).strict();\n\nexport const SimultaneousPhaseProjectionSchema = z.object({ \"phaseName\": z.string().min(1), \"interactionId\": z.string().min(1), \"actorIds\": z.array(z.string().min(1)), \"sealedPlayerIds\": z.array(z.string().min(1)), \"pendingPlayerIds\": z.array(z.string().min(1)) }).strict();\n\nexport const SchedulerContinuationDependencySchema = z.object({ \"waiterPlayerId\": z.string().min(1), \"blockerPlayerIds\": z.array(z.string().min(1)) }).strict();\n\nexport const SchedulerFlowAuthorityProjectionSchema = z.object({ \"version\": z.literal(1), \"activePlayerIds\": z.array(z.string().min(1)), \"pendingPlayerIds\": z.array(z.string().min(1)), \"continuationDependencies\": z.array(SchedulerContinuationDependencySchema) }).strict();\n\nexport const ProjectionTimingMetadataSchema = z.object({ \"resolveAvailableInteractionsMs\": z.number().finite().gte(0), \"resolveViewMs\": z.number().finite().gte(0), \"resolveZoneHandlesMs\": z.number().finite().gte(0), \"descriptorHashMs\": z.number().finite().gte(0) }).strict();\n\nexport const SeatProjectionBundleSchema = z.object({ \"currentStage\": z.union([z.string().min(1), z.null()]).optional(), \"stageSeats\": z.array(z.string().min(1)).optional(), \"simultaneousPhase\": z.union([SimultaneousPhaseProjectionSchema, z.null()]).optional(), \"schedulerFlow\": SchedulerFlowAuthorityProjectionSchema.optional(), \"sharedView\": JsonValueSchema.optional(), \"interactionsByRef\": JsonValueSchema.optional(), \"seats\": z.record(z.string(), SeatProjectionSchema), \"timing\": ProjectionTimingMetadataSchema.optional() }).strict();\n\nexport const ProjectSeatsDynamicRequestSchema = z.object({ \"state\": ReducerSessionStateSchema, \"playerIds\": z.array(z.string().min(1)), \"projectionMode\": z.union([z.enum([\"full\", \"actionsOnly\"]), z.null()]).optional() }).strict();\n\nexport const BoardStaticProjectionSchema = z.object({ \"view\": JsonValueSchema, \"hash\": z.string().min(1), \"manifestVersion\": z.string() }).strict();\n","// @generated by packages/reducer-contract/scripts/generate.ts\n// DO NOT EDIT BY HAND. Edit schema/reducer-runtime.schema.json and rerun `pnpm generate`.\n\n/**\n * The wire-protocol version this package implements. Bumped in lockstep with\n * any breaking change to schema/reducer-runtime.schema.json. At bundle load\n * time hosts require bundles to carry this exact version.\n */\nexport const REDUCER_CONTRACT_VERSION = \"0.4.0\" as const;\n","// @generated by packages/reducer-contract/scripts/generate.ts\n// DO NOT EDIT BY HAND. Edit schema/reducer-runtime.operations.json and rerun `pnpm generate`.\n\n/* eslint-disable */\nimport type * as Wire from \"../generated/wire\";\nimport { REDUCER_CONTRACT_VERSION } from \"../generated/version\";\n\nexport type MaybePromise<T> = T | Promise<T>;\n\n/**\n * Canonical erased reducer boundary for `createReducerBundle(...)`.\n *\n * The callable method list is generated from\n * `schema/reducer-runtime.operations.json`; payload DTOs come from\n * `schema/reducer-runtime.schema.json`.\n *\n * This interface models the host/guest surface only. The concrete\n * authored bundle stays strongly typed in `@dreamboard-games/sdk/reducer`, but every\n * cross-runtime caller should agree on this shape.\n */\nexport interface ReducerBundleContract {\n readonly reducerContractVersion: Wire.ReducerContractVersion;\n initialize(\n input: Wire.InitializeRequest,\n ): MaybePromise<Wire.ReducerSessionState>;\n initializePhase(\n input: Wire.InitializePhaseRequest,\n ): MaybePromise<Wire.ReducerSessionState>;\n validateInput(\n input: Wire.ValidateInputRequest,\n ): MaybePromise<Wire.ReducerInputValidationResult>;\n reduce(input: Wire.ReduceRequest): MaybePromise<Wire.ReduceResult>;\n dispatch(input: Wire.DispatchRequest): MaybePromise<Wire.DispatchResult>;\n projectStatic(): Wire.BoardStaticProjection | null;\n projectSeatsDynamic(\n input: Wire.ProjectSeatsDynamicRequest,\n ): Wire.SeatProjectionBundle;\n}\n\n/**\n * Validates an imported module value at the reducer host/guest boundary.\n *\n * The required callable members are generated from the same operation\n * authority as `ReducerBundleContract`, so runtime admission cannot drift\n * from the published TypeScript interface.\n * The contract version must match exactly.\n */\nexport function assertReducerBundleContract(\n value: unknown,\n source: string,\n): asserts value is ReducerBundleContract {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new Error(`Reducer bundle ${source} did not export an object.`);\n }\n\n const bundle = value as Record<string, unknown>;\n if (bundle.reducerContractVersion !== REDUCER_CONTRACT_VERSION) {\n throw new Error(\n `Reducer bundle ${source} requires exact contract ${REDUCER_CONTRACT_VERSION}; received ${String(bundle.reducerContractVersion ?? \"missing\")}.`,\n );\n }\n\n for (const method of [\n \"initialize\",\n \"initializePhase\",\n \"validateInput\",\n \"reduce\",\n \"dispatch\",\n \"projectStatic\",\n \"projectSeatsDynamic\",\n ] as const) {\n if (typeof bundle[method] !== \"function\") {\n throw new Error(`Reducer bundle ${source} is missing ${method}().`);\n }\n }\n}\n","// @generated by packages/reducer-contract/scripts/generate.ts\n// DO NOT EDIT BY HAND. Edit schema/reducer-runtime.schema.json and rerun `pnpm generate`.\n\n/* eslint-disable */\nimport type * as Wire from \"./wire\";\n\n/**\n * Typed effect constructors. Authors MUST go through these; hand-constructing\n * Wire.Effect objects is banned by convention because it's how wire drift\n * re-enters the codebase.\n *\n * The `effectId` is minted by the runtime (see createEffectIdMinter below),\n * not by the author. Each builder returns a `PendingEffect` that carries\n * the optional continuation; the reducer bundle's accept materializer splits\n * pending effects into the wire's `effects[]` + `continuations` map.\n */\n\nexport type PendingEffect = Wire.Effect & {\n readonly __continuation?: Wire.ContinuationToken;\n};\n\nexport type EffectIdMinter = () => Wire.EffectId;\n\n/**\n * Produces sequential, deterministic effect ids scoped to a single accept\n * payload: \"ef0\", \"ef1\", ... . Uniqueness only needs to be local to the\n * payload because the host consumes and discards them per dispatch.\n */\nexport function createEffectIdMinter(): EffectIdMinter {\n let i = 0;\n return () => `ef${i++}` as Wire.EffectId;\n}\n\nexport type EffectBuilders = {\n transition(args: { to: string }, continuation?: Wire.ContinuationToken): PendingEffect;\n rollDie(args: { dieId: string }, continuation?: Wire.ContinuationToken): PendingEffect;\n shuffleSharedZone(args: { zoneId: string }, continuation?: Wire.ContinuationToken): PendingEffect;\n shufflePlayerZone(args: { zoneId: string; playerId: string }, continuation?: Wire.ContinuationToken): PendingEffect;\n};\n\nexport function createEffectBuilders(mint: EffectIdMinter): EffectBuilders {\n return {\n transition(args, continuation) {\n const effect = { effectId: mint(), type: \"transition\" as const, to: args.to };\n return continuation === undefined\n ? (effect as PendingEffect)\n : Object.assign(effect, { __continuation: continuation });\n },\n rollDie(args, continuation) {\n const effect = { effectId: mint(), type: \"rollDie\" as const, dieId: args.dieId };\n return continuation === undefined\n ? (effect as PendingEffect)\n : Object.assign(effect, { __continuation: continuation });\n },\n shuffleSharedZone(args, continuation) {\n const effect = { effectId: mint(), type: \"shuffleSharedZone\" as const, zoneId: args.zoneId };\n return continuation === undefined\n ? (effect as PendingEffect)\n : Object.assign(effect, { __continuation: continuation });\n },\n shufflePlayerZone(args, continuation) {\n const effect = { effectId: mint(), type: \"shufflePlayerZone\" as const, zoneId: args.zoneId, playerId: args.playerId };\n return continuation === undefined\n ? (effect as PendingEffect)\n : Object.assign(effect, { __continuation: continuation });\n },\n };\n}\n\n/**\n * Takes a list of PendingEffects and splits them into the canonical wire\n * shape: `effects[]` (stripped of `__continuation`) + `continuations` map\n * keyed by effectId. Use at the boundary where reduce/dispatch results leave\n * author code and enter the wire.\n */\nexport function materializeAccept(pending: ReadonlyArray<PendingEffect>): {\n effects: Wire.Effect[];\n continuations: Wire.ContinuationMap;\n} {\n const effects: Wire.Effect[] = [];\n const continuations: Wire.ContinuationMap = {};\n for (const pe of pending) {\n const { __continuation, ...effect } = pe as PendingEffect & { __continuation?: Wire.ContinuationToken };\n effects.push(effect as Wire.Effect);\n if (__continuation !== undefined) {\n continuations[(effect as Wire.Effect).effectId] = __continuation;\n }\n }\n return { effects, continuations };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
AUTHORING_METADATA
|
|
3
|
+
} from "./chunk-CSIEFYTC.js";
|
|
4
4
|
import {
|
|
5
5
|
AUTHORITATIVE_GENERATED_FILES,
|
|
6
6
|
SEED_FILES,
|
|
@@ -510,7 +510,7 @@ var GENERATED_WORKSPACE_PATH_PATTERNS = SEED_FILE_PATTERNS;
|
|
|
510
510
|
var MANIFEST_CONFORMANCE_CASES = createManifestConformanceCases();
|
|
511
511
|
var projectAuthoringAdapter = {
|
|
512
512
|
protocolVersion: 1,
|
|
513
|
-
metadata:
|
|
513
|
+
metadata: AUTHORING_METADATA,
|
|
514
514
|
generatedPaths: GENERATED_WORKSPACE_PATHS,
|
|
515
515
|
generatedPathPatterns: GENERATED_WORKSPACE_PATH_PATTERNS,
|
|
516
516
|
manifestConformanceCases: MANIFEST_CONFORMANCE_CASES,
|
|
@@ -529,4 +529,4 @@ export {
|
|
|
529
529
|
MANIFEST_CONFORMANCE_CASES,
|
|
530
530
|
projectAuthoringAdapter
|
|
531
531
|
};
|
|
532
|
-
//# sourceMappingURL=chunk-
|
|
532
|
+
//# sourceMappingURL=chunk-73YISGYO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/authoring/manifest-conformance-cases.ts","../src/authoring/adapter.ts"],"sourcesContent":["import type {\n BoardCard,\n BoardSpec,\n ComponentHomeSpec,\n GameTopologyManifest,\n PieceSeedSpec,\n PieceTypeSpec,\n ZoneSpec,\n} from \"@dreamboard-games/sdk-types\";\nimport type { AuthoringManifestConformanceCaseV1 } from \"./types.js\";\n\nfunction baseManifest(\n cardSet: GameTopologyManifest[\"cardSets\"][number],\n overrides: Partial<GameTopologyManifest> = {},\n): GameTopologyManifest {\n return {\n players: {\n minPlayers: 2,\n maxPlayers: 2,\n optimalPlayers: 2,\n },\n cardSets: [cardSet],\n zones: [],\n boardTemplates: [],\n boards: [],\n pieceTypes: [],\n pieceSeeds: [],\n dieTypes: [],\n dieSeeds: [],\n resources: [],\n setupOptions: [],\n setupProfiles: [],\n ...overrides,\n };\n}\n\nfunction manualCardSet(\n id: string,\n defaultHome: ComponentHomeSpec,\n cards: BoardCard[],\n): GameTopologyManifest[\"cardSets\"][number] {\n const cardSet = {\n id,\n name: id,\n type: \"manual\",\n cardSchema: { properties: {} },\n defaultHome,\n cards,\n };\n return cardSet as unknown as GameTopologyManifest[\"cardSets\"][number];\n}\n\nconst sharedZone: ZoneSpec = {\n id: \"shared-zone\",\n name: \"Shared Zone\",\n scope: \"shared\",\n allowedCardSetIds: [\"cards\"],\n};\n\nconst sharedBoard: BoardSpec = {\n id: \"square-board\",\n name: \"Square Board\",\n layout: \"square\",\n scope: \"shared\",\n spaces: [\n { id: \"a1\", row: 0, col: 0 },\n { id: \"a2\", row: 0, col: 1 },\n { id: \"b1\", row: 1, col: 0 },\n { id: \"b2\", row: 1, col: 1 },\n ],\n relations: [],\n containers: [\n {\n id: \"display-row\",\n name: \"Display Row\",\n host: { type: \"board\" },\n },\n ],\n edges: [],\n vertices: [],\n};\n\nconst sharedTopology: Partial<GameTopologyManifest> = {\n boards: [sharedBoard],\n pieceTypes: [\n {\n id: \"holder\",\n name: \"Holder\",\n slots: [{ id: \"pocket\" }],\n },\n ] satisfies PieceTypeSpec[],\n pieceSeeds: [{ id: \"holder-a\", typeId: \"holder\" }] satisfies PieceSeedSpec[],\n};\n\nconst fixtures = [\n {\n id: \"manual-default-detached\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"detached\" }, [\n { type: \"marker\", name: \"Marker\", count: 1, properties: {} },\n ]),\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"ed6f7ce2ff4fbe697e49134f1d59157cf146e202db29a77be50e8326585f535c\",\n },\n },\n {\n id: \"manual-default-shared-zone\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"zone\", zoneId: \"shared-zone\" }, [\n { type: \"coin\", name: \"Coin\", count: 2, properties: {} },\n ]),\n { zones: [sharedZone] },\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"75028d28dbc415c81db5e2d780d55b04c4db36378a149bc02b0194d94a8cc2b9\",\n },\n },\n {\n id: \"preset-default-shared-zone\",\n manifest: baseManifest(\n {\n id: \"cards\",\n name: \"Preset Cards\",\n type: \"preset\",\n presetId: \"standard_52_deck\",\n defaultHome: { type: \"zone\", zoneId: \"shared-zone\" },\n },\n { zones: [sharedZone] },\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"b3471c577ed266667b16799f75aa9b7358100a94108aa46a31ad16a0291f67ca\",\n },\n },\n {\n id: \"manual-per-card-detached-override\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"zone\", zoneId: \"shared-zone\" }, [\n {\n type: \"removed\",\n name: \"Removed\",\n count: 1,\n home: { type: \"detached\" },\n properties: {},\n },\n ]),\n { zones: [sharedZone] },\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"fdcb2de78fc391e11aca1f266fd8bbb348a82faa0fbbac1d8eb1defd8697a0e9\",\n },\n },\n {\n id: \"manual-per-card-shared-zone-override\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"detached\" }, [\n {\n type: \"dealt\",\n name: \"Dealt\",\n count: 1,\n home: { type: \"zone\", zoneId: \"shared-zone\" },\n properties: {},\n },\n ]),\n { zones: [sharedZone] },\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"b6bee1db85f16e8a12a7136c7d524591f925427c8ec04d64b07905c5bc859d7a\",\n },\n },\n {\n id: \"manual-compatible-zones-no-inference\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"detached\" }, [\n { type: \"token\", name: \"Token\", count: 1, properties: {} },\n ]),\n {\n zones: [\n sharedZone,\n {\n ...sharedZone,\n id: \"second-compatible-zone\",\n name: \"Second Compatible Zone\",\n },\n ],\n },\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"2727728ba3743d2b1874b2bc573b48c88f962fdcbdcdf20c62bed551d6d955c4\",\n },\n },\n {\n id: \"manual-per-player-zone-rejected\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"zone\", zoneId: \"hand\" }, [\n { type: \"secret\", name: \"Secret\", count: 1, properties: {} },\n ]),\n {\n zones: [\n {\n id: \"hand\",\n name: \"Hand\",\n scope: \"perPlayer\",\n allowedCardSetIds: [\"cards\"],\n },\n ],\n },\n ),\n expected: {\n valid: false,\n transportValid: true,\n diagnosticCodes: [\"CARD_HOME_PER_PLAYER_ZONE_REJECTED\"],\n },\n },\n {\n id: \"manual-space-home\",\n manifest: baseManifest(\n manualCardSet(\n \"cards\",\n { type: \"space\", boardId: \"square-board\", spaceId: \"a1\" },\n [{ type: \"space-card\", name: \"Space\", count: 1, properties: {} }],\n ),\n sharedTopology,\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"429abfb3276c67cdca59d3dc077fc73022a9716bccef2c43f6805ff5cce0f2c2\",\n },\n },\n {\n id: \"manual-container-home\",\n manifest: baseManifest(\n manualCardSet(\n \"cards\",\n {\n type: \"container\",\n boardId: \"square-board\",\n containerId: \"display-row\",\n },\n [\n {\n type: \"container-card\",\n name: \"Container\",\n count: 1,\n properties: {},\n },\n ],\n ),\n sharedTopology,\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"eff372263227b316d064a519cf282a6cc1d2d8df4ac04673b7f47ac518d7a2a3\",\n },\n },\n {\n id: \"manual-slot-home\",\n manifest: baseManifest(\n manualCardSet(\n \"cards\",\n {\n type: \"slot\",\n host: { kind: \"piece\", id: \"holder-a\" },\n slotId: \"pocket\",\n },\n [{ type: \"slot-card\", name: \"Slot\", count: 1, properties: {} }],\n ),\n sharedTopology,\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"af3111f8d861ae69b77f2f46ba3df9f2f698f3306c412efc91095544e8121ab6\",\n },\n },\n {\n id: \"manual-edge-home\",\n manifest: baseManifest(\n manualCardSet(\n \"cards\",\n {\n type: \"edge\",\n boardId: \"square-board\",\n ref: { spaces: [\"a1\", \"a2\"] },\n },\n [{ type: \"edge-card\", name: \"Edge\", count: 1, properties: {} }],\n ),\n sharedTopology,\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"f8606ea25f52d9bf801aa4fee9f558b60d7f39bcd601d57bdfccdf1ddbf4c500\",\n },\n },\n {\n id: \"manual-vertex-home\",\n manifest: baseManifest(\n manualCardSet(\n \"cards\",\n {\n type: \"vertex\",\n boardId: \"square-board\",\n ref: { spaces: [\"a1\", \"a2\", \"b1\", \"b2\"] },\n },\n [{ type: \"vertex-card\", name: \"Vertex\", count: 1, properties: {} }],\n ),\n sharedTopology,\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"e84a4920ea8b71052acd42accf11101380ab982e493ebe207113dd4d243034de\",\n },\n },\n {\n id: \"manual-invalid-target-id\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"zone\", zoneId: \"missing-zone\" }, [\n { type: \"lost\", name: \"Lost\", count: 1, properties: {} },\n ]),\n ),\n expected: {\n valid: false,\n transportValid: true,\n diagnosticCodes: [\"AUTHORING_VALIDATION_ERROR\"],\n },\n },\n {\n id: \"manual-count-order\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"zone\", zoneId: \"shared-zone\" }, [\n { type: \"first\", name: \"First\", count: 3, properties: {} },\n { type: \"second\", name: \"Second\", count: 2, properties: {} },\n ]),\n { zones: [sharedZone] },\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"2e4ced71909d4c36053317311c9ceaf3bf3adba875bff3fe9596bbea47746423\",\n },\n },\n {\n id: \"manual-generated-scenario-base\",\n manifest: baseManifest(\n manualCardSet(\"cards\", { type: \"zone\", zoneId: \"shared-zone\" }, [\n { type: \"alpha\", name: \"Alpha\", count: 2, properties: {} },\n { type: \"beta\", name: \"Beta\", count: 1, properties: {} },\n ]),\n { zones: [sharedZone] },\n ),\n expected: {\n valid: true,\n transportValid: true,\n materializedSha256:\n \"b1b65d708b503036a49434c64c6f4aab3bedd295681bd103b69c4b98fdd5e2bb\",\n },\n },\n {\n id: \"manual-default-required\",\n manifest: {\n ...baseManifest(\n manualCardSet(\"cards\", { type: \"detached\" }, [\n { type: \"card\", name: \"Card\", count: 1, properties: {} },\n ]),\n ),\n cardSets: [\n {\n id: \"cards\",\n name: \"Cards\",\n type: \"manual\",\n cardSchema: { properties: {} },\n cards: [{ type: \"card\", name: \"Card\", count: 1, properties: {} }],\n },\n ],\n } as unknown as GameTopologyManifest,\n expected: {\n valid: false,\n transportValid: false,\n diagnosticCodes: [\"MANUAL_CARD_SET_DEFAULT_HOME_REQUIRED\"],\n },\n },\n] as const satisfies readonly (Omit<\n AuthoringManifestConformanceCaseV1,\n \"manifest\"\n> & { manifest: GameTopologyManifest })[];\n\nfunction deepFreeze<T>(value: T): T {\n if (value && typeof value === \"object\" && !Object.isFrozen(value)) {\n for (const entry of Object.values(value)) {\n deepFreeze(entry);\n }\n Object.freeze(value);\n }\n return value;\n}\n\nexport function diagnosticCodesForValidationErrors(\n errors: readonly string[],\n): readonly string[] {\n return [...new Set(errors.map(diagnosticCodeForValidationError))].sort();\n}\n\nfunction diagnosticCodeForValidationError(error: string): string {\n if (\n error.includes(\".defaultHome: Manual card sets must declare defaultHome\")\n ) {\n return \"MANUAL_CARD_SET_DEFAULT_HOME_REQUIRED\";\n }\n if (error.includes(\"cannot target per-player zone\")) {\n return \"CARD_HOME_PER_PLAYER_ZONE_REJECTED\";\n }\n if (error.includes(\"cannot target per-player board\")) {\n return \"CARD_HOME_PER_PLAYER_BOARD_REJECTED\";\n }\n return \"AUTHORING_VALIDATION_ERROR\";\n}\n\nexport function createManifestConformanceCases(): readonly AuthoringManifestConformanceCaseV1[] {\n return deepFreeze(\n fixtures,\n ) as unknown as readonly AuthoringManifestConformanceCaseV1[];\n}\n","import { createHash } from \"node:crypto\";\nimport type {\n GameTopologyManifest,\n JsonValue,\n} from \"@dreamboard-games/sdk-types\";\nimport {\n AUTHORITATIVE_GENERATED_FILES,\n SEED_FILES,\n SEED_FILE_PATTERNS,\n generateAuthoritativeFiles,\n generateSeedFiles,\n materializeManifestTable,\n validateManifestAuthoring,\n} from \"@dreamboard-games/workspace-codegen\";\nimport { AUTHORING_METADATA } from \"./metadata.js\";\nimport {\n createManifestConformanceCases,\n diagnosticCodesForValidationErrors,\n} from \"./manifest-conformance-cases.js\";\nimport type {\n AuthoringValidationResultV1,\n GeneratedArtifactV1,\n ProjectAuthoringAdapterV1,\n} from \"./types.js\";\n\nconst PLAYER_IDS = [\"player-1\", \"player-2\"] as const;\n\nfunction stableJson(value: unknown): string {\n if (value === undefined) {\n return \"null\";\n }\n if (value === null || typeof value !== \"object\") {\n return JSON.stringify(value);\n }\n if (Array.isArray(value)) {\n return `[${value.map((item) => stableJson(item)).join(\",\")}]`;\n }\n return `{${Object.entries(value as Record<string, unknown>)\n .filter(([, entry]) => entry !== undefined)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entry]) => `${JSON.stringify(key)}:${stableJson(entry)}`)\n .join(\",\")}}`;\n}\n\nexport function sha256(value: string): string {\n return createHash(\"sha256\").update(value).digest(\"hex\");\n}\n\nfunction assertManifest(manifest: unknown): GameTopologyManifest {\n if (!manifest || typeof manifest !== \"object\") {\n throw new Error(\"Expected a manifest object.\");\n }\n return manifest as GameTopologyManifest;\n}\n\nfunction normalizeArtifact(\n path: string,\n content: string,\n ownership: GeneratedArtifactV1[\"ownership\"],\n): GeneratedArtifactV1 {\n if (\n path.length === 0 ||\n path.startsWith(\"/\") ||\n path.includes(\"\\\\\") ||\n path\n .split(\"/\")\n .some((segment) => !segment || segment === \".\" || segment === \"..\")\n ) {\n throw new Error(`Generated artifact path '${path}' is not normalized.`);\n }\n return {\n path,\n ownership,\n content,\n contentSha256: sha256(content),\n };\n}\n\nfunction normalizeArtifacts(\n entries: Record<string, string>,\n ownership: GeneratedArtifactV1[\"ownership\"],\n): GeneratedArtifactV1[] {\n return Object.entries(entries)\n .map(([path, content]) => normalizeArtifact(path, content, ownership))\n .sort((left, right) => left.path.localeCompare(right.path));\n}\n\nfunction validateNoDuplicateArtifactPaths(\n artifacts: readonly GeneratedArtifactV1[],\n): void {\n const seen = new Set<string>();\n for (const artifact of artifacts) {\n if (seen.has(artifact.path)) {\n throw new Error(\n `Generated artifact path '${artifact.path}' was emitted twice.`,\n );\n }\n seen.add(artifact.path);\n if (artifact.contentSha256 !== sha256(artifact.content)) {\n throw new Error(\n `Generated artifact '${artifact.path}' has a stale hash.`,\n );\n }\n }\n}\n\nexport function validateManifest(\n manifest: unknown,\n): AuthoringValidationResultV1 {\n try {\n const gameManifest = assertManifest(manifest);\n const result = validateManifestAuthoring(gameManifest);\n const errors = [...result.errors];\n if (errors.length === 0) {\n try {\n materializeManifest(gameManifest);\n } catch (error) {\n errors.push(error instanceof Error ? error.message : String(error));\n }\n }\n return {\n valid: errors.length === 0,\n errors,\n warnings: result.warnings,\n };\n } catch (error) {\n return {\n valid: false,\n errors: [error instanceof Error ? error.message : String(error)],\n warnings: [],\n };\n }\n}\n\nexport function materializeManifest(manifest: unknown): JsonValue {\n return materializeManifestTable({\n manifest: assertManifest(manifest),\n playerIds: PLAYER_IDS,\n shuffleItems: (values) => [...values],\n }) as JsonValue;\n}\n\nexport function generateWorkspaceArtifacts(\n manifest: unknown,\n): readonly GeneratedArtifactV1[] {\n const gameManifest = assertManifest(manifest);\n const artifacts = [\n ...normalizeArtifacts(\n generateAuthoritativeFiles(gameManifest),\n \"authoritative\",\n ),\n ...normalizeArtifacts(generateSeedFiles(gameManifest), \"seed\"),\n ].sort((left, right) => left.path.localeCompare(right.path));\n validateNoDuplicateArtifactPaths(artifacts);\n return artifacts;\n}\n\nexport const GENERATED_WORKSPACE_PATHS = [\n ...AUTHORITATIVE_GENERATED_FILES,\n ...SEED_FILES,\n] as const;\n\nexport type GeneratedWorkspacePathPattern = {\n readonly prefix: string;\n readonly suffix: string;\n};\n\nexport const GENERATED_WORKSPACE_PATH_PATTERNS: readonly GeneratedWorkspacePathPattern[] =\n SEED_FILE_PATTERNS;\n\nexport const MANIFEST_CONFORMANCE_CASES = createManifestConformanceCases();\n\nexport const projectAuthoringAdapter: ProjectAuthoringAdapterV1 = {\n protocolVersion: 1,\n metadata: AUTHORING_METADATA,\n generatedPaths: GENERATED_WORKSPACE_PATHS,\n generatedPathPatterns: GENERATED_WORKSPACE_PATH_PATTERNS,\n manifestConformanceCases: MANIFEST_CONFORMANCE_CASES,\n validateManifest,\n materializeManifest,\n generateWorkspaceArtifacts,\n};\n\nexport { diagnosticCodesForValidationErrors, stableJson };\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
zod_exports
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3VSOH3TZ.js";
|
|
4
4
|
|
|
5
5
|
// src/reducer/model/manifest.ts
|
|
6
6
|
import { z } from "zod";
|
|
@@ -2900,4 +2900,4 @@ export {
|
|
|
2900
2900
|
collectReducerDefinitionIndex,
|
|
2901
2901
|
applySetupBootstrap
|
|
2902
2902
|
};
|
|
2903
|
-
//# sourceMappingURL=chunk-
|
|
2903
|
+
//# sourceMappingURL=chunk-7QKE5BFU.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createReducerBundle
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WASWAYYX.js";
|
|
4
4
|
import {
|
|
5
5
|
createClientParamSchemasByPhase
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TO6WRLRN.js";
|
|
7
7
|
import {
|
|
8
8
|
manifestSchemaFamily
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7QKE5BFU.js";
|
|
10
10
|
import {
|
|
11
11
|
digestPluginRuntimeJson,
|
|
12
12
|
encodeCanonicalPluginRuntimeJson
|
|
@@ -1861,4 +1861,4 @@ export {
|
|
|
1861
1861
|
digestScenarioJson,
|
|
1862
1862
|
compareCanonicalScenarioJson
|
|
1863
1863
|
};
|
|
1864
|
-
//# sourceMappingURL=chunk-
|
|
1864
|
+
//# sourceMappingURL=chunk-CHOXM43O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/authoring/metadata.ts"],"sourcesContent":["import type { AuthoringMetadataV1 } from \"./types.js\";\n\ndeclare const __DREAMBOARD_SDK_VERSION__: string;\n\nexport const AUTHORING_METADATA = {\n sdkVersion:\n typeof __DREAMBOARD_SDK_VERSION__ === \"string\"\n ? __DREAMBOARD_SDK_VERSION__\n : \"0.0.0-development\",\n} as const satisfies AuthoringMetadataV1;\n"],"mappings":";AAIO,IAAM,qBAAqB;AAAA,EAChC,YACE,OACI,mBACA;AACR;","names":[]}
|