@dreamboard-games/cli 0.1.30-alpha.16 → 0.1.30-alpha.18

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 (80) hide show
  1. package/README.md +3 -1
  2. package/dist/agent-verifier/agent-workspace-verifier.mjs +12 -12
  3. package/dist/agent-verifier/{chunk-LKQ557TJ.mjs → chunk-334H4LE4.mjs} +3 -3
  4. package/dist/agent-verifier/{chunk-H3XNWKJU.mjs → chunk-7LFDFXLS.mjs} +2 -2
  5. package/dist/agent-verifier/{chunk-DWLTCUUX.mjs → chunk-7MAOGFFP.mjs} +6 -6
  6. package/dist/agent-verifier/{chunk-CO3BRUD6.mjs → chunk-AG5J3SMN.mjs} +11 -3
  7. package/dist/agent-verifier/chunk-AG5J3SMN.mjs.map +1 -0
  8. package/dist/agent-verifier/{chunk-AXXUGU7Q.mjs → chunk-AQ6UQHPT.mjs} +4 -30
  9. package/dist/agent-verifier/chunk-AQ6UQHPT.mjs.map +1 -0
  10. package/dist/agent-verifier/{chunk-A67WUYN2.mjs → chunk-B42OHJNY.mjs} +3 -3
  11. package/dist/agent-verifier/{chunk-V6AQDR7W.mjs → chunk-HUBV22JQ.mjs} +3 -3
  12. package/dist/agent-verifier/chunk-HUBV22JQ.mjs.map +1 -0
  13. package/dist/agent-verifier/{chunk-5GCZZ6NW.mjs → chunk-JB7VXCMB.mjs} +2 -2
  14. package/dist/agent-verifier/{chunk-WAFBU5U7.mjs → chunk-OJFZVGEL.mjs} +38 -13
  15. package/dist/agent-verifier/chunk-OJFZVGEL.mjs.map +1 -0
  16. package/dist/agent-verifier/{chunk-G2ECODRB.mjs → chunk-PLXXH5LY.mjs} +2 -2
  17. package/dist/agent-verifier/{chunk-655VJLXA.mjs → chunk-PWPOLHTW.mjs} +9 -12
  18. package/dist/agent-verifier/chunk-PWPOLHTW.mjs.map +1 -0
  19. package/dist/agent-verifier/{chunk-DPYC2NDB.mjs → chunk-RCYO6HWW.mjs} +2 -2
  20. package/dist/agent-verifier/{chunk-NFL3Z4Z7.mjs → chunk-RP7ZWFVH.mjs} +12 -8
  21. package/dist/agent-verifier/{chunk-NFL3Z4Z7.mjs.map → chunk-RP7ZWFVH.mjs.map} +1 -1
  22. package/dist/agent-verifier/{compile-4VSMC275.mjs → compile-VOBO2I6D.mjs} +12 -12
  23. package/dist/agent-verifier/{global-config-6UGFPLDA.mjs → global-config-L7PLLUK5.mjs} +3 -3
  24. package/dist/agent-verifier/{keychain-backend-BQLW5VEC.mjs → keychain-backend-UF3Z26JM.mjs} +1 -1
  25. package/dist/agent-verifier/keychain-backend-UF3Z26JM.mjs.map +1 -0
  26. package/dist/agent-verifier/{local-files-WPHUV6GU.mjs → local-files-DAFIR7SN.mjs} +4 -4
  27. package/dist/agent-verifier/{materialize-workspace-CV2JNXLU.mjs → materialize-workspace-PAC75NSP.mjs} +6 -6
  28. package/dist/agent-verifier/{reducer-native-test-harness-GY2CCQWN.mjs → reducer-native-test-harness-HSXRUGOR.mjs} +8 -8
  29. package/dist/agent-verifier/{static-scaffold-DJJRKMNB.mjs → static-scaffold-KSOTKJNQ.mjs} +4 -4
  30. package/dist/agent-verifier/{sync-YWK4SPWV.mjs → sync-MQJJEZAA.mjs} +13 -13
  31. package/dist/agent-verifier/{test-LQAGEQLY.mjs → test-R6HC6CYZ.mjs} +11 -11
  32. package/dist/agent-verifier/{workspace-codegen-4IWICKLB.mjs → workspace-codegen-SPPVHURX.mjs} +3 -3
  33. package/dist/authoring-compatibility-internal.js +1 -1
  34. package/dist/{chunk-2R4L2YDX.js → chunk-2WB3DYW4.js} +17 -8
  35. package/dist/chunk-2WB3DYW4.js.map +1 -0
  36. package/dist/{chunk-PW7D2W5S.js → chunk-2XMBZPL5.js} +45 -23
  37. package/dist/{chunk-PW7D2W5S.js.map → chunk-2XMBZPL5.js.map} +1 -1
  38. package/dist/{chunk-AVOAT522.js → chunk-J3CWZHY7.js} +4 -30
  39. package/dist/chunk-J3CWZHY7.js.map +1 -0
  40. package/dist/{global-config-NLGAFSRU.js → global-config-VQWFTIAV.js} +2 -2
  41. package/dist/index.js +5 -5
  42. package/dist/internal.js +3 -3
  43. package/dist/{keychain-backend-47LZ5IX5.js → keychain-backend-GO34KGTG.js} +1 -1
  44. package/dist/keychain-backend-GO34KGTG.js.map +1 -0
  45. package/package.json +1 -1
  46. package/release/authoring-release-set.json +4 -4
  47. package/skills/dreamboard/SKILL.md +8 -0
  48. package/skills/dreamboard/references/building-your-first-game.md +37 -15
  49. package/skills/dreamboard/references/canonical-concepts.md +74 -0
  50. package/skills/dreamboard/references/game-interface.md +15 -2
  51. package/skills/dreamboard/references/manifest-authoring.md +8 -0
  52. package/skills/dreamboard/references/reducer.md +47 -2
  53. package/skills/dreamboard/references/rule-authoring.md +10 -0
  54. package/skills/dreamboard/references/testing.md +7 -3
  55. package/dist/agent-verifier/chunk-655VJLXA.mjs.map +0 -1
  56. package/dist/agent-verifier/chunk-AXXUGU7Q.mjs.map +0 -1
  57. package/dist/agent-verifier/chunk-CO3BRUD6.mjs.map +0 -1
  58. package/dist/agent-verifier/chunk-V6AQDR7W.mjs.map +0 -1
  59. package/dist/agent-verifier/chunk-WAFBU5U7.mjs.map +0 -1
  60. package/dist/agent-verifier/keychain-backend-BQLW5VEC.mjs.map +0 -1
  61. package/dist/chunk-2R4L2YDX.js.map +0 -1
  62. package/dist/chunk-AVOAT522.js.map +0 -1
  63. package/dist/keychain-backend-47LZ5IX5.js.map +0 -1
  64. /package/dist/agent-verifier/{chunk-LKQ557TJ.mjs.map → chunk-334H4LE4.mjs.map} +0 -0
  65. /package/dist/agent-verifier/{chunk-H3XNWKJU.mjs.map → chunk-7LFDFXLS.mjs.map} +0 -0
  66. /package/dist/agent-verifier/{chunk-DWLTCUUX.mjs.map → chunk-7MAOGFFP.mjs.map} +0 -0
  67. /package/dist/agent-verifier/{chunk-A67WUYN2.mjs.map → chunk-B42OHJNY.mjs.map} +0 -0
  68. /package/dist/agent-verifier/{chunk-5GCZZ6NW.mjs.map → chunk-JB7VXCMB.mjs.map} +0 -0
  69. /package/dist/agent-verifier/{chunk-G2ECODRB.mjs.map → chunk-PLXXH5LY.mjs.map} +0 -0
  70. /package/dist/agent-verifier/{chunk-DPYC2NDB.mjs.map → chunk-RCYO6HWW.mjs.map} +0 -0
  71. /package/dist/agent-verifier/{compile-4VSMC275.mjs.map → compile-VOBO2I6D.mjs.map} +0 -0
  72. /package/dist/agent-verifier/{global-config-6UGFPLDA.mjs.map → global-config-L7PLLUK5.mjs.map} +0 -0
  73. /package/dist/agent-verifier/{local-files-WPHUV6GU.mjs.map → local-files-DAFIR7SN.mjs.map} +0 -0
  74. /package/dist/agent-verifier/{materialize-workspace-CV2JNXLU.mjs.map → materialize-workspace-PAC75NSP.mjs.map} +0 -0
  75. /package/dist/agent-verifier/{reducer-native-test-harness-GY2CCQWN.mjs.map → reducer-native-test-harness-HSXRUGOR.mjs.map} +0 -0
  76. /package/dist/agent-verifier/{static-scaffold-DJJRKMNB.mjs.map → static-scaffold-KSOTKJNQ.mjs.map} +0 -0
  77. /package/dist/agent-verifier/{sync-YWK4SPWV.mjs.map → sync-MQJJEZAA.mjs.map} +0 -0
  78. /package/dist/agent-verifier/{test-LQAGEQLY.mjs.map → test-R6HC6CYZ.mjs.map} +0 -0
  79. /package/dist/agent-verifier/{workspace-codegen-4IWICKLB.mjs.map → workspace-codegen-SPPVHURX.mjs.map} +0 -0
  80. /package/dist/{global-config-NLGAFSRU.js.map → global-config-VQWFTIAV.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  resolveRemoteProject
4
- } from "./chunk-5GCZZ6NW.mjs";
4
+ } from "./chunk-JB7VXCMB.mjs";
5
5
  import {
6
6
  CONFIG_FLAG_ARGS,
7
7
  defineCommand,
@@ -9,7 +9,7 @@ import {
9
9
  parseCompileCommandArgs,
10
10
  queueProjectRevisionCompileSdk,
11
11
  waitForCompiledResultJobSdk
12
- } from "./chunk-A67WUYN2.mjs";
12
+ } from "./chunk-B42OHJNY.mjs";
13
13
  import {
14
14
  getProjectAuthoringState,
15
15
  getProjectPendingAuthoringSync,
@@ -20,33 +20,33 @@ import {
20
20
  } from "./chunk-POBFNXD4.mjs";
21
21
  import {
22
22
  formatCliError
23
- } from "./chunk-G2ECODRB.mjs";
23
+ } from "./chunk-PLXXH5LY.mjs";
24
24
  import {
25
25
  assertCompilerPortableDependencies,
26
26
  assertReleaseEnvironmentPortableDependencies,
27
27
  consola,
28
28
  resolveProjectContext
29
- } from "./chunk-NFL3Z4Z7.mjs";
29
+ } from "./chunk-RP7ZWFVH.mjs";
30
30
  import {
31
31
  updateProjectState
32
32
  } from "./chunk-WSIYUUSD.mjs";
33
- import "./chunk-CO3BRUD6.mjs";
34
- import "./chunk-DPYC2NDB.mjs";
35
- import "./chunk-AXXUGU7Q.mjs";
33
+ import "./chunk-AG5J3SMN.mjs";
34
+ import "./chunk-RCYO6HWW.mjs";
35
+ import "./chunk-AQ6UQHPT.mjs";
36
36
  import {
37
37
  getLocalDiff
38
- } from "./chunk-LKQ557TJ.mjs";
38
+ } from "./chunk-334H4LE4.mjs";
39
39
  import "./chunk-TAEQKBJB.mjs";
40
40
  import {
41
41
  assertCliStaticScaffoldComplete
42
- } from "./chunk-655VJLXA.mjs";
42
+ } from "./chunk-PWPOLHTW.mjs";
43
43
  import "./chunk-F2DIOJJZ.mjs";
44
44
  import "./chunk-RDYXWXXC.mjs";
45
- import "./chunk-H3XNWKJU.mjs";
45
+ import "./chunk-7LFDFXLS.mjs";
46
46
  import "./chunk-JZTH3EMV.mjs";
47
47
  import "./chunk-TTB7AIHZ.mjs";
48
48
  import "./chunk-MYMVXTZT.mjs";
49
- import "./chunk-WAFBU5U7.mjs";
49
+ import "./chunk-OJFZVGEL.mjs";
50
50
  import "./chunk-ZEELHSY3.mjs";
51
51
  import "./chunk-M7UVBANQ.mjs";
52
52
  import "./chunk-H6XDQJ3N.mjs";
@@ -314,4 +314,4 @@ var compile_default = defineCommand({
314
314
  export {
315
315
  compile_default as default
316
316
  };
317
- //# sourceMappingURL=compile-4VSMC275.mjs.map
317
+ //# sourceMappingURL=compile-VOBO2I6D.mjs.map
@@ -4,8 +4,8 @@ import {
4
4
  getGlobalConfigPath,
5
5
  loadGlobalConfig,
6
6
  saveGlobalConfig
7
- } from "./chunk-DPYC2NDB.mjs";
8
- import "./chunk-AXXUGU7Q.mjs";
7
+ } from "./chunk-RCYO6HWW.mjs";
8
+ import "./chunk-AQ6UQHPT.mjs";
9
9
  import "./chunk-TAEQKBJB.mjs";
10
10
  import "./chunk-RDYXWXXC.mjs";
11
11
  import "./chunk-M7UVBANQ.mjs";
@@ -16,4 +16,4 @@ export {
16
16
  loadGlobalConfig,
17
17
  saveGlobalConfig
18
18
  };
19
- //# sourceMappingURL=global-config-6UGFPLDA.mjs.map
19
+ //# sourceMappingURL=global-config-L7PLLUK5.mjs.map
@@ -137,4 +137,4 @@ export {
137
137
  _setKeyringModuleForTests,
138
138
  tryKeychainBackend
139
139
  };
140
- //# sourceMappingURL=keychain-backend-BQLW5VEC.mjs.map
140
+ //# sourceMappingURL=keychain-backend-UF3Z26JM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/config/keychain-backend.ts"],"sourcesContent":["/**\n * OS keychain-backed `CredentialBackend` built on top of `@napi-rs/keyring`.\n *\n * Keychain is an optional storage backend. Users can opt in with\n * `credentialBackend: \"keychain\"` in `~/.dreamboard/config.json`\n * (see `credential-store.ts` for the resolver).\n * When enabled, it gives us:\n * - A refresh token encrypted at rest by the OS (Keychain on macOS,\n * Credential Vault on Windows, Secret Service on Linux).\n * - Protection against other processes running as the same user tailing\n * `~/.dreamboard/auth.json` to scrape the token.\n *\n * This module is loaded optionally: `@napi-rs/keyring` is declared as an\n * `optionalDependencies` entry. If the native binary or OS keyring is\n * unavailable, the resolver falls back to the file backend.\n *\n * One-time migration: when the active backend is keychain and `auth.json` still\n * has tokens, `credential-store.ts` copies them into the keychain, verifies the\n * keychain read, and deletes the file. This is the only path that intentionally\n * mutates both backends.\n */\n\nimport type {\n CredentialBackend,\n Credentials,\n StoredSessionSnapshot,\n} from \"./credential-store.js\";\n\n/** Keychain service id. Shared across all Dreamboard CLI builds. */\nconst KEYCHAIN_SERVICE = \"dreamboard-cli\";\n/**\n * Keychain account id. The `user@host` shape is conventional but we keep\n * it fixed for now because the CLI only cares about \"the session for this\n * OS user\", not per-process sessions.\n */\nconst KEYCHAIN_ACCOUNT = \"session\";\n\ntype EntryInstance = {\n setPassword(value: string): void;\n getPassword(): string | null | undefined;\n deletePassword(): boolean;\n};\n\ntype KeyringModule = {\n Entry: new (service: string, account: string) => EntryInstance;\n};\n\nlet cachedModule: KeyringModule | null | undefined;\n\nasync function loadKeyringModule(): Promise<KeyringModule | null> {\n if (cachedModule !== undefined) return cachedModule;\n try {\n // `@napi-rs/keyring` is an optional dependency. If the native binary is\n // missing on this platform the dynamic import throws; resolver policy in\n // credential-store decides whether that is fatal.\n const mod = (await import(\"@napi-rs/keyring\")) as unknown as KeyringModule;\n cachedModule = mod;\n } catch {\n cachedModule = null;\n }\n return cachedModule;\n}\n\nfunction keychainProbe(entry: EntryInstance): boolean {\n // Some platforms have the module installed but no accessible keyring\n // (e.g. headless Linux without DBus). Touch getPassword to verify we\n // can talk to the service without side effects.\n try {\n entry.getPassword();\n return true;\n } catch {\n return false;\n }\n}\n\ntype KeychainPayload = {\n clerkAccessToken?: string;\n accessToken?: string;\n refreshToken?: string;\n clerkAccessExpiresAt?: string;\n tokenExpiresAt?: string;\n dreamboardApiToken?: string;\n dreamboardApiExpiresAt?: string;\n clerkOAuthIssuer?: string;\n clerkOAuthClientId?: string;\n clerkOAuthTokenUrl?: string;\n environment?: string;\n};\n\nfunction parsePayload(\n raw: string | null | undefined,\n): StoredSessionSnapshot | null {\n if (raw === null || raw === undefined) return null;\n const trimmed = raw.trim();\n if (trimmed.length === 0) return null;\n try {\n const parsed = JSON.parse(trimmed) as KeychainPayload;\n const accessToken = parsed.clerkAccessToken ?? parsed.accessToken;\n if (!accessToken && !parsed.refreshToken) return null;\n return {\n accessToken: accessToken || undefined,\n refreshToken: parsed.refreshToken || undefined,\n tokenExpiresAt:\n parsed.clerkAccessExpiresAt || parsed.tokenExpiresAt || undefined,\n dreamboardApiToken: parsed.dreamboardApiToken || undefined,\n dreamboardApiExpiresAt: parsed.dreamboardApiExpiresAt || undefined,\n clerkOAuthIssuer: parsed.clerkOAuthIssuer || undefined,\n clerkOAuthClientId: parsed.clerkOAuthClientId || undefined,\n clerkOAuthTokenUrl: parsed.clerkOAuthTokenUrl || undefined,\n environment: parsed.environment || undefined,\n };\n } catch {\n return null;\n }\n}\n\nfunction writeFull(entry: EntryInstance, creds: Credentials): void {\n if (!creds.accessToken || !creds.refreshToken) {\n throw new Error(\n \"Refusing to persist credentials with an empty accessToken or refreshToken.\",\n );\n }\n const payload: KeychainPayload = {\n clerkAccessToken: creds.accessToken,\n refreshToken: creds.refreshToken,\n clerkAccessExpiresAt: creds.tokenExpiresAt,\n dreamboardApiToken: creds.dreamboardApiToken,\n dreamboardApiExpiresAt: creds.dreamboardApiExpiresAt,\n clerkOAuthIssuer: creds.clerkOAuthIssuer,\n clerkOAuthClientId: creds.clerkOAuthClientId,\n clerkOAuthTokenUrl: creds.clerkOAuthTokenUrl,\n environment: creds.environment,\n };\n entry.setPassword(JSON.stringify(payload));\n}\n\nfunction writeAccessOnly(entry: EntryInstance, accessToken: string): void {\n if (!accessToken) {\n throw new Error(\"Refusing to persist an empty access token.\");\n }\n const payload: KeychainPayload = { accessToken };\n entry.setPassword(JSON.stringify(payload));\n}\n\nfunction clear(entry: EntryInstance): void {\n try {\n entry.deletePassword();\n } catch {\n // keyring-rs throws when the entry does not exist. That is fine -\n // `clearCredentials` contracts as idempotent.\n }\n}\n\nexport type KeychainAvailability =\n | { available: true; backend: CredentialBackend }\n | { available: false; reason: string };\n\n/**\n * Attempt to construct a keychain-backed `CredentialBackend`. Returns an\n * `available: false` result (with a reason) if the native module, the\n * OS keyring, or the probe fails.\n */\nexport async function tryKeychainBackend(): Promise<KeychainAvailability> {\n const mod = await loadKeyringModule();\n if (!mod) {\n return {\n available: false,\n reason: \"@napi-rs/keyring is not installed for this platform\",\n };\n }\n\n let entry: EntryInstance;\n try {\n entry = new mod.Entry(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT);\n } catch (err) {\n return {\n available: false,\n reason: `Failed to construct keyring entry: ${String((err as Error).message ?? err)}`,\n };\n }\n\n if (!keychainProbe(entry)) {\n return {\n available: false,\n reason: \"OS keyring is not accessible from this process\",\n };\n }\n\n const backend: CredentialBackend = {\n name: \"keychain\",\n async read() {\n try {\n return parsePayload(entry.getPassword());\n } catch (err) {\n const message = String((err as Error).message ?? err);\n // Transient keychain access errors (e.g. Touch ID prompt\n // cancelled) should not surface as \"session wiped\". Treat the\n // unreadable state as \"no session\" so the caller can fall back\n // to prompting for login.\n if (/no matching entry|not found/i.test(message)) {\n return null;\n }\n throw err;\n }\n },\n async writeFull(creds) {\n writeFull(entry, creds);\n },\n async writeAccessOnly(accessToken) {\n writeAccessOnly(entry, accessToken);\n },\n async clear() {\n clear(entry);\n },\n };\n return { available: true, backend };\n}\n\n/**\n * Test-only escape hatch so unit tests can install a fake keyring module\n * without going through the dynamic import cache.\n */\nexport function _setKeyringModuleForTests(mod: KeyringModule | null): void {\n cachedModule = mod;\n}\n\nexport function _resetKeyringModuleForTests(): void {\n cachedModule = undefined;\n}\n"],"mappings":"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","names":[]}
@@ -14,15 +14,15 @@ import {
14
14
  writeSnapshot,
15
15
  writeSnapshotFromFiles,
16
16
  writeSourceFiles
17
- } from "./chunk-LKQ557TJ.mjs";
17
+ } from "./chunk-334H4LE4.mjs";
18
18
  import "./chunk-TAEQKBJB.mjs";
19
19
  import {
20
20
  computeManifestHash
21
- } from "./chunk-H3XNWKJU.mjs";
21
+ } from "./chunk-7LFDFXLS.mjs";
22
22
  import "./chunk-JZTH3EMV.mjs";
23
23
  import "./chunk-TTB7AIHZ.mjs";
24
24
  import "./chunk-MYMVXTZT.mjs";
25
- import "./chunk-WAFBU5U7.mjs";
25
+ import "./chunk-OJFZVGEL.mjs";
26
26
  import "./chunk-M7UVBANQ.mjs";
27
27
  import "./chunk-H6XDQJ3N.mjs";
28
28
  export {
@@ -42,4 +42,4 @@ export {
42
42
  writeSnapshotFromFiles,
43
43
  writeSourceFiles
44
44
  };
45
- //# sourceMappingURL=local-files-WPHUV6GU.mjs.map
45
+ //# sourceMappingURL=local-files-DAFIR7SN.mjs.map
@@ -10,23 +10,23 @@ import {
10
10
  writeManifest,
11
11
  writeRule,
12
12
  writeSnapshot
13
- } from "./chunk-LKQ557TJ.mjs";
13
+ } from "./chunk-334H4LE4.mjs";
14
14
  import "./chunk-TAEQKBJB.mjs";
15
15
  import {
16
16
  scaffoldStaticWorkspace
17
- } from "./chunk-655VJLXA.mjs";
17
+ } from "./chunk-PWPOLHTW.mjs";
18
18
  import "./chunk-F2DIOJJZ.mjs";
19
19
  import {
20
20
  ensureDir
21
21
  } from "./chunk-RDYXWXXC.mjs";
22
- import "./chunk-H3XNWKJU.mjs";
22
+ import "./chunk-7LFDFXLS.mjs";
23
23
  import "./chunk-JZTH3EMV.mjs";
24
24
  import "./chunk-TTB7AIHZ.mjs";
25
25
  import "./chunk-MYMVXTZT.mjs";
26
26
  import {
27
27
  applyWorkspaceCodegen
28
- } from "./chunk-V6AQDR7W.mjs";
29
- import "./chunk-WAFBU5U7.mjs";
28
+ } from "./chunk-HUBV22JQ.mjs";
29
+ import "./chunk-OJFZVGEL.mjs";
30
30
  import {
31
31
  installWorkspaceDependencies
32
32
  } from "./chunk-V7ABTZXW.mjs";
@@ -87,4 +87,4 @@ function baseProjectConfig(input) {
87
87
  export {
88
88
  materializeWorkspaceProject
89
89
  };
90
- //# sourceMappingURL=materialize-workspace-CV2JNXLU.mjs.map
90
+ //# sourceMappingURL=materialize-workspace-PAC75NSP.mjs.map
@@ -16,20 +16,20 @@ import {
16
16
  replayScenarioThroughBackend,
17
17
  runReducerNativeScenarios,
18
18
  writeReducerNativeGeneratedFiles
19
- } from "./chunk-DWLTCUUX.mjs";
19
+ } from "./chunk-7MAOGFFP.mjs";
20
20
  import "./chunk-QD4SQNUP.mjs";
21
- import "./chunk-G2ECODRB.mjs";
22
- import "./chunk-CO3BRUD6.mjs";
23
- import "./chunk-AXXUGU7Q.mjs";
24
- import "./chunk-LKQ557TJ.mjs";
21
+ import "./chunk-PLXXH5LY.mjs";
22
+ import "./chunk-AG5J3SMN.mjs";
23
+ import "./chunk-AQ6UQHPT.mjs";
24
+ import "./chunk-334H4LE4.mjs";
25
25
  import "./chunk-TAEQKBJB.mjs";
26
26
  import "./chunk-F2DIOJJZ.mjs";
27
27
  import "./chunk-RDYXWXXC.mjs";
28
- import "./chunk-H3XNWKJU.mjs";
28
+ import "./chunk-7LFDFXLS.mjs";
29
29
  import "./chunk-JZTH3EMV.mjs";
30
30
  import "./chunk-TTB7AIHZ.mjs";
31
31
  import "./chunk-MYMVXTZT.mjs";
32
- import "./chunk-WAFBU5U7.mjs";
32
+ import "./chunk-OJFZVGEL.mjs";
33
33
  import "./chunk-M7UVBANQ.mjs";
34
34
  import "./chunk-H6XDQJ3N.mjs";
35
35
  export {
@@ -50,4 +50,4 @@ export {
50
50
  runReducerNativeScenarios,
51
51
  writeReducerNativeGeneratedFiles
52
52
  };
53
- //# sourceMappingURL=reducer-native-test-harness-GY2CCQWN.mjs.map
53
+ //# sourceMappingURL=reducer-native-test-harness-HSXRUGOR.mjs.map
@@ -4,14 +4,14 @@ import {
4
4
  migrateLegacyScenarioImports,
5
5
  resolveStaticAssetRoot,
6
6
  scaffoldStaticWorkspace
7
- } from "./chunk-655VJLXA.mjs";
7
+ } from "./chunk-PWPOLHTW.mjs";
8
8
  import "./chunk-F2DIOJJZ.mjs";
9
9
  import "./chunk-RDYXWXXC.mjs";
10
- import "./chunk-H3XNWKJU.mjs";
10
+ import "./chunk-7LFDFXLS.mjs";
11
11
  import "./chunk-JZTH3EMV.mjs";
12
12
  import "./chunk-TTB7AIHZ.mjs";
13
13
  import "./chunk-MYMVXTZT.mjs";
14
- import "./chunk-WAFBU5U7.mjs";
14
+ import "./chunk-OJFZVGEL.mjs";
15
15
  import "./chunk-ZEELHSY3.mjs";
16
16
  import "./chunk-M7UVBANQ.mjs";
17
17
  import "./chunk-H6XDQJ3N.mjs";
@@ -21,4 +21,4 @@ export {
21
21
  resolveStaticAssetRoot,
22
22
  scaffoldStaticWorkspace
23
23
  };
24
- //# sourceMappingURL=static-scaffold-DJJRKMNB.mjs.map
24
+ //# sourceMappingURL=static-scaffold-KSOTKJNQ.mjs.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-HLHT57AW.mjs";
8
8
  import {
9
9
  resolveRemoteProject
10
- } from "./chunk-5GCZZ6NW.mjs";
10
+ } from "./chunk-JB7VXCMB.mjs";
11
11
  import {
12
12
  CONFIG_FLAG_ARGS,
13
13
  createGameRevisionSdk,
@@ -16,7 +16,7 @@ import {
16
16
  materializeSourceChangeOperations,
17
17
  parseSyncCommandArgs,
18
18
  uploadProjectSourceBlobsSdk
19
- } from "./chunk-A67WUYN2.mjs";
19
+ } from "./chunk-B42OHJNY.mjs";
20
20
  import {
21
21
  getProjectAuthoringState,
22
22
  getProjectLocalMaintainerRegistry,
@@ -28,40 +28,40 @@ import {
28
28
  runLocalTypecheck
29
29
  } from "./chunk-POBFNXD4.mjs";
30
30
  import "./chunk-QD4SQNUP.mjs";
31
- import "./chunk-G2ECODRB.mjs";
31
+ import "./chunk-PLXXH5LY.mjs";
32
32
  import {
33
33
  assertReleaseEnvironmentPortableDependencies,
34
34
  consola,
35
35
  resolveProjectContext
36
- } from "./chunk-NFL3Z4Z7.mjs";
36
+ } from "./chunk-RP7ZWFVH.mjs";
37
37
  import {
38
38
  updateProjectState
39
39
  } from "./chunk-WSIYUUSD.mjs";
40
- import "./chunk-CO3BRUD6.mjs";
41
- import "./chunk-DPYC2NDB.mjs";
42
40
  import {
43
41
  BUILD_CHANNEL,
44
42
  IS_PUBLISHED_BUILD
45
- } from "./chunk-AXXUGU7Q.mjs";
43
+ } from "./chunk-AG5J3SMN.mjs";
44
+ import "./chunk-RCYO6HWW.mjs";
45
+ import "./chunk-AQ6UQHPT.mjs";
46
46
  import {
47
47
  collectLocalFiles,
48
48
  getLocalDiff,
49
49
  loadManifest,
50
50
  loadRule,
51
51
  writeSnapshot
52
- } from "./chunk-LKQ557TJ.mjs";
52
+ } from "./chunk-334H4LE4.mjs";
53
53
  import "./chunk-TAEQKBJB.mjs";
54
54
  import {
55
55
  assertCliStaticScaffoldComplete,
56
56
  scaffoldStaticWorkspace
57
- } from "./chunk-655VJLXA.mjs";
57
+ } from "./chunk-PWPOLHTW.mjs";
58
58
  import "./chunk-F2DIOJJZ.mjs";
59
59
  import "./chunk-RDYXWXXC.mjs";
60
60
  import {
61
61
  computeManifestHash,
62
62
  isAllowedGamePath,
63
63
  isDynamicGeneratedPath
64
- } from "./chunk-H3XNWKJU.mjs";
64
+ } from "./chunk-7LFDFXLS.mjs";
65
65
  import "./chunk-JZTH3EMV.mjs";
66
66
  import {
67
67
  resolveCliRepoRoot
@@ -69,8 +69,8 @@ import {
69
69
  import "./chunk-MYMVXTZT.mjs";
70
70
  import {
71
71
  applyWorkspaceCodegen
72
- } from "./chunk-V6AQDR7W.mjs";
73
- import "./chunk-WAFBU5U7.mjs";
72
+ } from "./chunk-HUBV22JQ.mjs";
73
+ import "./chunk-OJFZVGEL.mjs";
74
74
  import {
75
75
  reconcileWorkspaceDependencies
76
76
  } from "./chunk-V7ABTZXW.mjs";
@@ -595,4 +595,4 @@ var sync_default = defineCommand({
595
595
  export {
596
596
  sync_default as default
597
597
  };
598
- //# sourceMappingURL=sync-YWK4SPWV.mjs.map
598
+ //# sourceMappingURL=sync-MQJJEZAA.mjs.map
@@ -6,7 +6,7 @@ import {
6
6
  getProjectCompiledResultSdk,
7
7
  parseConfigFlags,
8
8
  uploadInitialProjectionSdk
9
- } from "./chunk-A67WUYN2.mjs";
9
+ } from "./chunk-B42OHJNY.mjs";
10
10
  import {
11
11
  getProjectAuthoringState,
12
12
  getProjectCompileState,
@@ -16,35 +16,35 @@ import {
16
16
  generateReducerNativeArtifacts,
17
17
  isReducerNativeTestingWorkspace,
18
18
  runReducerNativeScenarios
19
- } from "./chunk-DWLTCUUX.mjs";
19
+ } from "./chunk-7MAOGFFP.mjs";
20
20
  import "./chunk-QD4SQNUP.mjs";
21
21
  import {
22
22
  STALE_CONTRACT_ARTIFACT_CODE,
23
23
  STALE_CONTRACT_ARTIFACT_EXIT_CODE,
24
24
  isDreamboardApiError,
25
25
  isStaleContractArtifactMessage
26
- } from "./chunk-G2ECODRB.mjs";
26
+ } from "./chunk-PLXXH5LY.mjs";
27
27
  import {
28
28
  assertReleaseEnvironmentPortableDependencies,
29
29
  configureClient,
30
30
  consola,
31
31
  resolveProjectContext
32
- } from "./chunk-NFL3Z4Z7.mjs";
32
+ } from "./chunk-RP7ZWFVH.mjs";
33
33
  import "./chunk-WSIYUUSD.mjs";
34
- import "./chunk-CO3BRUD6.mjs";
35
- import "./chunk-DPYC2NDB.mjs";
36
34
  import {
37
35
  IS_PUBLISHED_BUILD
38
- } from "./chunk-AXXUGU7Q.mjs";
39
- import "./chunk-LKQ557TJ.mjs";
36
+ } from "./chunk-AG5J3SMN.mjs";
37
+ import "./chunk-RCYO6HWW.mjs";
38
+ import "./chunk-AQ6UQHPT.mjs";
39
+ import "./chunk-334H4LE4.mjs";
40
40
  import "./chunk-TAEQKBJB.mjs";
41
41
  import "./chunk-F2DIOJJZ.mjs";
42
42
  import "./chunk-RDYXWXXC.mjs";
43
- import "./chunk-H3XNWKJU.mjs";
43
+ import "./chunk-7LFDFXLS.mjs";
44
44
  import "./chunk-JZTH3EMV.mjs";
45
45
  import "./chunk-TTB7AIHZ.mjs";
46
46
  import "./chunk-MYMVXTZT.mjs";
47
- import "./chunk-WAFBU5U7.mjs";
47
+ import "./chunk-OJFZVGEL.mjs";
48
48
  import "./chunk-M7UVBANQ.mjs";
49
49
  import "./chunk-H6XDQJ3N.mjs";
50
50
 
@@ -353,4 +353,4 @@ export {
353
353
  resolveRequestedRunner,
354
354
  resolveTestRunExitCode
355
355
  };
356
- //# sourceMappingURL=test-LQAGEQLY.mjs.map
356
+ //# sourceMappingURL=test-R6HC6CYZ.mjs.map
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  applyWorkspaceCodegen
4
- } from "./chunk-V6AQDR7W.mjs";
5
- import "./chunk-WAFBU5U7.mjs";
4
+ } from "./chunk-HUBV22JQ.mjs";
5
+ import "./chunk-OJFZVGEL.mjs";
6
6
  import "./chunk-H6XDQJ3N.mjs";
7
7
  export {
8
8
  applyWorkspaceCodegen
9
9
  };
10
- //# sourceMappingURL=workspace-codegen-4IWICKLB.mjs.map
10
+ //# sourceMappingURL=workspace-codegen-SPPVHURX.mjs.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  applyWorkspaceCodegen,
4
4
  materializeWorkspaceProject
5
- } from "./chunk-PW7D2W5S.js";
5
+ } from "./chunk-2XMBZPL5.js";
6
6
  import "./chunk-FFO2IJL3.js";
7
7
  import "./chunk-2H7UOFLK.js";
8
8
  export {
@@ -27,16 +27,13 @@ import {
27
27
  writeWorkspaceJsonFile,
28
28
  writeWorkspaceTextFile,
29
29
  zProblemDetails
30
- } from "./chunk-PW7D2W5S.js";
30
+ } from "./chunk-2XMBZPL5.js";
31
31
  import {
32
- BUILD_CHANNEL,
33
- IS_PUBLISHED_BUILD,
34
- PUBLISHED_ENVIRONMENT,
35
32
  getStoredSession,
36
33
  loadGlobalConfig,
37
34
  setCredentials,
38
35
  withCredentialLock
39
- } from "./chunk-AVOAT522.js";
36
+ } from "./chunk-J3CWZHY7.js";
40
37
  import {
41
38
  DEFAULT_API_BASE_URL,
42
39
  DEFAULT_WEB_BASE_URL,
@@ -48,6 +45,12 @@ import {
48
45
  writeJsonFile
49
46
  } from "./chunk-FFO2IJL3.js";
50
47
 
48
+ // src/build-target.ts
49
+ var injectedBuildChannel = true ? "published" : void 0;
50
+ var BUILD_CHANNEL = injectedBuildChannel === "published" ? "published" : "development";
51
+ var IS_PUBLISHED_BUILD = BUILD_CHANNEL === "published";
52
+ var PUBLISHED_ENVIRONMENT = "prod";
53
+
51
54
  // src/auth/clerk-oauth.ts
52
55
  import crypto from "crypto";
53
56
  function createPkcePair() {
@@ -651,6 +654,9 @@ function getAuthTokenExpiry(accessToken) {
651
654
  function usesStoredSession2(config) {
652
655
  return config.refreshTokenSource === "global";
653
656
  }
657
+ async function loadProjectContextCredentials(requireAuth2, loadCredentials = getStoredSession) {
658
+ return requireAuth2 ? loadCredentials() : void 0;
659
+ }
654
660
  async function resolveProjectContext(flags, opts) {
655
661
  const projectRoot = await findProjectRoot(process.cwd());
656
662
  if (!projectRoot) {
@@ -659,12 +665,13 @@ async function resolveProjectContext(flags, opts) {
659
665
  );
660
666
  }
661
667
  const projectConfig = await loadProjectConfig(projectRoot);
668
+ const requireAuthForContext = opts?.requireAuth !== false;
662
669
  const [globalConfig, credentials] = await Promise.all([
663
670
  loadGlobalConfig(),
664
- getStoredSession()
671
+ loadProjectContextCredentials(requireAuthForContext)
665
672
  ]);
666
673
  const config = resolveConfig(globalConfig, flags, projectConfig, credentials);
667
- if (opts?.requireAuth !== false) {
674
+ if (requireAuthForContext) {
668
675
  requireAuth(config);
669
676
  await configureClient(config);
670
677
  }
@@ -4233,6 +4240,8 @@ export {
4233
4240
  buildClerkAuthorizationUrl,
4234
4241
  exchangeClerkOAuthCode,
4235
4242
  exchangeDreamboardUserToken,
4243
+ IS_PUBLISHED_BUILD,
4244
+ PUBLISHED_ENVIRONMENT,
4236
4245
  createUserTokenManager,
4237
4246
  resolveLocalHarnessAccessToken,
4238
4247
  resolveConfig,
@@ -4295,4 +4304,4 @@ export {
4295
4304
  generateReducerNativeArtifacts,
4296
4305
  runReducerNativeScenarios
4297
4306
  };
4298
- //# sourceMappingURL=chunk-2R4L2YDX.js.map
4307
+ //# sourceMappingURL=chunk-2WB3DYW4.js.map