@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.
Files changed (81) hide show
  1. package/README.md +29 -11
  2. package/dist/authoring/index.d.ts +3 -6
  3. package/dist/authoring/index.js +2 -2
  4. package/dist/authoring-compiler.d.ts +3 -3
  5. package/dist/authoring-compiler.js +3 -4
  6. package/dist/authoring-materialize-cli.js +5 -6
  7. package/dist/authoring-materialize-cli.js.map +1 -1
  8. package/dist/browser-interaction.d.ts +21 -21
  9. package/dist/{chunk-3PFDHTR7.js → chunk-3VSOH3TZ.js} +29 -2
  10. package/dist/chunk-3VSOH3TZ.js.map +1 -0
  11. package/dist/{chunk-OFIDC7DJ.js → chunk-73YISGYO.js} +4 -4
  12. package/dist/chunk-73YISGYO.js.map +1 -0
  13. package/dist/{chunk-YNW3KBDE.js → chunk-7QKE5BFU.js} +2 -2
  14. package/dist/{chunk-KZFHTUI5.js → chunk-CHOXM43O.js} +4 -4
  15. package/dist/chunk-CSIEFYTC.js +9 -0
  16. package/dist/chunk-CSIEFYTC.js.map +1 -0
  17. package/dist/{chunk-MLFHVYF7.js → chunk-KH6AET7P.js} +4 -4
  18. package/dist/chunk-KH6AET7P.js.map +1 -0
  19. package/dist/{chunk-MPVC2SU6.js → chunk-LMHCGCA6.js} +2 -2
  20. package/dist/{chunk-WAQUD4IG.js → chunk-NLZDRIVW.js} +16 -16
  21. package/dist/{chunk-5XTAQ4EQ.js → chunk-TO6WRLRN.js} +2 -2
  22. package/dist/{chunk-42HQLHVA.js → chunk-VJVKGWHW.js} +4 -7
  23. package/dist/chunk-VJVKGWHW.js.map +1 -0
  24. package/dist/{chunk-YOLIZMXR.js → chunk-VRRR6QZT.js} +3 -3
  25. package/dist/{chunk-YOLIZMXR.js.map → chunk-VRRR6QZT.js.map} +1 -1
  26. package/dist/{chunk-XDGRC6OR.js → chunk-WASWAYYX.js} +3 -3
  27. package/dist/{chunk-7JBPOJOF.js → chunk-ZGQGFXFG.js} +9 -9
  28. package/dist/{index.d-C7Ztirg6.d.ts → index.d-90ms7Mwh.d.ts} +124 -115
  29. package/dist/index.js +2 -2
  30. package/dist/package-set.d.ts +2 -2
  31. package/dist/package-set.js +2 -2
  32. package/dist/reducer/advanced.js +3 -3
  33. package/dist/reducer-contract.d.ts +1 -1
  34. package/dist/reducer-contract.js +3 -1
  35. package/dist/reducer.d.ts +1 -1
  36. package/dist/reducer.js +3 -3
  37. package/dist/reference-games/index.d.ts +29 -11
  38. package/dist/reference-games/index.js +43 -45
  39. package/dist/reference-games/index.js.map +1 -1
  40. package/dist/runtime/primitives.js +4 -4
  41. package/dist/runtime/workspace-contract.js +8 -8
  42. package/dist/runtime.js +12 -12
  43. package/dist/testing-compiler.d.ts +1 -1
  44. package/dist/testing-compiler.js +1 -4
  45. package/dist/testing-compiler.js.map +1 -1
  46. package/dist/testing-runtime.d.ts +3 -3
  47. package/dist/testing-runtime.js +5 -5
  48. package/dist/testing.d.ts +5 -140
  49. package/dist/testing.js +5 -450
  50. package/dist/testing.js.map +1 -1
  51. package/dist/{types-B-FI0jrx.d.ts → types-Cs_Jp0cf.d.ts} +1 -1
  52. package/dist/ui/components.js +1 -1
  53. package/dist/ui.js +2 -2
  54. package/package.json +22 -29
  55. package/REFERENCE.md +0 -25375
  56. package/dist/chunk-3PFDHTR7.js.map +0 -1
  57. package/dist/chunk-42HQLHVA.js.map +0 -1
  58. package/dist/chunk-MLFHVYF7.js.map +0 -1
  59. package/dist/chunk-OFIDC7DJ.js.map +0 -1
  60. package/dist/chunk-THWT4V3Z.js +0 -12
  61. package/dist/chunk-THWT4V3Z.js.map +0 -1
  62. package/dist/chunk-UNVCT5Z7.js +0 -73
  63. package/dist/chunk-UNVCT5Z7.js.map +0 -1
  64. package/dist/chunk-UTSBXZAM.js +0 -435
  65. package/dist/chunk-UTSBXZAM.js.map +0 -1
  66. package/dist/chunk-YN5W67YL.js +0 -174
  67. package/dist/chunk-YN5W67YL.js.map +0 -1
  68. package/dist/reference-game-compiler.d.ts +0 -45
  69. package/dist/reference-game-compiler.js +0 -25
  70. package/dist/reference-game-compiler.js.map +0 -1
  71. package/dist/reference-game-source-manifest-cli.d.ts +0 -1
  72. package/dist/reference-game-source-manifest-cli.js +0 -84
  73. package/dist/reference-game-source-manifest-cli.js.map +0 -1
  74. package/dist/schema-CJc0UfjJ.d.ts +0 -216
  75. /package/dist/{chunk-YNW3KBDE.js.map → chunk-7QKE5BFU.js.map} +0 -0
  76. /package/dist/{chunk-KZFHTUI5.js.map → chunk-CHOXM43O.js.map} +0 -0
  77. /package/dist/{chunk-MPVC2SU6.js.map → chunk-LMHCGCA6.js.map} +0 -0
  78. /package/dist/{chunk-WAQUD4IG.js.map → chunk-NLZDRIVW.js.map} +0 -0
  79. /package/dist/{chunk-5XTAQ4EQ.js.map → chunk-TO6WRLRN.js.map} +0 -0
  80. /package/dist/{chunk-XDGRC6OR.js.map → chunk-WASWAYYX.js.map} +0 -0
  81. /package/dist/{chunk-7JBPOJOF.js.map → chunk-ZGQGFXFG.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
- GENERATED_AUTHORING_METADATA
3
- } from "./chunk-THWT4V3Z.js";
2
+ AUTHORING_METADATA
3
+ } from "./chunk-CSIEFYTC.js";
4
4
 
5
5
  // src/package-set.ts
6
- var DREAMBOARD_SDK_VERSION = GENERATED_AUTHORING_METADATA.sdkVersion;
6
+ var DREAMBOARD_SDK_VERSION = AUTHORING_METADATA.sdkVersion;
7
7
  var DREAMBOARD_SDK_PACKAGES = {
8
8
  "@dreamboard-games/sdk": DREAMBOARD_SDK_VERSION
9
9
  };
@@ -18,4 +18,4 @@ export {
18
18
  DREAMBOARD_SDK_PACKAGES,
19
19
  DREAMBOARD_SDK_PACKAGE_SET
20
20
  };
21
- //# sourceMappingURL=chunk-MLFHVYF7.js.map
21
+ //# sourceMappingURL=chunk-KH6AET7P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/package-set.ts"],"sourcesContent":["import { AUTHORING_METADATA } from \"./authoring/metadata.js\";\n\nexport const DREAMBOARD_SDK_VERSION = AUTHORING_METADATA.sdkVersion;\n\nexport const DREAMBOARD_SDK_PACKAGES = {\n \"@dreamboard-games/sdk\": DREAMBOARD_SDK_VERSION,\n} as const;\n\nexport type DreamboardSdkPackageName = keyof typeof DREAMBOARD_SDK_PACKAGES;\n\nexport type DreamboardSdkPackageSet = {\n version: 1;\n sdkVersion: string;\n packages: Record<DreamboardSdkPackageName, string>;\n};\n\nexport const DREAMBOARD_SDK_PACKAGE_SET: DreamboardSdkPackageSet = {\n version: 1,\n sdkVersion: DREAMBOARD_SDK_VERSION,\n packages: DREAMBOARD_SDK_PACKAGES,\n};\n"],"mappings":";;;;;AAEO,IAAM,yBAAyB,mBAAmB;AAElD,IAAM,0BAA0B;AAAA,EACrC,yBAAyB;AAC3B;AAUO,IAAM,6BAAsD;AAAA,EACjE,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AACZ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useTheme
3
- } from "./chunk-YOLIZMXR.js";
3
+ } from "./chunk-VRRR6QZT.js";
4
4
 
5
5
  // src/ui/helpers/track-board.ts
6
6
  function positionForLayout(layout, index, count) {
@@ -101,4 +101,4 @@ export {
101
101
  parseHexColor,
102
102
  hexColor
103
103
  };
104
- //# sourceMappingURL=chunk-MPVC2SU6.js.map
104
+ //# sourceMappingURL=chunk-LMHCGCA6.js.map
@@ -1,3 +1,17 @@
1
+ import {
2
+ defaultRuntimeSnapshotEquality,
3
+ useArmedInteraction,
4
+ useAuthoredPluginGameplayFrameSelector,
5
+ useInteractionDraft,
6
+ useInteractionSubmitting,
7
+ useInteractionUiStore,
8
+ usePendingInteractionKey,
9
+ usePendingInteractionRevision,
10
+ usePluginGameplayFrameSelector,
11
+ usePluginSession,
12
+ usePluginSessionDescriptor,
13
+ useRuntimeContext
14
+ } from "./chunk-B33RRZ4O.js";
1
15
  import {
2
16
  CardDragSurface,
3
17
  CardDropTargetView,
@@ -19,25 +33,11 @@ import {
19
33
  useOverlayInsets,
20
34
  useTheme,
21
35
  useThemeCssVars
22
- } from "./chunk-YOLIZMXR.js";
36
+ } from "./chunk-VRRR6QZT.js";
23
37
  import {
24
38
  composeEventHandlers,
25
39
  renderPrimitive
26
40
  } from "./chunk-VDXOF4FW.js";
27
- import {
28
- defaultRuntimeSnapshotEquality,
29
- useArmedInteraction,
30
- useAuthoredPluginGameplayFrameSelector,
31
- useInteractionDraft,
32
- useInteractionSubmitting,
33
- useInteractionUiStore,
34
- usePendingInteractionKey,
35
- usePendingInteractionRevision,
36
- usePluginGameplayFrameSelector,
37
- usePluginSession,
38
- usePluginSessionDescriptor,
39
- useRuntimeContext
40
- } from "./chunk-B33RRZ4O.js";
41
41
  import {
42
42
  createGameplayActuatorAttributes,
43
43
  createGameplayInteractionRootAttributes,
@@ -5957,4 +5957,4 @@ export {
5957
5957
  DiceValues,
5958
5958
  Dice
5959
5959
  };
5960
- //# sourceMappingURL=chunk-WAQUD4IG.js.map
5960
+ //# sourceMappingURL=chunk-NLZDRIVW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  collectReducerDefinitionIndex
3
- } from "./chunk-YNW3KBDE.js";
3
+ } from "./chunk-7QKE5BFU.js";
4
4
 
5
5
  // src/reducer/client-param-schemas.ts
6
6
  import { z } from "zod";
@@ -29,4 +29,4 @@ function createClientParamSchemasByPhase(definition) {
29
29
  export {
30
30
  createClientParamSchemasByPhase
31
31
  };
32
- //# sourceMappingURL=chunk-5XTAQ4EQ.js.map
32
+ //# sourceMappingURL=chunk-TO6WRLRN.js.map
@@ -1,9 +1,6 @@
1
1
  import {
2
2
  generateWorkspaceArtifacts
3
- } from "./chunk-OFIDC7DJ.js";
4
- import {
5
- compareReferenceGameCanonicalStrings
6
- } from "./chunk-UNVCT5Z7.js";
3
+ } from "./chunk-73YISGYO.js";
7
4
  import {
8
5
  WORKSPACE_CODEGEN_OWNERSHIP
9
6
  } from "./chunk-HIH6Y4FA.js";
@@ -52,7 +49,7 @@ async function materializeWorkspace(options) {
52
49
  const actual = createHash("sha256").update(bytes).digest("hex");
53
50
  if (actual !== artifact.contentSha256) {
54
51
  throw new Error(
55
- `Generated ${artifact.path} digest does not match its SDK receipt.`
52
+ `Generated ${artifact.path} digest does not match its declared digest.`
56
53
  );
57
54
  }
58
55
  records.push({
@@ -62,7 +59,7 @@ async function materializeWorkspace(options) {
62
59
  });
63
60
  }
64
61
  records.sort(
65
- (left, right) => compareReferenceGameCanonicalStrings(left.path, right.path)
62
+ (left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0
66
63
  );
67
64
  return {
68
65
  schemaVersion: 1,
@@ -166,4 +163,4 @@ async function isFile(filePath) {
166
163
  export {
167
164
  materializeWorkspace
168
165
  };
169
- //# sourceMappingURL=chunk-42HQLHVA.js.map
166
+ //# sourceMappingURL=chunk-VJVKGWHW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/authoring/materialize-workspace.ts"],"sourcesContent":["import { createHash, randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rename, rm, stat, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { WORKSPACE_CODEGEN_OWNERSHIP } from \"@dreamboard-games/workspace-codegen\";\nimport { build } from \"esbuild\";\nimport { generateWorkspaceArtifacts } from \"./adapter.js\";\n\nexport type MaterializeWorkspaceOptions = {\n readonly manifestPath: string;\n readonly projectRoot?: string;\n /** Scaffolding-only. Existing build/test paths leave seed files untouched. */\n readonly writeMissingSeeds?: boolean;\n};\n\nexport type MaterializedWorkspaceResult = {\n readonly schemaVersion: 1;\n readonly projectRoot: string;\n readonly authoritativeFiles: number;\n readonly seededFiles: number;\n readonly artifacts: readonly {\n readonly path: string;\n readonly ownership: \"authoritative\";\n readonly sha256: `sha256:${string}`;\n }[];\n readonly digest: `sha256:${string}`;\n};\n\ntype ManifestModule = {\n readonly default?: unknown;\n readonly manifest?: unknown;\n};\n\nconst authoritativePaths = new Set(\n WORKSPACE_CODEGEN_OWNERSHIP.dynamic.generatedFiles,\n);\n\n/**\n * Materialize SDK-owned workspace contracts from authored manifest source.\n * Authoritative files are always replaced. Seed files are untouched unless a\n * scaffolding caller explicitly opts in. No test state or projection artifact\n * is emitted.\n */\nexport async function materializeWorkspace(\n options: MaterializeWorkspaceOptions,\n): Promise<MaterializedWorkspaceResult> {\n const projectRoot = path.resolve(options.projectRoot ?? process.cwd());\n const manifestPath = resolveProjectPath(projectRoot, options.manifestPath);\n if (!(await isFile(manifestPath))) {\n throw new Error(`Manifest source does not exist: ${manifestPath}.`);\n }\n const manifest = await loadManifest({ manifestPath, projectRoot });\n const artifacts = generateWorkspaceArtifacts(manifest);\n const emittedAuthoritative = new Set(\n artifacts\n .filter(({ ownership }) => ownership === \"authoritative\")\n .map(({ path: artifactPath }) => artifactPath),\n );\n assertExactAuthoritativeInventory(emittedAuthoritative);\n\n let seededFiles = 0;\n const records: Array<{\n readonly path: string;\n readonly ownership: \"authoritative\";\n readonly sha256: `sha256:${string}`;\n }> = [];\n for (const artifact of artifacts) {\n const destination = resolveProjectPath(projectRoot, artifact.path);\n if (artifact.ownership === \"seed\") {\n if (!options.writeMissingSeeds || (await isFile(destination))) {\n continue;\n }\n }\n await mkdir(path.dirname(destination), { recursive: true });\n if (artifact.ownership === \"authoritative\") {\n await writeAuthoritativeFile(destination, artifact.content);\n } else {\n await writeFile(destination, artifact.content);\n }\n if (artifact.ownership === \"seed\") {\n seededFiles += 1;\n continue;\n }\n const bytes = await readFile(destination);\n const actual = createHash(\"sha256\").update(bytes).digest(\"hex\");\n if (actual !== artifact.contentSha256) {\n throw new Error(\n `Generated ${artifact.path} digest does not match its declared digest.`,\n );\n }\n records.push({\n path: artifact.path,\n ownership: \"authoritative\",\n sha256: `sha256:${actual}`,\n });\n }\n records.sort((left, right) =>\n left.path < right.path ? -1 : left.path > right.path ? 1 : 0,\n );\n return {\n schemaVersion: 1,\n projectRoot,\n authoritativeFiles: records.length,\n seededFiles,\n artifacts: records,\n digest: `sha256:${createHash(\"sha256\")\n .update(JSON.stringify(records))\n .digest(\"hex\")}`,\n };\n}\n\nasync function loadManifest(options: {\n readonly manifestPath: string;\n readonly projectRoot: string;\n}): Promise<unknown> {\n const typesEntry = await resolveCurrentSdkTypesFacade();\n const entryPath = path.join(\n options.projectRoot,\n \"node_modules/.cache/dreamboard-workspace-compiler\",\n `manifest-${process.pid}-${randomUUID()}.mjs`,\n );\n await mkdir(path.dirname(entryPath), { recursive: true });\n try {\n const result = await build({\n entryPoints: [options.manifestPath],\n outfile: entryPath,\n absWorkingDir: options.projectRoot,\n bundle: true,\n format: \"esm\",\n platform: \"node\",\n target: \"node24\",\n alias: {\n \"@dreamboard-games/sdk/types\": typesEntry,\n },\n sourcemap: \"inline\",\n logLevel: \"silent\",\n });\n void result;\n const loaded = (await import(\n pathToFileURL(entryPath).href\n )) as ManifestModule;\n const manifest = loaded.manifest ?? loaded.default;\n if (!manifest || typeof manifest !== \"object\") {\n throw new Error(\"Manifest source must export a manifest object.\");\n }\n return manifest;\n } finally {\n await rm(entryPath, { force: true });\n }\n}\n\nasync function resolveCurrentSdkTypesFacade(): Promise<string> {\n const candidates = [\n path.resolve(import.meta.dirname, \"../types.ts\"),\n path.resolve(import.meta.dirname, \"types.js\"),\n ];\n for (const candidate of candidates) {\n if (await isFile(candidate)) return candidate;\n }\n throw new Error(\n `Could not resolve the current @dreamboard-games/sdk/types facade from ${import.meta.dirname}.`,\n );\n}\n\nasync function writeAuthoritativeFile(\n destination: string,\n content: string,\n): Promise<void> {\n const temporaryPath = path.join(\n path.dirname(destination),\n `.${path.basename(destination)}.${process.pid}.${randomUUID()}.tmp`,\n );\n try {\n await writeFile(temporaryPath, content);\n await rename(temporaryPath, destination);\n } finally {\n await rm(temporaryPath, { force: true });\n }\n}\n\nfunction assertExactAuthoritativeInventory(emitted: ReadonlySet<string>): void {\n const missing = [...authoritativePaths].filter(\n (value) => !emitted.has(value),\n );\n const unexpected = [...emitted].filter(\n (value) => !authoritativePaths.has(value),\n );\n if (missing.length > 0 || unexpected.length > 0) {\n throw new Error(\n `SDK workspace ownership mismatch (missing: ${missing.join(\", \") || \"none\"}; unexpected: ${unexpected.join(\", \") || \"none\"}).`,\n );\n }\n}\n\nfunction resolveProjectPath(projectRoot: string, value: string): string {\n if (\n typeof value !== \"string\" ||\n value.length === 0 ||\n path.isAbsolute(value) ||\n value.split(/[\\\\/]+/).some((segment) => segment === \"..\")\n ) {\n throw new Error(`Workspace path must be project-relative: ${value}.`);\n }\n const resolved = path.resolve(projectRoot, value);\n if (!resolved.startsWith(`${projectRoot}${path.sep}`)) {\n throw new Error(`Workspace path escapes the project root: ${value}.`);\n }\n return resolved;\n}\n\nasync function isFile(filePath: string): Promise<boolean> {\n return stat(filePath)\n .then((value) => value.isFile())\n .catch((error: unknown) => {\n if (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n error.code === \"ENOENT\"\n ) {\n return false;\n }\n throw error;\n });\n}\n"],"mappings":"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","names":[]}
@@ -7844,8 +7844,8 @@ function renderHeadline({
7844
7844
  return /* @__PURE__ */ jsxs18(
7845
7845
  motion8.div,
7846
7846
  {
7847
- initial: reducedMotion ? { opacity: 0 } : { opacity: 0, y: -4 },
7848
- animate: reducedMotion ? { opacity: 1 } : { opacity: 1, y: 0 },
7847
+ initial: reducedMotion ? false : { opacity: 0, y: -4 },
7848
+ animate: { opacity: 1, y: 0 },
7849
7849
  style: {
7850
7850
  display: "flex",
7851
7851
  alignItems: "center",
@@ -11938,4 +11938,4 @@ export {
11938
11938
  HexGrid,
11939
11939
  createHexBoardView
11940
11940
  };
11941
- //# sourceMappingURL=chunk-YOLIZMXR.js.map
11941
+ //# sourceMappingURL=chunk-VRRR6QZT.js.map