primitive-admin 1.2.0-alpha.7 → 1.2.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +8 -2
  2. package/assets/skill/skills/primitive-platform/SKILL.md +12 -6
  3. package/dist/src/commands/apps-children.js +2 -0
  4. package/dist/src/commands/apps-children.js.map +1 -1
  5. package/dist/src/commands/auth.js +107 -33
  6. package/dist/src/commands/auth.js.map +1 -1
  7. package/dist/src/commands/databases.js +13 -1
  8. package/dist/src/commands/databases.js.map +1 -1
  9. package/dist/src/commands/documents.js +70 -11
  10. package/dist/src/commands/documents.js.map +1 -1
  11. package/dist/src/commands/sync-app-settings.d.ts +12 -2
  12. package/dist/src/commands/sync-app-settings.js +35 -10
  13. package/dist/src/commands/sync-app-settings.js.map +1 -1
  14. package/dist/src/commands/sync.js +44 -10
  15. package/dist/src/commands/sync.js.map +1 -1
  16. package/dist/src/lib/api-client.d.ts +25 -6
  17. package/dist/src/lib/api-client.js +106 -72
  18. package/dist/src/lib/api-client.js.map +1 -1
  19. package/dist/src/lib/app-settings-descriptor.d.ts +38 -0
  20. package/dist/src/lib/app-settings-descriptor.js +96 -4
  21. package/dist/src/lib/app-settings-descriptor.js.map +1 -1
  22. package/dist/src/lib/credentials-home.d.ts +51 -0
  23. package/dist/src/lib/credentials-home.js +169 -0
  24. package/dist/src/lib/credentials-home.js.map +1 -0
  25. package/dist/src/lib/credentials-lock.d.ts +80 -0
  26. package/dist/src/lib/credentials-lock.js +222 -0
  27. package/dist/src/lib/credentials-lock.js.map +1 -0
  28. package/dist/src/lib/credentials-store.d.ts +56 -4
  29. package/dist/src/lib/credentials-store.js +236 -78
  30. package/dist/src/lib/credentials-store.js.map +1 -1
  31. package/dist/src/lib/env-resolver-core.d.ts +1 -1
  32. package/dist/src/lib/env-resolver-core.js.map +1 -1
  33. package/dist/src/lib/function-bundle.d.ts +38 -18
  34. package/dist/src/lib/function-bundle.js +60 -35
  35. package/dist/src/lib/function-bundle.js.map +1 -1
  36. package/dist/src/lib/function-document-types.d.ts +5 -3
  37. package/dist/src/lib/function-document-types.js +10 -14
  38. package/dist/src/lib/function-document-types.js.map +1 -1
  39. package/dist/src/lib/function-source-roots.d.ts +67 -0
  40. package/dist/src/lib/function-source-roots.js +148 -0
  41. package/dist/src/lib/function-source-roots.js.map +1 -0
  42. package/dist/src/lib/function-sync.d.ts +27 -0
  43. package/dist/src/lib/function-sync.js +16 -3
  44. package/dist/src/lib/function-sync.js.map +1 -1
  45. package/dist/src/lib/function-typecheck.d.ts +37 -2
  46. package/dist/src/lib/function-typecheck.js +210 -28
  47. package/dist/src/lib/function-typecheck.js.map +1 -1
  48. package/dist/src/lib/generated-config-surfaces.js +21 -10
  49. package/dist/src/lib/generated-config-surfaces.js.map +1 -1
  50. package/dist/src/lib/generated-sdk-types.d.ts +1 -1
  51. package/dist/src/lib/generated-sdk-types.js +1 -1
  52. package/dist/src/lib/generated-sdk-types.js.map +1 -1
  53. package/dist/src/lib/login-scope-lines.d.ts +1 -1
  54. package/dist/src/lib/login-scope-lines.js +1 -1
  55. package/dist/src/lib/login-scope-lines.js.map +1 -1
  56. package/dist/src/lib/project-config.d.ts +7 -0
  57. package/dist/src/lib/project-config.js +22 -1
  58. package/dist/src/lib/project-config.js.map +1 -1
  59. package/dist/src/lib/root-import-decision.d.ts +9 -4
  60. package/dist/src/lib/root-import-decision.js +24 -3
  61. package/dist/src/lib/root-import-decision.js.map +1 -1
  62. package/dist/src/lib/scope-request.d.ts +8 -5
  63. package/dist/src/lib/scope-request.js +17 -8
  64. package/dist/src/lib/scope-request.js.map +1 -1
  65. package/package.json +2 -2
@@ -8,27 +8,34 @@
8
8
  * in one envelope. The server verifies the hash and stores the object; it does
9
9
  * not compile anything.
10
10
  *
11
- * ── The two import rules ─────────────────────────────────────────────────
11
+ * ── Where an imported file may come from ───────────────────────────────
12
12
  *
13
- * They look contradictory and are not (F-005):
13
+ * Every file the build read is classified by its REAL path, never by how it
14
+ * was imported (F-005, widened by #4502):
14
15
  *
15
- * - A **filesystem import** — relative or absolute — must stay inside the
16
- * config tree. `entry`, every import it reaches, and every symlink they
17
- * traverse are realpath-resolved and checked against the tree root, so a
18
- * push can never read a file off a developer's disk that the tree does not
19
- * contain.
20
- * - A **bare package specifier** is exempt. It resolves through Node into an
21
- * ancestor `node_modules`, which is outside every config tree by
22
- * construction; esbuild inlines it into the bundle, and it is never
23
- * captured as an authored source (so `config pull` never writes
24
- * `node_modules` content back).
16
+ * 1. Inside the config tree → a **tree source**: captured as authored bytes
17
+ * and stored with the version, so `config pull` hands it back. An
18
+ * in-tree `node_modules` file still builds and is not captured.
19
+ * 2. Inside a directory the project declares in `functionSources` → a
20
+ * **shared source**: bundled, typechecked, and never captured. The
21
+ * repository is its source of truth, as it is for an npm package, so it is
22
+ * listed in `projectSources` for the typechecker and nowhere else.
23
+ * 3. Under a `node_modules` directory AND reached by a bare specifier (or
24
+ * from a file one reached) → a **dependency**: inlined, never captured.
25
+ * 4. Anything else → an **escape**, refused. A push can never read a file
26
+ * off a developer's disk that neither the tree nor a declaration admits.
25
27
  *
26
- * The exemption follows the specifier, not the path a file happens to sit at.
27
- * A resolver plugin records the files a BARE specifier reached (and the files
28
- * those reach in turn), so `import "../../node_modules/private/index.js"` — a
29
- * relative filesystem import that merely lands in a `node_modules` directory —
30
- * is still an escape and still refused. Deciding by path would have let that
31
- * one specifier read any file on the disk and upload it.
28
+ * Rule 3 keeps two conditions on purpose. The provenance half: a resolver
29
+ * plugin records the files a BARE specifier reached, so `import
30
+ * "../../node_modules/private/index.js"` — a relative import that merely lands
31
+ * in a `node_modules` directory — is still an escape. Deciding by path alone
32
+ * would let that one specifier read any file on the disk and upload it. The
33
+ * path half: a bare specifier is not a free pass either. esbuild honours each
34
+ * file's nearest tsconfig `paths`, so a shared file's `@/util/h` resolves into
35
+ * the web app's own source, and a workspace package is a symlink to a
36
+ * directory the repository owns. Both are bare specifiers landing on ordinary
37
+ * files outside `node_modules`, so both are escapes unless their directory is
38
+ * declared — after which they are shared sources, bundled AND typechecked.
32
39
  *
33
40
  * `primitive-functions` is the one bare specifier left EXTERNAL: the loader
34
41
  * (#3180) supplies it at invoke time, so baking a copy into every bundle would
@@ -104,6 +111,13 @@ export interface BuiltFunctionBundle {
104
111
  contentHash: string;
105
112
  /** Every authored file the build read, sorted by path. */
106
113
  sources: FunctionSourceFile[];
114
+ /**
115
+ * The shared sources the bundle inlined from declared `functionSources`
116
+ * directories: POSIX paths relative to the real tree root
117
+ * (`../../web/src/engine/x.ts`), sorted. Never stored or sent — the push
118
+ * hands them to the typechecker.
119
+ */
120
+ projectSources: string[];
107
121
  }
108
122
  export interface EnvelopeShape {
109
123
  schemaVersion: number;
@@ -144,4 +158,10 @@ export declare function buildFunctionBundle(options: {
144
158
  entry: string;
145
159
  /** Only for the message; the key is not part of the build. */
146
160
  functionKey: string;
161
+ /**
162
+ * The declared `functionSources` directories, as absolute paths. Defaults
163
+ * to what the selected project config declares; the push loop resolves them
164
+ * once and passes them, so their warnings are printed once.
165
+ */
166
+ sourceRoots?: readonly string[];
147
167
  }): Promise<BuiltFunctionBundle>;
@@ -8,27 +8,34 @@
8
8
  * in one envelope. The server verifies the hash and stores the object; it does
9
9
  * not compile anything.
10
10
  *
11
- * ── The two import rules ─────────────────────────────────────────────────
11
+ * ── Where an imported file may come from ───────────────────────────────
12
12
  *
13
- * They look contradictory and are not (F-005):
13
+ * Every file the build read is classified by its REAL path, never by how it
14
+ * was imported (F-005, widened by #4502):
14
15
  *
15
- * - A **filesystem import** — relative or absolute — must stay inside the
16
- * config tree. `entry`, every import it reaches, and every symlink they
17
- * traverse are realpath-resolved and checked against the tree root, so a
18
- * push can never read a file off a developer's disk that the tree does not
19
- * contain.
20
- * - A **bare package specifier** is exempt. It resolves through Node into an
21
- * ancestor `node_modules`, which is outside every config tree by
22
- * construction; esbuild inlines it into the bundle, and it is never
23
- * captured as an authored source (so `config pull` never writes
24
- * `node_modules` content back).
16
+ * 1. Inside the config tree → a **tree source**: captured as authored bytes
17
+ * and stored with the version, so `config pull` hands it back. An
18
+ * in-tree `node_modules` file still builds and is not captured.
19
+ * 2. Inside a directory the project declares in `functionSources` → a
20
+ * **shared source**: bundled, typechecked, and never captured. The
21
+ * repository is its source of truth, as it is for an npm package, so it is
22
+ * listed in `projectSources` for the typechecker and nowhere else.
23
+ * 3. Under a `node_modules` directory AND reached by a bare specifier (or
24
+ * from a file one reached) → a **dependency**: inlined, never captured.
25
+ * 4. Anything else → an **escape**, refused. A push can never read a file
26
+ * off a developer's disk that neither the tree nor a declaration admits.
25
27
  *
26
- * The exemption follows the specifier, not the path a file happens to sit at.
27
- * A resolver plugin records the files a BARE specifier reached (and the files
28
- * those reach in turn), so `import "../../node_modules/private/index.js"` — a
29
- * relative filesystem import that merely lands in a `node_modules` directory —
30
- * is still an escape and still refused. Deciding by path would have let that
31
- * one specifier read any file on the disk and upload it.
28
+ * Rule 3 keeps two conditions on purpose. The provenance half: a resolver
29
+ * plugin records the files a BARE specifier reached, so `import
30
+ * "../../node_modules/private/index.js"` — a relative import that merely lands
31
+ * in a `node_modules` directory — is still an escape. Deciding by path alone
32
+ * would let that one specifier read any file on the disk and upload it. The
33
+ * path half: a bare specifier is not a free pass either. esbuild honours each
34
+ * file's nearest tsconfig `paths`, so a shared file's `@/util/h` resolves into
35
+ * the web app's own source, and a workspace package is a symlink to a
36
+ * directory the repository owns. Both are bare specifiers landing on ordinary
37
+ * files outside `node_modules`, so both are escapes unless their directory is
38
+ * declared — after which they are shared sources, bundled AND typechecked.
32
39
  *
33
40
  * `primitive-functions` is the one bare specifier left EXTERNAL: the loader
34
41
  * (#3180) supplies it at invoke time, so baking a copy into every bundle would
@@ -73,6 +80,7 @@ import * as esbuild from "esbuild";
73
80
  import { createHash } from "crypto";
74
81
  import { existsSync, readFileSync, realpathSync } from "fs";
75
82
  import { isAbsolute, relative, resolve, sep } from "path";
83
+ import { FUNCTION_SOURCES_KEY, isInsideDirectory, resolveFunctionSourceRoots, } from "./function-source-roots.js";
76
84
  /** The module the loader supplies; never bundled. */
77
85
  export const PRIMITIVE_FUNCTIONS_MODULE = "primitive-functions";
78
86
  /** What that module was called before #3209. Refused at push, by name. */
@@ -170,7 +178,17 @@ function outsideRoot(root, candidate) {
170
178
  function escapeRefusal(what, path) {
171
179
  return new FunctionBuildError(`${what} '${path}' resolves outside the config tree root. ` +
172
180
  "Filesystem imports must stay inside the config tree; npm packages are " +
173
- "imported by name and inlined into the bundle.");
181
+ "imported by name and inlined into the bundle. To share code from " +
182
+ `another directory, declare it in "${FUNCTION_SOURCES_KEY}" in primitive/config.json.`);
183
+ }
184
+ /** The real path, or the spelling itself when it cannot be resolved. */
185
+ function realOrSelf(path) {
186
+ try {
187
+ return realpathSync(path);
188
+ }
189
+ catch {
190
+ return path;
191
+ }
174
192
  }
175
193
  /**
176
194
  * Build one function's bundle and collect its authored sources.
@@ -181,6 +199,8 @@ function escapeRefusal(what, path) {
181
199
  export async function buildFunctionBundle(options) {
182
200
  const { configDir, entry, functionKey } = options;
183
201
  const treeRoot = realpathSync(resolve(configDir));
202
+ const sourceRoots = (options.sourceRoots ??
203
+ resolveFunctionSourceRoots(configDir).roots.map((root) => root.absolute)).map((root) => realOrSelf(resolve(root)));
184
204
  // 1. The entry, lexically. An escaping entry is refused as an escape even
185
205
  // when the file it names does not exist — "no such file" would be a
186
206
  // misleading answer to `entry = "../../etc/passwd"`.
@@ -299,26 +319,30 @@ export async function buildFunctionBundle(options) {
299
319
  }
300
320
  const bundle = Buffer.from(output.contents);
301
321
  // 3. Every file the build actually read, from the metafile — the honest list,
302
- // rather than a re-parse of the imports. A file a BARE specifier reached is
303
- // an inlined dependency and is dropped; every other input is a filesystem
304
- // import, and one outside the tree is an escape esbuild followed that the
305
- // push refuses.
322
+ // rather than a re-parse of the imports — classified by its real path in
323
+ // the order the module note gives.
306
324
  const sources = [];
325
+ const projectSources = new Set();
307
326
  for (const input of Object.keys(result.metafile?.inputs ?? {})) {
308
- const path = toPosix(input);
309
327
  const absolute = resolve(treeRoot, input);
310
- if (isDependencyFile(absolute))
311
- continue;
312
- if (path.startsWith("..") || isAbsolute(input)) {
313
- throw escapeRefusal("import", path);
314
- }
315
- if (outsideRoot(treeRoot, realpathSync(absolute)) !== null) {
316
- throw escapeRefusal("import", path);
328
+ const real = realOrSelf(absolute);
329
+ const inNodeModules = real.split(sep).includes("node_modules");
330
+ if (!isInsideDirectory(treeRoot, real)) {
331
+ // A dependency a bare specifier reached is inlined even when it sits
332
+ // under a declared directory: it is a package, not shared source.
333
+ if (inNodeModules && isDependencyFile(absolute))
334
+ continue;
335
+ if (sourceRoots.some((root) => isInsideDirectory(root, real))) {
336
+ projectSources.add(toPosix(relative(treeRoot, real)));
337
+ continue;
338
+ }
339
+ throw escapeRefusal("import", toPosix(relative(treeRoot, real)));
317
340
  }
318
- // In-tree `node_modules` reached by a filesystem import: inside the
319
- // boundary, so it builds — but `config pull` refuses to write a stored
320
- // `node_modules` path, so capturing it would promise a round trip that
321
- // cannot be kept.
341
+ const path = toPosix(relative(treeRoot, real));
342
+ // In-tree `node_modules`, reached by a bare specifier or a filesystem
343
+ // import: inside the boundary, so it builds — but `config pull` refuses to
344
+ // write a stored `node_modules` path, so capturing it would promise a round
345
+ // trip that cannot be kept.
322
346
  if (isDependencyPath(path))
323
347
  continue;
324
348
  const content = readFileSync(absolute);
@@ -336,6 +360,7 @@ export async function buildFunctionBundle(options) {
336
360
  bundle,
337
361
  contentHash: createHash("sha256").update(bundle).digest("hex"),
338
362
  sources,
363
+ projectSources: [...projectSources].sort(),
339
364
  };
340
365
  }
341
366
  //# sourceMappingURL=function-bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"function-bundle.js","sourceRoot":"","sources":["../../../src/lib/function-bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-bundle.js","sourceRoot":"","sources":["../../../src/lib/function-bundle.ts"],"names":[],"mappings":"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"}
@@ -75,9 +75,11 @@ export interface DocumentSchemaSource {
75
75
  content: string;
76
76
  }
77
77
  /**
78
- * The project root a config tree belongs to: the directory holding
79
- * `primitive/config.json`, walking up from the tree. Null when the tree is a
80
- * bare directory with no project around it (`--dir` at a scratch path).
78
+ * The project root a config tree belongs to: the root of the project config
79
+ * the resolver contract selects — `PRIMITIVE_PROJECT_CONFIG` when it is set,
80
+ * else `primitive/config.json` walking up from the tree (#4502). Null when no
81
+ * config is selected (`--dir` at a scratch path). The stale-layout refusal
82
+ * propagates, as it does from every other reader.
81
83
  */
82
84
  export declare function projectRootFor(configDir: string): string | null;
83
85
  /**
@@ -19,12 +19,13 @@
19
19
  * don't work".
20
20
  */
21
21
  import { existsSync, readFileSync } from "fs";
22
- import { dirname, join, resolve, sep } from "path";
22
+ import { join, resolve, sep } from "path";
23
23
  import { loadSchemaFromTomlString } from "js-bao";
24
24
  import { parseConfigToml, stringifyConfigToml } from "./config-toml.js";
25
25
  import { tsTypeForDbFieldType } from "./db-codegen/dbTsTypes.js";
26
26
  import { objectPropertyKey } from "./db-codegen/dbNaming.js";
27
- import { PROJECT_CONFIG_FILENAME, PROJECT_TREE_DIR } from "./env-resolver-core.js";
27
+ import { projectRootForConfigPath } from "./env-resolver-core.js";
28
+ import { findProjectConfigPath } from "./project-config.js";
28
29
  /** The regenerated declaration beside `primitive-db-types.d.ts`. */
29
30
  export const DOCUMENT_TYPES_DECLARATION_FILE = "primitive-document-types.d.ts";
30
31
  /** The canonical document schema, relative to the project root. */
@@ -105,20 +106,15 @@ function fieldType(type, enumValues) {
105
106
  return tsTypeForDbFieldType(type);
106
107
  }
107
108
  /**
108
- * The project root a config tree belongs to: the directory holding
109
- * `primitive/config.json`, walking up from the tree. Null when the tree is a
110
- * bare directory with no project around it (`--dir` at a scratch path).
109
+ * The project root a config tree belongs to: the root of the project config
110
+ * the resolver contract selects — `PRIMITIVE_PROJECT_CONFIG` when it is set,
111
+ * else `primitive/config.json` walking up from the tree (#4502). Null when no
112
+ * config is selected (`--dir` at a scratch path). The stale-layout refusal
113
+ * propagates, as it does from every other reader.
111
114
  */
112
115
  export function projectRootFor(configDir) {
113
- let dir = resolve(configDir);
114
- for (;;) {
115
- if (existsSync(join(dir, PROJECT_TREE_DIR, PROJECT_CONFIG_FILENAME)))
116
- return dir;
117
- const parent = dirname(dir);
118
- if (parent === dir)
119
- return null;
120
- dir = parent;
121
- }
116
+ const configPath = findProjectConfigPath(resolve(configDir));
117
+ return configPath ? projectRootForConfigPath(configPath) : null;
122
118
  }
123
119
  /**
124
120
  * The document schema a tree's functions are typed against, or null when the
@@ -1 +1 @@
1
- {"version":3,"file":"function-document-types.js","sourceRoot":"","sources":["../../../src/lib/function-document-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-document-types.js","sourceRoot":"","sources":["../../../src/lib/function-document-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The directories outside the config tree that function code may import from
3
+ * — `functionSources` in `primitive/config.json` (#4502).
4
+ *
5
+ * An app whose server functions reuse TypeScript its web client already runs
6
+ * declares the directories that code lives in. A file under one is a SHARED
7
+ * source: `config push` bundles it and typechecks it like the tree's own
8
+ * files, and never stores it in the envelope — the repository is its source of
9
+ * truth, the way it is for an npm package.
10
+ *
11
+ * The declaration is checked twice, at the two moments each half can be
12
+ * answered:
13
+ *
14
+ * - its SHAPE when the file loads (`validateFunctionSourcesShape`, called by
15
+ * `validateProjectConfig`), so every command that reads the config names a
16
+ * malformed entry: relative, non-empty, no `node_modules` segment. `..` is
17
+ * allowed, for the monorepo whose `primitive/` sits in a sub-package beside
18
+ * the shared code;
19
+ * - its CONTAINMENT at push (`resolveFunctionSourceRoots`), because it is a
20
+ * fact about the disk: each entry is realpath-resolved and must land inside
21
+ * the git repository root around the project, or inside the project root
22
+ * when there is no repository. An entry that does not exist or escapes is
23
+ * dropped for that push with one warning naming it, and an import into it
24
+ * is then refused like any other escape.
25
+ *
26
+ * The config read is the one the resolver contract selects
27
+ * (`findProjectConfigPath`), so `PRIMITIVE_PROJECT_CONFIG` decides here exactly
28
+ * as it does for every other reader.
29
+ */
30
+ /** The `primitive/config.json` key that declares the directories. */
31
+ export declare const FUNCTION_SOURCES_KEY = "functionSources";
32
+ /** A declared directory that survived containment, for one push. */
33
+ export interface FunctionSourceRoot {
34
+ /** The entry as declared (backslashes normalized). */
35
+ declared: string;
36
+ /** Its real path — what a bundled input's real path is compared against. */
37
+ absolute: string;
38
+ }
39
+ /** The roots a push admits, and what it should say once about the rest. */
40
+ export interface FunctionSourceRoots {
41
+ roots: FunctionSourceRoot[];
42
+ warnings: string[];
43
+ }
44
+ /** A shape problem with the declaration, worded to name the entry. */
45
+ export declare class FunctionSourcesShapeError extends Error {
46
+ constructor(message: string);
47
+ }
48
+ /**
49
+ * The declared entries, normalized, or a `FunctionSourcesShapeError` naming
50
+ * the first one that cannot be a directory relative to the project root.
51
+ */
52
+ export declare function validateFunctionSourcesShape(raw: unknown): string[];
53
+ /**
54
+ * The real path of the git work tree around `dir`, or null when `dir` is not
55
+ * in one or git cannot be run. git reports the toplevel with symlinks
56
+ * resolved, so it is compared against real paths only.
57
+ */
58
+ export declare function gitTopLevel(dir: string): string | null;
59
+ /** Whether `candidate` is `root` or inside it. Both are real paths. */
60
+ export declare function isInsideDirectory(root: string, candidate: string): boolean;
61
+ /**
62
+ * The declared directories a push of `configDir` admits, as real paths, and
63
+ * one warning for each entry it drops. No project config selected, or none
64
+ * declared, is no roots and nothing to say; a selected config that does not
65
+ * load is no roots and one warning naming the error.
66
+ */
67
+ export declare function resolveFunctionSourceRoots(configDir: string): FunctionSourceRoots;
@@ -0,0 +1,148 @@
1
+ /**
2
+ * The directories outside the config tree that function code may import from
3
+ * — `functionSources` in `primitive/config.json` (#4502).
4
+ *
5
+ * An app whose server functions reuse TypeScript its web client already runs
6
+ * declares the directories that code lives in. A file under one is a SHARED
7
+ * source: `config push` bundles it and typechecks it like the tree's own
8
+ * files, and never stores it in the envelope — the repository is its source of
9
+ * truth, the way it is for an npm package.
10
+ *
11
+ * The declaration is checked twice, at the two moments each half can be
12
+ * answered:
13
+ *
14
+ * - its SHAPE when the file loads (`validateFunctionSourcesShape`, called by
15
+ * `validateProjectConfig`), so every command that reads the config names a
16
+ * malformed entry: relative, non-empty, no `node_modules` segment. `..` is
17
+ * allowed, for the monorepo whose `primitive/` sits in a sub-package beside
18
+ * the shared code;
19
+ * - its CONTAINMENT at push (`resolveFunctionSourceRoots`), because it is a
20
+ * fact about the disk: each entry is realpath-resolved and must land inside
21
+ * the git repository root around the project, or inside the project root
22
+ * when there is no repository. An entry that does not exist or escapes is
23
+ * dropped for that push with one warning naming it, and an import into it
24
+ * is then refused like any other escape.
25
+ *
26
+ * The config read is the one the resolver contract selects
27
+ * (`findProjectConfigPath`), so `PRIMITIVE_PROJECT_CONFIG` decides here exactly
28
+ * as it does for every other reader.
29
+ */
30
+ import { execFileSync } from "child_process";
31
+ import { realpathSync, statSync } from "fs";
32
+ import { isAbsolute, relative, resolve } from "path";
33
+ import { projectRootForConfigPath } from "./env-resolver-core.js";
34
+ import { findProjectConfigPath, loadProjectConfigFromPath, ProjectConfigError, } from "./project-config.js";
35
+ /** The `primitive/config.json` key that declares the directories. */
36
+ export const FUNCTION_SOURCES_KEY = "functionSources";
37
+ /** A shape problem with the declaration, worded to name the entry. */
38
+ export class FunctionSourcesShapeError extends Error {
39
+ constructor(message) {
40
+ super(message);
41
+ this.name = "FunctionSourcesShapeError";
42
+ }
43
+ }
44
+ /**
45
+ * The declared entries, normalized, or a `FunctionSourcesShapeError` naming
46
+ * the first one that cannot be a directory relative to the project root.
47
+ */
48
+ export function validateFunctionSourcesShape(raw) {
49
+ if (!Array.isArray(raw)) {
50
+ throw new FunctionSourcesShapeError(`"${FUNCTION_SOURCES_KEY}" must be an array of directory paths relative to the project root.`);
51
+ }
52
+ return raw.map((value) => {
53
+ if (typeof value !== "string" || value.trim() === "") {
54
+ throw new FunctionSourcesShapeError(`"${FUNCTION_SOURCES_KEY}" entry ${JSON.stringify(value)} must be a non-empty directory path.`);
55
+ }
56
+ const entry = value.replace(/\\/g, "/");
57
+ if (entry.startsWith("/") || /^[A-Za-z]:/.test(entry)) {
58
+ throw new FunctionSourcesShapeError(`"${FUNCTION_SOURCES_KEY}" entry "${entry}" must be relative to the project root, not absolute.`);
59
+ }
60
+ if (entry.split("/").includes("node_modules")) {
61
+ throw new FunctionSourcesShapeError(`"${FUNCTION_SOURCES_KEY}" entry "${entry}" names a node_modules directory; ` +
62
+ "packages are imported by name and inlined without being declared.");
63
+ }
64
+ return entry;
65
+ });
66
+ }
67
+ /**
68
+ * The real path of the git work tree around `dir`, or null when `dir` is not
69
+ * in one or git cannot be run. git reports the toplevel with symlinks
70
+ * resolved, so it is compared against real paths only.
71
+ */
72
+ export function gitTopLevel(dir) {
73
+ try {
74
+ const topLevel = execFileSync("git", ["rev-parse", "--show-toplevel"], {
75
+ cwd: dir,
76
+ encoding: "utf-8",
77
+ stdio: ["ignore", "pipe", "ignore"],
78
+ }).trim();
79
+ return topLevel ? realpathSync(topLevel) : null;
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
85
+ /** Whether `candidate` is `root` or inside it. Both are real paths. */
86
+ export function isInsideDirectory(root, candidate) {
87
+ const rel = relative(root, candidate);
88
+ return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
89
+ }
90
+ /**
91
+ * The declared directories a push of `configDir` admits, as real paths, and
92
+ * one warning for each entry it drops. No project config selected, or none
93
+ * declared, is no roots and nothing to say; a selected config that does not
94
+ * load is no roots and one warning naming the error.
95
+ */
96
+ export function resolveFunctionSourceRoots(configDir) {
97
+ const configPath = findProjectConfigPath(resolve(configDir));
98
+ if (!configPath)
99
+ return { roots: [], warnings: [] };
100
+ let declared;
101
+ try {
102
+ declared = loadProjectConfigFromPath(configPath).functionSources ?? [];
103
+ }
104
+ catch (err) {
105
+ if (!(err instanceof ProjectConfigError))
106
+ throw err;
107
+ return {
108
+ roots: [],
109
+ warnings: [
110
+ `"${FUNCTION_SOURCES_KEY}" not read: ${err.message} (${configPath})`,
111
+ ],
112
+ };
113
+ }
114
+ if (declared.length === 0)
115
+ return { roots: [], warnings: [] };
116
+ const projectRoot = projectRootForConfigPath(configPath);
117
+ const realProjectRoot = realpathSync(projectRoot);
118
+ const repositoryRoot = gitTopLevel(realProjectRoot);
119
+ const container = repositoryRoot ?? realProjectRoot;
120
+ const containerLabel = repositoryRoot
121
+ ? `the git repository root (${container})`
122
+ : `the project root (${container})`;
123
+ const roots = [];
124
+ const warnings = [];
125
+ for (const entry of declared) {
126
+ let absolute;
127
+ try {
128
+ absolute = realpathSync(resolve(projectRoot, entry));
129
+ if (!statSync(absolute).isDirectory())
130
+ throw new Error("not a directory");
131
+ }
132
+ catch {
133
+ warnings.push(`"${FUNCTION_SOURCES_KEY}" entry "${entry}" is not a directory under ${projectRoot}; ` +
134
+ "it is ignored for this push.");
135
+ continue;
136
+ }
137
+ if (!isInsideDirectory(container, absolute)) {
138
+ warnings.push(`"${FUNCTION_SOURCES_KEY}" entry "${entry}" resolves to ${absolute}, outside ${containerLabel}; ` +
139
+ "it is ignored for this push.");
140
+ continue;
141
+ }
142
+ if (roots.some((root) => root.absolute === absolute))
143
+ continue;
144
+ roots.push({ declared: entry, absolute });
145
+ }
146
+ return { roots, warnings };
147
+ }
148
+ //# sourceMappingURL=function-source-roots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-source-roots.js","sourceRoot":"","sources":["../../../src/lib/function-source-roots.ts"],"names":[],"mappings":"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"}