primitive-admin 1.1.0-alpha.74 → 1.1.0-alpha.75

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 (115) hide show
  1. package/dist/bin/primitive.js +12 -11
  2. package/dist/bin/primitive.js.map +1 -1
  3. package/dist/src/commands/collection-type-configs.js +1 -1
  4. package/dist/src/commands/collection-type-configs.js.map +1 -1
  5. package/dist/src/commands/config.js +8 -4
  6. package/dist/src/commands/config.js.map +1 -1
  7. package/dist/src/commands/database-type-configs.js +1 -1
  8. package/dist/src/commands/database-type-configs.js.map +1 -1
  9. package/dist/src/commands/databases.js +25 -31
  10. package/dist/src/commands/databases.js.map +1 -1
  11. package/dist/src/commands/documents.js +9 -24
  12. package/dist/src/commands/documents.js.map +1 -1
  13. package/dist/src/commands/env.d.ts +1 -1
  14. package/dist/src/commands/env.js +14 -11
  15. package/dist/src/commands/env.js.map +1 -1
  16. package/dist/src/commands/functions.js +135 -1
  17. package/dist/src/commands/functions.js.map +1 -1
  18. package/dist/src/commands/groups.js +1 -1
  19. package/dist/src/commands/groups.js.map +1 -1
  20. package/dist/src/commands/init.d.ts +12 -15
  21. package/dist/src/commands/init.js +36 -77
  22. package/dist/src/commands/init.js.map +1 -1
  23. package/dist/src/commands/rule-sets.js +1 -1
  24. package/dist/src/commands/rule-sets.js.map +1 -1
  25. package/dist/src/commands/scripts.js +17 -4
  26. package/dist/src/commands/scripts.js.map +1 -1
  27. package/dist/src/commands/sync-app-settings.js +2 -4
  28. package/dist/src/commands/sync-app-settings.js.map +1 -1
  29. package/dist/src/commands/sync.d.ts +2 -2
  30. package/dist/src/commands/sync.js +544 -346
  31. package/dist/src/commands/sync.js.map +1 -1
  32. package/dist/src/commands/workflows.js +1 -1
  33. package/dist/src/lib/api-client.d.ts +7 -1
  34. package/dist/src/lib/api-client.js +8 -2
  35. package/dist/src/lib/api-client.js.map +1 -1
  36. package/dist/src/lib/app-match-guard.d.ts +44 -0
  37. package/dist/src/lib/app-match-guard.js +72 -0
  38. package/dist/src/lib/app-match-guard.js.map +1 -0
  39. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +11 -8
  40. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +108 -54
  41. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -1
  42. package/dist/src/lib/config.d.ts +2 -2
  43. package/dist/src/lib/config.js +2 -2
  44. package/dist/src/lib/credentials-store.d.ts +3 -3
  45. package/dist/src/lib/credentials-store.js +3 -3
  46. package/dist/src/lib/credentials-store.js.map +1 -1
  47. package/dist/src/lib/document-export-permissions.d.ts +30 -0
  48. package/dist/src/lib/document-export-permissions.js +54 -0
  49. package/dist/src/lib/document-export-permissions.js.map +1 -0
  50. package/dist/src/lib/env-resolver-core.d.ts +41 -9
  51. package/dist/src/lib/env-resolver-core.js +84 -13
  52. package/dist/src/lib/env-resolver-core.js.map +1 -1
  53. package/dist/src/lib/env-resolver.d.ts +3 -3
  54. package/dist/src/lib/env-resolver.js +2 -2
  55. package/dist/src/lib/function-bundle.d.ts +11 -1
  56. package/dist/src/lib/function-bundle.js +13 -1
  57. package/dist/src/lib/function-bundle.js.map +1 -1
  58. package/dist/src/lib/function-collect.d.ts +101 -0
  59. package/dist/src/lib/function-collect.js +339 -0
  60. package/dist/src/lib/function-collect.js.map +1 -0
  61. package/dist/src/lib/function-db-types.d.ts +149 -0
  62. package/dist/src/lib/function-db-types.js +587 -0
  63. package/dist/src/lib/function-db-types.js.map +1 -0
  64. package/dist/src/lib/function-grants-preflight.d.ts +118 -0
  65. package/dist/src/lib/function-grants-preflight.js +213 -0
  66. package/dist/src/lib/function-grants-preflight.js.map +1 -0
  67. package/dist/src/lib/function-sync.d.ts +34 -0
  68. package/dist/src/lib/function-sync.js +103 -0
  69. package/dist/src/lib/function-sync.js.map +1 -1
  70. package/dist/src/lib/generated-config-surfaces.d.ts +388 -0
  71. package/dist/src/lib/generated-config-surfaces.js +757 -7
  72. package/dist/src/lib/generated-config-surfaces.js.map +1 -1
  73. package/dist/src/lib/generated-sdk-types.d.ts +12 -0
  74. package/dist/src/lib/generated-sdk-types.js +13 -0
  75. package/dist/src/lib/generated-sdk-types.js.map +1 -0
  76. package/dist/src/lib/init-adopt.js +2 -2
  77. package/dist/src/lib/init-adopt.js.map +1 -1
  78. package/dist/src/lib/init-assets.js +3 -3
  79. package/dist/src/lib/init-config.d.ts +1 -1
  80. package/dist/src/lib/init-ios-links.js +1 -1
  81. package/dist/src/lib/init-ios-links.js.map +1 -1
  82. package/dist/src/lib/init-plan.d.ts +1 -1
  83. package/dist/src/lib/init-plan.js +1 -1
  84. package/dist/src/lib/init-xcode.d.ts +2 -2
  85. package/dist/src/lib/init-xcode.js +6 -5
  86. package/dist/src/lib/init-xcode.js.map +1 -1
  87. package/dist/src/lib/local-state.d.ts +1 -1
  88. package/dist/src/lib/local-state.js +1 -1
  89. package/dist/src/lib/local-test-cases.d.ts +1 -1
  90. package/dist/src/lib/local-test-cases.js +2 -1
  91. package/dist/src/lib/local-test-cases.js.map +1 -1
  92. package/dist/src/lib/migration-nag.d.ts +2 -2
  93. package/dist/src/lib/migration-nag.js +4 -3
  94. package/dist/src/lib/migration-nag.js.map +1 -1
  95. package/dist/src/lib/project-config.d.ts +23 -20
  96. package/dist/src/lib/project-config.js +27 -45
  97. package/dist/src/lib/project-config.js.map +1 -1
  98. package/dist/src/lib/snapshots.d.ts +2 -2
  99. package/dist/src/lib/snapshots.js +2 -2
  100. package/dist/src/lib/swift-codegen/generator.d.ts +1 -1
  101. package/dist/src/lib/swift-codegen/generator.js +1 -1
  102. package/dist/src/lib/sync-dir-selector.d.ts +1 -1
  103. package/dist/src/lib/sync-dir-selector.js +1 -1
  104. package/dist/src/lib/sync-paths.d.ts +52 -16
  105. package/dist/src/lib/sync-paths.js +68 -22
  106. package/dist/src/lib/sync-paths.js.map +1 -1
  107. package/dist/src/lib/sync-resource-types.d.ts +2 -2
  108. package/dist/src/lib/sync-resource-types.js +2 -2
  109. package/dist/src/lib/template.d.ts +2 -2
  110. package/dist/src/lib/template.js +2 -2
  111. package/dist/src/lib/test-case-keys.d.ts +1 -1
  112. package/dist/src/lib/test-case-keys.js +1 -1
  113. package/dist/src/lib/workflow-codegen/generator.d.ts +1 -1
  114. package/dist/src/lib/workflow-codegen/generator.js +1 -1
  115. package/package.json +3 -3
@@ -5,7 +5,7 @@
5
5
  * Both commands read a set of `*.toml` schemas out of a synced sub-directory
6
6
  * (`workflows/` or `database-type-configs/`) and render `*.generated.ts` beside them.
7
7
  * Historically each command located that source directory by scanning EVERY
8
- * `.primitive/sync/<env>/<appId>/<subdir>` slot and either hard-erroring on
8
+ * `primitive/<env>/<subdir>` slot and either hard-erroring on
9
9
  * more than one (`workflows`) or silently merging across environments
10
10
  * (`databases`, via a `seenTypes` dedup). Neither did any environment
11
11
  * resolution, so `PRIMITIVE_ENV=dev workflows codegen` would happily generate
@@ -15,8 +15,10 @@
15
15
  *
16
16
  * This helper resolves the source directory the same way every other CLI
17
17
  * command targets an environment: `--env` → `PRIMITIVE_ENV` →
18
- * `defaultEnvironment` → single-env → error. `--dir` and `--app` remain
19
- * explicit overrides. It returns ONLY the resolved source directory; TOML
18
+ * `defaultEnvironment` → single-env → error. `--dir` remains an explicit
19
+ * override; `--app` is no longer one — since #3153 the tree path carries no
20
+ * app segment, so an app the environment does not name is refused on every
21
+ * branch, `--dir` included. It returns ONLY the resolved source directory; TOML
20
22
  * collection, type filtering/dedup, and output-dir defaulting stay in each
21
23
  * command.
22
24
  *
@@ -32,11 +34,12 @@
32
34
  * - Preserve the `--app`-alone legacy fallback: when `--app` is given, NO
33
35
  * environment was explicitly requested, and env resolution fails (or there
34
36
  * is no project config / legacy bare-dir mode), scan
35
- * `.primitive/sync/<env>/<app>/<subdir>` for that specific app, resolving
36
- * when it appears under exactly one env and erroring (naming the candidate
37
- * envs) when it appears under more than one. This keeps the existing
38
- * integration contract
39
- * (`cli/tests/integration/workflows-codegen.test.ts`) intact.
37
+ * `primitive/<env>/<subdir>`, resolving when exactly one environment has
38
+ * it and erroring (naming the candidates) otherwise. This keeps the
39
+ * existing integration contract
40
+ * (`cli/tests/integration/workflows-codegen.test.ts`) intact. A
41
+ * `stale-layout` refusal is rethrown rather than falling in here — the
42
+ * scan is exactly the old-tree read the refusal exists to prevent.
40
43
  * - Do NOT fall through to that scan when an environment WAS explicitly named
41
44
  * (`--env` or `PRIMITIVE_ENV`) but is invalid/unknown: surface the
42
45
  * resolver's error instead, so an explicit env selection never silently
@@ -5,7 +5,7 @@
5
5
  * Both commands read a set of `*.toml` schemas out of a synced sub-directory
6
6
  * (`workflows/` or `database-type-configs/`) and render `*.generated.ts` beside them.
7
7
  * Historically each command located that source directory by scanning EVERY
8
- * `.primitive/sync/<env>/<appId>/<subdir>` slot and either hard-erroring on
8
+ * `primitive/<env>/<subdir>` slot and either hard-erroring on
9
9
  * more than one (`workflows`) or silently merging across environments
10
10
  * (`databases`, via a `seenTypes` dedup). Neither did any environment
11
11
  * resolution, so `PRIMITIVE_ENV=dev workflows codegen` would happily generate
@@ -15,8 +15,10 @@
15
15
  *
16
16
  * This helper resolves the source directory the same way every other CLI
17
17
  * command targets an environment: `--env` → `PRIMITIVE_ENV` →
18
- * `defaultEnvironment` → single-env → error. `--dir` and `--app` remain
19
- * explicit overrides. It returns ONLY the resolved source directory; TOML
18
+ * `defaultEnvironment` → single-env → error. `--dir` remains an explicit
19
+ * override; `--app` is no longer one — since #3153 the tree path carries no
20
+ * app segment, so an app the environment does not name is refused on every
21
+ * branch, `--dir` included. It returns ONLY the resolved source directory; TOML
20
22
  * collection, type filtering/dedup, and output-dir defaulting stay in each
21
23
  * command.
22
24
  *
@@ -32,20 +34,23 @@
32
34
  * - Preserve the `--app`-alone legacy fallback: when `--app` is given, NO
33
35
  * environment was explicitly requested, and env resolution fails (or there
34
36
  * is no project config / legacy bare-dir mode), scan
35
- * `.primitive/sync/<env>/<app>/<subdir>` for that specific app, resolving
36
- * when it appears under exactly one env and erroring (naming the candidate
37
- * envs) when it appears under more than one. This keeps the existing
38
- * integration contract
39
- * (`cli/tests/integration/workflows-codegen.test.ts`) intact.
37
+ * `primitive/<env>/<subdir>`, resolving when exactly one environment has
38
+ * it and erroring (naming the candidates) otherwise. This keeps the
39
+ * existing integration contract
40
+ * (`cli/tests/integration/workflows-codegen.test.ts`) intact. A
41
+ * `stale-layout` refusal is rethrown rather than falling in here — the
42
+ * scan is exactly the old-tree read the refusal exists to prevent.
40
43
  * - Do NOT fall through to that scan when an environment WAS explicitly named
41
44
  * (`--env` or `PRIMITIVE_ENV`) but is invalid/unknown: surface the
42
45
  * resolver's error instead, so an explicit env selection never silently
43
46
  * generates code from a different synced environment.
44
47
  */
45
- import { existsSync, readdirSync } from "fs";
48
+ import { existsSync, readdirSync, statSync } from "fs";
46
49
  import { basename, dirname, join } from "path";
47
- import { getCurrentEnvironment, getExplicitEnvName } from "../env-resolver.js";
48
- import { resolveSyncDir, assertSafePathComponent } from "../sync-paths.js";
50
+ import { assertAppMatchesEnvironment } from "../app-match-guard.js";
51
+ import { PrimitiveEnvError, PROJECT_TREE_DIR } from "../env-resolver-core.js";
52
+ import { getCurrentEnvironment, getExplicitEnvName, getProjectConfig, } from "../env-resolver.js";
53
+ import { resolveSyncDir } from "../sync-paths.js";
49
54
  /**
50
55
  * Resolves the single source directory a codegen command should read its
51
56
  * `*.toml` schemas from. Throws a plain `Error` (with a user-facing message)
@@ -55,7 +60,18 @@ export function resolveCodegenSourceDir(args) {
55
60
  const { subdir, options } = args;
56
61
  const cwd = args.cwd ?? process.cwd();
57
62
  // 1. --dir is an explicit override: use <dir>/<subdir> verbatim.
63
+ //
64
+ // Naming the directory answers WHERE to read; it does not answer which
65
+ // app the caller may run as. An --app the environment does not name is
66
+ // the same mismatch every other tree command refuses (#3153, F1), and
67
+ // hearing about it must not depend on how the directory was chosen — so
68
+ // the guard runs here too, before the directory is touched. When the
69
+ // environment cannot be resolved at all there is nothing to compare
70
+ // against and nothing to confuse: the tree was named outright.
58
71
  if (options.syncDir) {
72
+ if (options.app) {
73
+ assertAppMatchesEnvironment(options.app, safeCurrentEnvironment(), "codegen");
74
+ }
59
75
  return requireExisting(join(options.syncDir, subdir), subdir, undefined);
60
76
  }
61
77
  // 2. Resolve the active environment. Call getCurrentEnvironment() directly
@@ -78,8 +94,13 @@ export function resolveCodegenSourceDir(args) {
78
94
  env = getCurrentEnvironment();
79
95
  }
80
96
  catch (err) {
97
+ // A project holding the pre-#3153 layout must never fall into the scan:
98
+ // the scan is what would read the old tree, which is the one outcome the
99
+ // refusal exists to prevent.
100
+ if (err instanceof PrimitiveEnvError && err.kind === "stale-layout")
101
+ throw err;
81
102
  if (options.app && !explicitEnvRequested) {
82
- return scanSyncTree({ subdir, appId: options.app, cwd });
103
+ return scanSyncTree({ subdir, cwd, app: options.app });
83
104
  }
84
105
  throw err;
85
106
  }
@@ -88,68 +109,101 @@ export function resolveCodegenSourceDir(args) {
88
109
  // credentials slot naming a different app would be a codegen run reading
89
110
  // another app's tree.
90
111
  if (env) {
91
- const appId = options.app ?? env.config.appId;
92
- // resolveSyncDir re-reads the (cached) resolved env and guards appId via
93
- // assertSafePathComponent, so an unsafe --app is rejected here.
94
- const dir = join(resolveSyncDir({ appId }), subdir);
95
- return requireExisting(dir, subdir, appId);
112
+ // The app is the environment's, and only the environment's: the tree path
113
+ // no longer carries one (#3153). An --app naming a different app would
114
+ // generate this environment's types from another app's schema, so it is
115
+ // refused here, before any file is read.
116
+ assertAppMatchesEnvironment(options.app, env, "codegen");
117
+ const dir = join(resolveSyncDir(), subdir);
118
+ return requireExisting(dir, subdir, env.config.appId);
96
119
  }
97
- // 4. Legacy / bare-dir mode (no .primitive/config.json): scan the sync tree,
98
- // filtered to --app when given. This preserves the pre-#1510 behavior.
99
- return scanSyncTree({ subdir, appId: options.app, cwd });
120
+ // 4. Legacy / bare-dir mode (no primitive/config.json): scan the tree.
121
+ // This preserves the pre-#1510 behavior; #3154 deletes it outright.
122
+ return scanSyncTree({ subdir, cwd, app: options.app });
100
123
  }
101
124
  /**
102
- * Legacy fallback: scan `<cwd>/.primitive/sync/<env>/<app>/<subdir>` for a
103
- * source directory. When `appId` is given, only that app's slots are
104
- * considered. Resolves to the single match; errors clearly on zero or on
105
- * ambiguity (naming the candidate apps or envs).
125
+ * The resolved environment, or null when none can be resolved — the form the
126
+ * `--dir` branch needs, where an unresolvable environment is not an error but
127
+ * simply nothing to check the app against. Every other branch surfaces the
128
+ * resolver's error, which is what makes an explicit `--env` selection binding.
129
+ */
130
+ function safeCurrentEnvironment() {
131
+ try {
132
+ return getCurrentEnvironment();
133
+ }
134
+ catch {
135
+ return null;
136
+ }
137
+ }
138
+ /**
139
+ * Legacy fallback: scan `<cwd>/primitive/<env>/<subdir>` for a source
140
+ * directory. Resolves to the single match; errors clearly on zero or on
141
+ * ambiguity (naming the candidate envs), which `--env` resolves. #3154 deletes
142
+ * this branch.
143
+ *
144
+ * The tree path no longer carries the app segment that used to partition this
145
+ * scan (#3153), so when the project config IS readable — the environment just
146
+ * could not be selected — `--app` narrows the candidates itself: an
147
+ * environment the config binds to another app is not a directory this app's
148
+ * codegen may read. Without a config there is nothing to check against (bare
149
+ * mode), and every environment directory is a candidate as before.
106
150
  */
107
151
  function scanSyncTree(args) {
108
- const { subdir, appId, cwd } = args;
109
- // Defence-in-depth: an --app value flows into a file-system path below, so
110
- // reject separators / `..` before using it.
111
- if (appId)
112
- assertSafePathComponent(appId, "appId");
113
- const root = join(cwd, ".primitive", "sync");
152
+ const { subdir, cwd, app } = args;
153
+ const boundEnvs = app ? environmentsNamingApp(app) : null;
154
+ const root = join(cwd, PROJECT_TREE_DIR);
114
155
  const found = [];
115
156
  if (existsSync(root)) {
116
157
  for (const envName of readdirSync(root)) {
117
158
  const envDir = join(root, envName);
159
+ // `primitive/` also holds config.json; only directories are environments.
118
160
  try {
119
- for (const app of readdirSync(envDir)) {
120
- if (appId && app !== appId)
121
- continue;
122
- const candidate = join(envDir, app, subdir);
123
- if (existsSync(candidate))
124
- found.push(candidate);
125
- }
161
+ if (!statSync(envDir).isDirectory())
162
+ continue;
126
163
  }
127
164
  catch {
128
- // Not a directory (or unreadable) — skip.
165
+ continue;
129
166
  }
167
+ if (boundEnvs && !boundEnvs.has(envName))
168
+ continue;
169
+ const candidate = join(envDir, subdir);
170
+ if (existsSync(candidate))
171
+ found.push(candidate);
130
172
  }
131
173
  }
132
174
  if (found.length === 0) {
133
- throw new Error(notFoundMessage(subdir, appId));
175
+ throw new Error(notFoundMessage(subdir, boundEnvs ? app : undefined));
134
176
  }
135
177
  if (found.length > 1) {
136
- if (appId) {
137
- const envs = [
138
- ...new Set(found.map((d) => basename(dirname(dirname(d))))),
139
- ];
140
- throw new Error(`App "${appId}" has a ${subdir}/ directory under multiple environments: ` +
141
- `${envs.join(", ")}.\n` +
142
- found.map((d) => ` ${d}`).join("\n") +
143
- `\nPass --env <name> or --dir to select one.`);
144
- }
145
- const apps = [...new Set(found.map((d) => basename(dirname(d))))];
146
- throw new Error(`Found ${subdir}/ directories for more than one app/env:\n` +
178
+ const envs = [...new Set(found.map((d) => basename(dirname(d))))];
179
+ throw new Error(`Found ${subdir}/ directories under more than one environment: ` +
180
+ `${envs.join(", ")}.\n` +
147
181
  found.map((d) => ` ${d}`).join("\n") +
148
- `\nCodegen writes into one output dir, so it must run against one app. ` +
149
- `Pass --app <app-id> (found: ${apps.join(", ")}) or --dir to select one.`);
182
+ `\nCodegen writes into one output dir, so it must run against one ` +
183
+ `environment. Pass --env <name> or --dir to select one.`);
150
184
  }
151
185
  return found[0];
152
186
  }
187
+ /**
188
+ * The environments the project config binds to `app`, or null when there is no
189
+ * readable project config (bare mode: nothing to narrow the scan with).
190
+ */
191
+ function environmentsNamingApp(app) {
192
+ let config;
193
+ try {
194
+ config = getProjectConfig();
195
+ }
196
+ catch {
197
+ // A config that cannot be read cannot vouch for any environment; the scan
198
+ // stays as wide as it was rather than inventing a binding.
199
+ return null;
200
+ }
201
+ if (!config)
202
+ return null;
203
+ return new Set(Object.entries(config.environments)
204
+ .filter(([, entry]) => entry.appId === app)
205
+ .map(([name]) => name));
206
+ }
153
207
  /** Verifies `dir` exists, throwing the standard "no source dir" error otherwise. */
154
208
  function requireExisting(dir, subdir, appId) {
155
209
  if (!existsSync(dir)) {
@@ -159,8 +213,8 @@ function requireExisting(dir, subdir, appId) {
159
213
  }
160
214
  function notFoundMessage(subdir, appId) {
161
215
  return appId
162
- ? `No ${subdir}/ directory found for app "${appId}" under .primitive/sync/. ` +
163
- `Check the --app id, pass --dir, or run \`primitive config pull\` first.`
216
+ ? `No ${subdir}/ directory found for app "${appId}" under primitive/<env>/. ` +
217
+ `Pass --dir, or run \`primitive config pull\` first.`
164
218
  : `No ${subdir}/ directory found. Pass --dir or run \`primitive config pull\` first.`;
165
219
  }
166
220
  //# sourceMappingURL=resolveCodegenSourceDir.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveCodegenSourceDir.js","sourceRoot":"","sources":["../../../../src/lib/codegen-shared/resolveCodegenSourceDir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAsB3E;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAiC;IACvE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,iEAAiE;IACjE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;IAED,2EAA2E;IAC3E,uEAAuE;IACvE,2EAA2E;IAC3E,uEAAuE;IACvE,8EAA8E;IAC9E,0BAA0B;IAC1B,EAAE;IACF,qEAAqE;IACrE,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,uEAAuE;IACvE,uEAAuE;IACvE,gBAAgB;IAChB,MAAM,oBAAoB,GACxB,kBAAkB,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC/D,IAAI,GAA6C,CAAC;IAClD,IAAI,CAAC;QACH,GAAG,GAAG,qBAAqB,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACzC,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IACrE,4EAA4E;IAC5E,yBAAyB;IACzB,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAIrB;IACC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEpC,2EAA2E;IAC3E,4CAA4C;IAC5C,IAAI,KAAK;QAAE,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC;gBACH,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtC,IAAI,KAAK,IAAI,GAAG,KAAK,KAAK;wBAAE,SAAS;oBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC5C,IAAI,UAAU,CAAC,SAAS,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0CAA0C;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG;gBACX,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,CAAC;YACF,MAAM,IAAI,KAAK,CACb,QAAQ,KAAK,WAAW,MAAM,2CAA2C;gBACvE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBACvB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,6CAA6C,CAChD,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,4CAA4C;YACzD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,wEAAwE;YACxE,+BAA+B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,oFAAoF;AACpF,SAAS,eAAe,CACtB,GAAW,EACX,MAAc,EACd,KAAyB;IAEzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,KAAyB;IAChE,OAAO,KAAK;QACV,CAAC,CAAC,MAAM,MAAM,8BAA8B,KAAK,4BAA4B;YACzE,yEAAyE;QAC7E,CAAC,CAAC,MAAM,MAAM,uEAAuE,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"resolveCodegenSourceDir.js","sourceRoot":"","sources":["../../../../src/lib/codegen-shared/resolveCodegenSourceDir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAsBlD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAiC;IACvE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,iEAAiE;IACjE,EAAE;IACF,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,kEAAkE;IAClE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,2BAA2B,CAAC,OAAO,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,SAAS,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;IAED,2EAA2E;IAC3E,uEAAuE;IACvE,2EAA2E;IAC3E,uEAAuE;IACvE,8EAA8E;IAC9E,0BAA0B;IAC1B,EAAE;IACF,qEAAqE;IACrE,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,uEAAuE;IACvE,uEAAuE;IACvE,gBAAgB;IAChB,MAAM,oBAAoB,GACxB,kBAAkB,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC/D,IAAI,GAA6C,CAAC;IAClD,IAAI,CAAC;QACH,GAAG,GAAG,qBAAqB,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wEAAwE;QACxE,yEAAyE;QACzE,6BAA6B;QAC7B,IAAI,GAAG,YAAY,iBAAiB,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;YAAE,MAAM,GAAG,CAAC;QAC/E,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACzC,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IACrE,4EAA4E;IAC5E,yBAAyB;IACzB,IAAI,GAAG,EAAE,CAAC;QACR,0EAA0E;QAC1E,uEAAuE;QACvE,wEAAwE;QACxE,yCAAyC;QACzC,2BAA2B,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB;IAC7B,IAAI,CAAC;QACH,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,YAAY,CAAC,IAAmD;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,0EAA0E;YAC1E,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;oBAAE,SAAS;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,SAAS;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,iDAAiD;YAC9D,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACvB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,mEAAmE;YACnE,wDAAwD,CAC3D,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,IAAI,MAA2C,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,2DAA2D;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,IAAI,GAAG,CACZ,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,SAAS,eAAe,CACtB,GAAW,EACX,MAAc,EACd,KAAyB;IAEzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,KAAyB;IAChE,OAAO,KAAK;QACV,CAAC,CAAC,MAAM,MAAM,8BAA8B,KAAK,4BAA4B;YACzE,qDAAqD;QACzD,CAAC,CAAC,MAAM,MAAM,uEAAuE,CAAC;AAC1F,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * ~/.primitive/credentials.json and a handful of helpers here. After the
6
6
  * project-config overhaul (issue #373) credentials live per-environment
7
7
  * inside `<projectRoot>/.primitive/credentials.json` when a
8
- * .primitive/config.json is in scope, and fall back to the legacy global
8
+ * primitive/config.json is in scope, and fall back to the legacy global
9
9
  * file otherwise.
10
10
  *
11
11
  * The rest of the CLI continues to import from this module, so we keep
@@ -50,7 +50,7 @@ export declare function getServerUrl(): string;
50
50
  * - Project mode → the active environment's `apiUrl` (canonical). Lets
51
51
  * getCurrentEnvironment() throw on an unresolvable env (ambiguous/unknown
52
52
  * --env) so the caller can fail loudly instead of silently targeting prod.
53
- * - Legacy mode (no .primitive/config.json) → DEFAULT_SERVER_URL, which
53
+ * - Legacy mode (no primitive/config.json) → DEFAULT_SERVER_URL, which
54
54
  * honors the PRIMITIVE_SERVER_URL escape hatch (constants.ts).
55
55
  *
56
56
  * The trailing slash is stripped so callers can build `${url}/admin/api/...`.
@@ -5,7 +5,7 @@
5
5
  * ~/.primitive/credentials.json and a handful of helpers here. After the
6
6
  * project-config overhaul (issue #373) credentials live per-environment
7
7
  * inside `<projectRoot>/.primitive/credentials.json` when a
8
- * .primitive/config.json is in scope, and fall back to the legacy global
8
+ * primitive/config.json is in scope, and fall back to the legacy global
9
9
  * file otherwise.
10
10
  *
11
11
  * The rest of the CLI continues to import from this module, so we keep
@@ -100,7 +100,7 @@ export function getServerUrl() {
100
100
  * - Project mode → the active environment's `apiUrl` (canonical). Lets
101
101
  * getCurrentEnvironment() throw on an unresolvable env (ambiguous/unknown
102
102
  * --env) so the caller can fail loudly instead of silently targeting prod.
103
- * - Legacy mode (no .primitive/config.json) → DEFAULT_SERVER_URL, which
103
+ * - Legacy mode (no primitive/config.json) → DEFAULT_SERVER_URL, which
104
104
  * honors the PRIMITIVE_SERVER_URL escape hatch (constants.ts).
105
105
  *
106
106
  * The trailing slash is stripped so callers can build `${url}/admin/api/...`.
@@ -15,7 +15,7 @@
15
15
  * }
16
16
  * }
17
17
  *
18
- * Mode B (legacy mode): no .primitive/config.json in scope, so we fall back to
18
+ * Mode B (legacy mode): no primitive/config.json in scope, so we fall back to
19
19
  * ~/.primitive/credentials.json
20
20
  * with the flat Credentials shape the CLI has always used.
21
21
  *
@@ -25,7 +25,7 @@
25
25
  import type { Credentials } from "../types/index.js";
26
26
  export declare const PROJECT_LOCAL_DIR = ".primitive";
27
27
  export declare const PROJECT_CREDENTIALS_FILENAME = "credentials.json";
28
- /** Returns true when a .primitive/config.json is in scope (project mode active). */
28
+ /** Returns true when a primitive/config.json is in scope (project mode active). */
29
29
  export declare function isProjectMode(): boolean;
30
30
  /**
31
31
  * Returns the path to the credentials file that will be used, based on
@@ -38,7 +38,7 @@ export declare function getCredentialsFilePath(): string;
38
38
  * callers don't need to change.
39
39
  *
40
40
  * In project mode, we blend the per-env stored creds with the serverUrl
41
- * and appId from .primitive/config.json to produce the Credentials the rest of
41
+ * and appId from primitive/config.json to produce the Credentials the rest of
42
42
  * the CLI expects.
43
43
  */
44
44
  export declare function loadCredentialsStore(): Credentials | null;
@@ -15,7 +15,7 @@
15
15
  * }
16
16
  * }
17
17
  *
18
- * Mode B (legacy mode): no .primitive/config.json in scope, so we fall back to
18
+ * Mode B (legacy mode): no primitive/config.json in scope, so we fall back to
19
19
  * ~/.primitive/credentials.json
20
20
  * with the flat Credentials shape the CLI has always used.
21
21
  *
@@ -59,7 +59,7 @@ function stripRetiredCurrentApp(value) {
59
59
  }
60
60
  return value;
61
61
  }
62
- /** Returns true when a .primitive/config.json is in scope (project mode active). */
62
+ /** Returns true when a primitive/config.json is in scope (project mode active). */
63
63
  export function isProjectMode() {
64
64
  return getProjectConfig() !== null;
65
65
  }
@@ -160,7 +160,7 @@ function writeProjectCredentialsFile(projectRoot, file) {
160
160
  * callers don't need to change.
161
161
  *
162
162
  * In project mode, we blend the per-env stored creds with the serverUrl
163
- * and appId from .primitive/config.json to produce the Credentials the rest of
163
+ * and appId from primitive/config.json to produce the Credentials the rest of
164
164
  * the CLI expects.
165
165
  */
166
166
  export function loadCredentialsStore() {
@@ -1 +1 @@
1
- {"version":3,"file":"credentials-store.js","sourceRoot":"","sources":["../../../src/lib/credentials-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials-store.js","sourceRoot":"","sources":["../../../src/lib/credentials-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The `permissions.json` rows `primitive documents export` writes.
3
+ *
4
+ * Extracted from `exportSingleDocument` (#2951) so the shape change it went
5
+ * through is testable without a server. The export used to merge the legacy
6
+ * `GET /documents/:id/invitations` array — filtering `accepted` and
7
+ * `expiresAt` client-side — into the permission rows. That route is removed;
8
+ * pending entries now come from `GET /documents/:id/pending-invitations`,
9
+ * which returns a `{ items }` envelope of deferred grants the server has
10
+ * already filtered down to unresolved, unexpired, still-invited ones.
11
+ *
12
+ * The export tolerates the pending read failing (an older server answers 403
13
+ * or 404): the caller swallows the error and passes `null`, and the export
14
+ * still writes the permission rows.
15
+ */
16
+ export interface ExportedPermissionRow {
17
+ email: string;
18
+ permission: string;
19
+ grantedAt?: string;
20
+ source?: "invitation";
21
+ status?: "pending";
22
+ }
23
+ /**
24
+ * Merge a document's permission rows and its pending deferred grants into the
25
+ * single email-keyed list `permissions.json` carries.
26
+ *
27
+ * @param permissionsResponse - `GET /documents/:id/permissions`, or `null` when the read failed.
28
+ * @param pendingResponse - `GET /documents/:id/pending-invitations`, or `null` when the read failed.
29
+ */
30
+ export declare function buildPermissionsExport(permissionsResponse: unknown, pendingResponse: unknown): ExportedPermissionRow[];
@@ -0,0 +1,54 @@
1
+ /**
2
+ * The `permissions.json` rows `primitive documents export` writes.
3
+ *
4
+ * Extracted from `exportSingleDocument` (#2951) so the shape change it went
5
+ * through is testable without a server. The export used to merge the legacy
6
+ * `GET /documents/:id/invitations` array — filtering `accepted` and
7
+ * `expiresAt` client-side — into the permission rows. That route is removed;
8
+ * pending entries now come from `GET /documents/:id/pending-invitations`,
9
+ * which returns a `{ items }` envelope of deferred grants the server has
10
+ * already filtered down to unresolved, unexpired, still-invited ones.
11
+ *
12
+ * The export tolerates the pending read failing (an older server answers 403
13
+ * or 404): the caller swallows the error and passes `null`, and the export
14
+ * still writes the permission rows.
15
+ */
16
+ /** Unwrap a list that may arrive bare, or under `items`, or under a named key. */
17
+ function rows(value, key) {
18
+ if (Array.isArray(value))
19
+ return value;
20
+ if (value && typeof value === "object") {
21
+ const envelope = value;
22
+ for (const candidate of ["items", key]) {
23
+ if (Array.isArray(envelope[candidate]))
24
+ return envelope[candidate];
25
+ }
26
+ }
27
+ return [];
28
+ }
29
+ /**
30
+ * Merge a document's permission rows and its pending deferred grants into the
31
+ * single email-keyed list `permissions.json` carries.
32
+ *
33
+ * @param permissionsResponse - `GET /documents/:id/permissions`, or `null` when the read failed.
34
+ * @param pendingResponse - `GET /documents/:id/pending-invitations`, or `null` when the read failed.
35
+ */
36
+ export function buildPermissionsExport(permissionsResponse, pendingResponse) {
37
+ const granted = rows(permissionsResponse, "permissions")
38
+ .filter((p) => p?.email)
39
+ .map((p) => ({
40
+ email: p.email,
41
+ permission: p.permission,
42
+ grantedAt: p.grantedAt,
43
+ }));
44
+ const pending = rows(pendingResponse, "invitations")
45
+ .filter((i) => i?.email)
46
+ .map((i) => ({
47
+ email: i.email,
48
+ permission: i.permission,
49
+ source: "invitation",
50
+ status: "pending",
51
+ }));
52
+ return [...granted, ...pending];
53
+ }
54
+ //# sourceMappingURL=document-export-permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-export-permissions.js","sourceRoot":"","sources":["../../../src/lib/document-export-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,kFAAkF;AAClF,SAAS,IAAI,CAAC,KAAc,EAAE,GAAW;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,KAAgC,CAAC;QAClD,KAAK,MAAM,SAAS,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,mBAA4B,EAC5B,eAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC;SACrD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC,CAAC,CAAC;IAEN,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC;SACjD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,YAAqB;QAC7B,MAAM,EAAE,SAAkB;KAC3B,CAAC,CAAC,CAAC;IAEN,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;AAClC,CAAC"}
@@ -29,20 +29,39 @@
29
29
  * 4. defaultEnvironment (the committed team default)
30
30
  * 5. the sole environment, if there is exactly one
31
31
  */
32
- /** Schema version of `.primitive/config.json` this core understands. */
32
+ /** Schema version of `primitive/config.json` this core understands. */
33
33
  export declare const PRIMITIVE_CONFIG_VERSION = 1;
34
34
  /** Schema version of `.primitive/local.json` this core writes and reads. */
35
35
  export declare const PRIMITIVE_LOCAL_STATE_VERSION = 1;
36
- export declare const PROJECT_CONFIG_DIR = ".primitive";
36
+ /**
37
+ * The two directories, split apart by #3153 so one name never means two
38
+ * things: `primitive/` is the COMMITTED tree (the config and every
39
+ * environment's TOML), `.primitive/` is MACHINE-LOCAL state (credentials, this
40
+ * machine's selection, snapshot backups) and is gitignored whole.
41
+ */
42
+ export declare const PROJECT_TREE_DIR = "primitive";
43
+ export declare const PROJECT_LOCAL_STATE_DIR = ".primitive";
37
44
  export declare const PROJECT_CONFIG_FILENAME = "config.json";
38
45
  export declare const LOCAL_STATE_FILENAME = "local.json";
39
- export declare const PROJECT_CONFIG_DISPLAY_NAME = ".primitive/config.json";
46
+ export declare const PROJECT_CONFIG_DISPLAY_NAME = "primitive/config.json";
40
47
  export declare const LOCAL_STATE_DISPLAY_NAME = ".primitive/local.json";
48
+ /** The docs-site slug of the migration procedure (#3155 publishes the page). */
49
+ export declare const MIGRATION_GUIDE_SLUG = "getting-started/cli-project-migration";
50
+ /**
51
+ * The one refusal for a project still holding the pre-#3153 layout.
52
+ *
53
+ * There is no fallback read: a tool that quietly read `.primitive/sync/` after
54
+ * the move would let a half-migrated project look healthy while push and pull
55
+ * disagreed about which tree is the truth. So every reader — this core, the
56
+ * generated Vite-plugin copy, the Swift pre-build script — stops here and names
57
+ * the document that says what to move where.
58
+ */
59
+ export declare function staleLayoutMessage(detail: string): string;
41
60
  /**
42
61
  * Error kinds callers branch on. Every failure is one of these — no reader is
43
62
  * ever left guessing what a broken config meant.
44
63
  */
45
- export type PrimitiveEnvErrorKind = "missing-config" | "malformed-config" | "unsupported-version" | "corrupt-local-state" | "unknown-environment" | "no-selection" | "missing-app-id";
64
+ export type PrimitiveEnvErrorKind = "missing-config" | "malformed-config" | "unsupported-version" | "corrupt-local-state" | "unknown-environment" | "no-selection" | "missing-app-id" | "stale-layout";
46
65
  export declare class PrimitiveEnvError extends Error {
47
66
  readonly kind: PrimitiveEnvErrorKind;
48
67
  readonly path?: string;
@@ -152,22 +171,35 @@ export interface ResolveOptions {
152
171
  */
153
172
  export declare function deriveWsUrl(apiUrl: string): string;
154
173
  /**
155
- * Finds `.primitive/config.json` by walking up from `cwd`, or returns the
174
+ * Finds `primitive/config.json` by walking up from `cwd`, or returns the
156
175
  * PRIMITIVE_PROJECT_CONFIG override when it is set (and exists).
176
+ *
177
+ * The override is checked for provenance BEFORE the file is read (#3153, F2):
178
+ * it bypasses the walk, so without this an old-layout config could be handed
179
+ * straight to a reader and defeat the cutover.
180
+ *
181
+ * Every return is checked against the root it implies, not just the levels the
182
+ * walk passed through: this is the one function every reader goes through —
183
+ * `resolvePrimitiveEnv` and the CLI's own `loadProjectConfig`/`findProjectRoot`
184
+ * alike — so a half-migrated project must be refused HERE, or the commands that
185
+ * never call `resolvePrimitiveEnv` would read the new tree with the old one
186
+ * still beside it.
157
187
  */
158
188
  export declare function findPrimitiveConfigPath(options?: {
159
189
  cwd?: string;
160
190
  env?: Record<string, string | undefined>;
161
191
  }): string | null;
162
192
  /**
163
- * The project root for a config path: the parent of `.primitive/`, or the
193
+ * The project root for a config path: the parent of `primitive/`, or the
164
194
  * containing directory when the config was pointed at directly (a fixture via
165
- * PRIMITIVE_PROJECT_CONFIG, which is not inside a `.primitive/` directory).
195
+ * PRIMITIVE_PROJECT_CONFIG, which is not inside a `primitive/` directory).
166
196
  */
167
197
  export declare function projectRootForConfigPath(configPath: string): string;
168
198
  /**
169
- * Local state lives beside the config it belongs to, so a fixture-pointed
170
- * config never picks up a real project's selection and vice versa.
199
+ * Machine-local state lives under the project root's `.primitive/`, not beside
200
+ * the config — the config is committed now, and the two must not share a
201
+ * directory. A fixture-pointed bare config still gets its own `.primitive/`
202
+ * in its own directory, so it never picks up a real project's selection.
171
203
  */
172
204
  export declare function localStatePathForConfigPath(configPath: string): string;
173
205
  /**