@kitsy/cnos 1.6.1 → 1.7.0

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 (63) hide show
  1. package/dist/build/index.cjs +1332 -156
  2. package/dist/build/index.d.cts +1 -1
  3. package/dist/build/index.d.ts +1 -1
  4. package/dist/build/index.js +36 -14
  5. package/dist/{chunk-JYWQFMW5.js → chunk-2DGT7N7E.js} +1 -1
  6. package/dist/{chunk-S7H2UULC.js → chunk-2TL42I6M.js} +1323 -139
  7. package/dist/{chunk-MW4OVAT3.js → chunk-5KIQCYFH.js} +1 -1
  8. package/dist/{chunk-N32UN66E.js → chunk-CV3SLBYZ.js} +8 -8
  9. package/dist/{chunk-XSUP7JKH.js → chunk-GHGJFRDL.js} +6 -2
  10. package/dist/{chunk-BMAD24KC.js → chunk-OA7FQGAG.js} +1 -1
  11. package/dist/{chunk-6FAX2VKQ.js → chunk-PFT56ID2.js} +195 -28
  12. package/dist/{chunk-VGZREX5D.js → chunk-RYIARE4M.js} +1 -1
  13. package/dist/{chunk-UR7CHHNN.js → chunk-TT4NV56Z.js} +3 -2
  14. package/dist/{chunk-UJBQS7CJ.js → chunk-UL63DFLS.js} +1 -1
  15. package/dist/configure/index.cjs +1309 -155
  16. package/dist/configure/index.d.cts +3 -3
  17. package/dist/configure/index.d.ts +3 -3
  18. package/dist/configure/index.js +8 -8
  19. package/dist/{plugin-CKrBlWGI.d.cts → core-BJ8xewez.d.cts} +142 -60
  20. package/dist/{plugin-CKrBlWGI.d.ts → core-BJ8xewez.d.ts} +142 -60
  21. package/dist/{envNaming-B7Mztkcf.d.ts → envNaming-BRyiuPoI.d.ts} +1 -1
  22. package/dist/{envNaming-gMVnPOfe.d.cts → envNaming-rx71gpi0.d.cts} +1 -1
  23. package/dist/index.cjs +1548 -227
  24. package/dist/index.d.cts +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +10 -10
  27. package/dist/internal.cjs +831 -122
  28. package/dist/internal.d.cts +56 -3
  29. package/dist/internal.d.ts +56 -3
  30. package/dist/internal.js +30 -3
  31. package/dist/plugin/basic-schema.cjs +49 -23
  32. package/dist/plugin/basic-schema.d.cts +1 -1
  33. package/dist/plugin/basic-schema.d.ts +1 -1
  34. package/dist/plugin/basic-schema.js +2 -2
  35. package/dist/plugin/cli-args.cjs +38 -23
  36. package/dist/plugin/cli-args.d.cts +1 -1
  37. package/dist/plugin/cli-args.d.ts +1 -1
  38. package/dist/plugin/cli-args.js +2 -2
  39. package/dist/plugin/dotenv.cjs +46 -31
  40. package/dist/plugin/dotenv.d.cts +2 -2
  41. package/dist/plugin/dotenv.d.ts +2 -2
  42. package/dist/plugin/dotenv.js +2 -2
  43. package/dist/plugin/env-export.cjs +56 -27
  44. package/dist/plugin/env-export.d.cts +2 -2
  45. package/dist/plugin/env-export.d.ts +2 -2
  46. package/dist/plugin/env-export.js +2 -2
  47. package/dist/plugin/filesystem.cjs +61 -39
  48. package/dist/plugin/filesystem.d.cts +1 -1
  49. package/dist/plugin/filesystem.d.ts +1 -1
  50. package/dist/plugin/filesystem.js +2 -2
  51. package/dist/plugin/process-env.cjs +40 -25
  52. package/dist/plugin/process-env.d.cts +2 -2
  53. package/dist/plugin/process-env.d.ts +2 -2
  54. package/dist/plugin/process-env.js +2 -2
  55. package/dist/runtime/index.cjs +1548 -227
  56. package/dist/runtime/index.d.cts +3 -1
  57. package/dist/runtime/index.d.ts +3 -1
  58. package/dist/runtime/index.js +10 -10
  59. package/dist/toPublicEnv-CCSgdvI9.d.ts +13 -0
  60. package/dist/toPublicEnv-ivRtLjcw.d.cts +13 -0
  61. package/package.json +1 -1
  62. package/dist/toPublicEnv-CmBsy53P.d.cts +0 -7
  63. package/dist/toPublicEnv-q6VwWxXZ.d.ts +0 -7
@@ -37,8 +37,8 @@ __export(dotenv_exports, {
37
37
  module.exports = __toCommonJS(dotenv_exports);
38
38
 
39
39
  // ../../plugins/dotenv/src/index.ts
40
- var import_promises11 = require("fs/promises");
41
- var import_node_path11 = __toESM(require("path"), 1);
40
+ var import_promises13 = require("fs/promises");
41
+ var import_node_path14 = __toESM(require("path"), 1);
42
42
 
43
43
  // ../core/src/keychain/linux.ts
44
44
  var import_node_child_process = require("child_process");
@@ -56,21 +56,36 @@ var import_node_util3 = require("util");
56
56
  var execFileAsync3 = (0, import_node_util3.promisify)(import_node_child_process3.execFile);
57
57
 
58
58
  // ../core/src/manifest/loadManifest.ts
59
- var import_promises3 = require("fs/promises");
60
- var import_node_path3 = __toESM(require("path"), 1);
59
+ var import_promises5 = require("fs/promises");
60
+ var import_node_path6 = __toESM(require("path"), 1);
61
61
 
62
62
  // ../core/src/utils/path.ts
63
- var import_promises2 = require("fs/promises");
64
- var import_node_os = __toESM(require("os"), 1);
65
- var import_node_path2 = __toESM(require("path"), 1);
63
+ var import_promises4 = require("fs/promises");
64
+ var import_node_os3 = __toESM(require("os"), 1);
65
+ var import_node_path5 = __toESM(require("path"), 1);
66
66
 
67
67
  // ../core/src/discovery/findCnosrc.ts
68
- var import_promises = require("fs/promises");
69
- var import_node_path = __toESM(require("path"), 1);
68
+ var import_promises3 = require("fs/promises");
69
+ var import_node_path4 = __toESM(require("path"), 1);
70
70
 
71
71
  // ../core/src/utils/yaml.ts
72
72
  var import_yaml = require("yaml");
73
73
 
74
+ // ../core/src/discovery/resolveRoot.ts
75
+ var import_promises2 = require("fs/promises");
76
+ var import_node_path3 = __toESM(require("path"), 1);
77
+ var import_node_child_process4 = require("child_process");
78
+ var import_node_os2 = __toESM(require("os"), 1);
79
+
80
+ // ../core/src/discovery/cache/cacheMetadata.ts
81
+ var import_promises = require("fs/promises");
82
+ var import_node_path = __toESM(require("path"), 1);
83
+
84
+ // ../core/src/discovery/cache/cachePaths.ts
85
+ var import_node_crypto = require("crypto");
86
+ var import_node_os = __toESM(require("os"), 1);
87
+ var import_node_path2 = __toESM(require("path"), 1);
88
+
74
89
  // ../core/src/utils/path.ts
75
90
  function interpolatePathTemplate(template, tokens) {
76
91
  return Object.entries(tokens).reduce(
@@ -92,47 +107,47 @@ function stripWorkspaceTemplatePrefix(template) {
92
107
  function resolveWorkspaceScopedPath(workspaceRoot, template, tokens) {
93
108
  const relativeTemplate = stripWorkspaceTemplatePrefix(template);
94
109
  const interpolated = interpolatePathTemplate(relativeTemplate, tokens);
95
- return import_node_path2.default.resolve(workspaceRoot, interpolated);
110
+ return import_node_path5.default.resolve(workspaceRoot, interpolated);
96
111
  }
97
112
  function toPortablePath(targetPath) {
98
113
  return targetPath.replace(/\\/g, "/");
99
114
  }
100
115
 
101
116
  // ../core/src/manifest/loadWorkspaceFile.ts
102
- var import_promises4 = require("fs/promises");
103
- var import_node_path4 = __toESM(require("path"), 1);
117
+ var import_promises6 = require("fs/promises");
118
+ var import_node_path7 = __toESM(require("path"), 1);
104
119
 
105
120
  // ../core/src/profiles/expandProfileChain.ts
106
- var import_promises5 = require("fs/promises");
107
- var import_node_path5 = __toESM(require("path"), 1);
121
+ var import_promises7 = require("fs/promises");
122
+ var import_node_path8 = __toESM(require("path"), 1);
108
123
 
109
124
  // ../core/src/workspaces/resolveWorkspaceContext.ts
110
- var import_promises6 = require("fs/promises");
111
- var import_node_path6 = __toESM(require("path"), 1);
125
+ var import_promises8 = require("fs/promises");
126
+ var import_node_path9 = __toESM(require("path"), 1);
112
127
 
113
128
  // ../core/src/secrets/auditLog.ts
114
- var import_promises9 = require("fs/promises");
115
- var import_node_path9 = __toESM(require("path"), 1);
129
+ var import_promises11 = require("fs/promises");
130
+ var import_node_path12 = __toESM(require("path"), 1);
116
131
 
117
132
  // ../core/src/utils/secretStore.ts
118
- var import_node_crypto = require("crypto");
119
- var import_promises8 = require("fs/promises");
120
- var import_node_path8 = __toESM(require("path"), 1);
133
+ var import_node_crypto2 = require("crypto");
134
+ var import_promises10 = require("fs/promises");
135
+ var import_node_path11 = __toESM(require("path"), 1);
121
136
 
122
137
  // ../core/src/secrets/sessionStore.ts
123
- var import_promises7 = require("fs/promises");
124
- var import_node_path7 = __toESM(require("path"), 1);
138
+ var import_promises9 = require("fs/promises");
139
+ var import_node_path10 = __toESM(require("path"), 1);
125
140
 
126
141
  // ../core/src/secrets/prompt.ts
127
142
  var import_node_readline = __toESM(require("readline"), 1);
128
143
  var import_node_stream = require("stream");
129
144
 
130
145
  // ../core/src/runtime/toServerProjection.ts
131
- var import_node_crypto2 = require("crypto");
146
+ var import_node_crypto3 = require("crypto");
132
147
 
133
148
  // ../core/src/runtime/dump.ts
134
- var import_promises10 = require("fs/promises");
135
- var import_node_path10 = __toESM(require("path"), 1);
149
+ var import_promises12 = require("fs/promises");
150
+ var import_node_path13 = __toESM(require("path"), 1);
136
151
 
137
152
  // ../core/src/utils/envNaming.ts
138
153
  function normalizeMappingConfig(config = {}) {
@@ -141,8 +156,8 @@ function normalizeMappingConfig(config = {}) {
141
156
  explicit: config.explicit ?? {}
142
157
  };
143
158
  }
144
- function fromScreamingSnake(path12) {
145
- return path12.split("_").map((segment) => segment.trim().toLowerCase()).filter(Boolean).join(".");
159
+ function fromScreamingSnake(path15) {
160
+ return path15.split("_").map((segment) => segment.trim().toLowerCase()).filter(Boolean).join(".");
146
161
  }
147
162
  function envVarToLogicalKey(envVar, config = {}) {
148
163
  const normalized = normalizeMappingConfig(config);
@@ -223,7 +238,7 @@ function dotenvEntriesFromObject(values, mapping = {}, originFile, workspaceId =
223
238
  }
224
239
  async function readIfPresent(filePath) {
225
240
  try {
226
- return await (0, import_promises11.readFile)(filePath, "utf8");
241
+ return await (0, import_promises13.readFile)(filePath, "utf8");
227
242
  } catch {
228
243
  return void 0;
229
244
  }
@@ -242,7 +257,7 @@ function createDotenvPlugin() {
242
257
  workspace: workspaceRoot.workspaceId
243
258
  });
244
259
  for (const fileName of fileNames) {
245
- const absolutePath = import_node_path11.default.join(envRoot, fileName);
260
+ const absolutePath = import_node_path14.default.join(envRoot, fileName);
246
261
  const document = await readIfPresent(absolutePath);
247
262
  if (!document) {
248
263
  continue;
@@ -251,7 +266,7 @@ function createDotenvPlugin() {
251
266
  ...dotenvEntriesFromObject(
252
267
  parseDotenv(document),
253
268
  config.envMapping,
254
- toPortablePath(import_node_path11.default.relative(import_node_path11.default.dirname(context.manifestRoot), absolutePath)),
269
+ toPortablePath(import_node_path14.default.relative(import_node_path14.default.dirname(context.manifestRoot), absolutePath)),
255
270
  workspaceRoot.workspaceId
256
271
  )
257
272
  );
@@ -1,5 +1,5 @@
1
- import { L as LoaderPlugin, a as ConfigEntry } from '../plugin-CKrBlWGI.cjs';
2
- import { E as EnvMappingConfig } from '../envNaming-gMVnPOfe.cjs';
1
+ import { L as LoaderPlugin, a as ConfigEntry } from '../core-BJ8xewez.cjs';
2
+ import { E as EnvMappingConfig } from '../envNaming-rx71gpi0.cjs';
3
3
 
4
4
  declare function parseDotenv(document: string): Record<string, string>;
5
5
  declare function dotenvEntriesFromObject(values: Record<string, string>, mapping?: EnvMappingConfig, originFile?: string, workspaceId?: string): ConfigEntry[];
@@ -1,5 +1,5 @@
1
- import { L as LoaderPlugin, a as ConfigEntry } from '../plugin-CKrBlWGI.js';
2
- import { E as EnvMappingConfig } from '../envNaming-B7Mztkcf.js';
1
+ import { L as LoaderPlugin, a as ConfigEntry } from '../core-BJ8xewez.js';
2
+ import { E as EnvMappingConfig } from '../envNaming-BRyiuPoI.js';
3
3
 
4
4
  declare function parseDotenv(document: string): Record<string, string>;
5
5
  declare function dotenvEntriesFromObject(values: Record<string, string>, mapping?: EnvMappingConfig, originFile?: string, workspaceId?: string): ConfigEntry[];
@@ -2,8 +2,8 @@ import {
2
2
  createDotenvPlugin,
3
3
  dotenvEntriesFromObject,
4
4
  parseDotenv
5
- } from "../chunk-BMAD24KC.js";
6
- import "../chunk-S7H2UULC.js";
5
+ } from "../chunk-OA7FQGAG.js";
6
+ import "../chunk-2TL42I6M.js";
7
7
  export {
8
8
  createDotenvPlugin,
9
9
  dotenvEntriesFromObject,
@@ -68,33 +68,48 @@ var import_node_util3 = require("util");
68
68
  var execFileAsync3 = (0, import_node_util3.promisify)(import_node_child_process3.execFile);
69
69
 
70
70
  // ../core/src/manifest/loadManifest.ts
71
- var import_promises3 = require("fs/promises");
72
- var import_node_path3 = __toESM(require("path"), 1);
71
+ var import_promises5 = require("fs/promises");
72
+ var import_node_path6 = __toESM(require("path"), 1);
73
73
 
74
74
  // ../core/src/utils/path.ts
75
- var import_promises2 = require("fs/promises");
76
- var import_node_os = __toESM(require("os"), 1);
77
- var import_node_path2 = __toESM(require("path"), 1);
75
+ var import_promises4 = require("fs/promises");
76
+ var import_node_os3 = __toESM(require("os"), 1);
77
+ var import_node_path5 = __toESM(require("path"), 1);
78
78
 
79
79
  // ../core/src/discovery/findCnosrc.ts
80
- var import_promises = require("fs/promises");
81
- var import_node_path = __toESM(require("path"), 1);
80
+ var import_promises3 = require("fs/promises");
81
+ var import_node_path4 = __toESM(require("path"), 1);
82
82
 
83
83
  // ../core/src/utils/yaml.ts
84
84
  var import_yaml = require("yaml");
85
85
 
86
+ // ../core/src/discovery/resolveRoot.ts
87
+ var import_promises2 = require("fs/promises");
88
+ var import_node_path3 = __toESM(require("path"), 1);
89
+ var import_node_child_process4 = require("child_process");
90
+ var import_node_os2 = __toESM(require("os"), 1);
91
+
92
+ // ../core/src/discovery/cache/cacheMetadata.ts
93
+ var import_promises = require("fs/promises");
94
+ var import_node_path = __toESM(require("path"), 1);
95
+
96
+ // ../core/src/discovery/cache/cachePaths.ts
97
+ var import_node_crypto = require("crypto");
98
+ var import_node_os = __toESM(require("os"), 1);
99
+ var import_node_path2 = __toESM(require("path"), 1);
100
+
86
101
  // ../core/src/utils/path.ts
87
102
  function stripNamespace(key) {
88
103
  return key.split(".").slice(1).join(".");
89
104
  }
90
105
 
91
106
  // ../core/src/manifest/loadWorkspaceFile.ts
92
- var import_promises4 = require("fs/promises");
93
- var import_node_path4 = __toESM(require("path"), 1);
107
+ var import_promises6 = require("fs/promises");
108
+ var import_node_path7 = __toESM(require("path"), 1);
94
109
 
95
110
  // ../core/src/profiles/expandProfileChain.ts
96
- var import_promises5 = require("fs/promises");
97
- var import_node_path5 = __toESM(require("path"), 1);
111
+ var import_promises7 = require("fs/promises");
112
+ var import_node_path8 = __toESM(require("path"), 1);
98
113
 
99
114
  // ../core/src/promotions/validatePromotion.ts
100
115
  var DEFAULT_DATA_NAMESPACE = {
@@ -114,21 +129,21 @@ function getNamespaceDefinition(manifest, namespaceOrKey) {
114
129
  }
115
130
 
116
131
  // ../core/src/workspaces/resolveWorkspaceContext.ts
117
- var import_promises6 = require("fs/promises");
118
- var import_node_path6 = __toESM(require("path"), 1);
132
+ var import_promises8 = require("fs/promises");
133
+ var import_node_path9 = __toESM(require("path"), 1);
119
134
 
120
135
  // ../core/src/secrets/auditLog.ts
121
- var import_promises9 = require("fs/promises");
122
- var import_node_path9 = __toESM(require("path"), 1);
136
+ var import_promises11 = require("fs/promises");
137
+ var import_node_path12 = __toESM(require("path"), 1);
123
138
 
124
139
  // ../core/src/utils/secretStore.ts
125
- var import_node_crypto = require("crypto");
126
- var import_promises8 = require("fs/promises");
127
- var import_node_path8 = __toESM(require("path"), 1);
140
+ var import_node_crypto2 = require("crypto");
141
+ var import_promises10 = require("fs/promises");
142
+ var import_node_path11 = __toESM(require("path"), 1);
128
143
 
129
144
  // ../core/src/secrets/sessionStore.ts
130
- var import_promises7 = require("fs/promises");
131
- var import_node_path7 = __toESM(require("path"), 1);
145
+ var import_promises9 = require("fs/promises");
146
+ var import_node_path10 = __toESM(require("path"), 1);
132
147
 
133
148
  // ../core/src/utils/secretStore.ts
134
149
  function isObject(value) {
@@ -143,7 +158,7 @@ var import_node_readline = __toESM(require("readline"), 1);
143
158
  var import_node_stream = require("stream");
144
159
 
145
160
  // ../core/src/runtime/toServerProjection.ts
146
- var import_node_crypto2 = require("crypto");
161
+ var import_node_crypto3 = require("crypto");
147
162
 
148
163
  // ../core/src/runtime/toEnv.ts
149
164
  function normalizeEnvValue(value) {
@@ -158,7 +173,7 @@ function normalizeEnvValue(value) {
158
173
  }
159
174
  return JSON.stringify(value);
160
175
  }
161
- function toEnv(graph, manifest, options = {}) {
176
+ function toEnv(graph, manifest, options = {}, helpers = {}) {
162
177
  const includeSecrets = options.includeSecrets ?? true;
163
178
  const output = {};
164
179
  const mappedEntries = Object.entries(manifest.envMapping.explicit).sort(
@@ -179,7 +194,11 @@ function toEnv(graph, manifest, options = {}) {
179
194
  if (isSecretReference(entry.value)) {
180
195
  continue;
181
196
  }
182
- output[envVar] = normalizeEnvValue(entry.value);
197
+ const value = helpers.read ? helpers.read(logicalKey) : entry.value;
198
+ if (value === void 0) {
199
+ continue;
200
+ }
201
+ output[envVar] = normalizeEnvValue(value);
183
202
  }
184
203
  return output;
185
204
  }
@@ -216,21 +235,31 @@ function resolvePublicPrefix(manifest, options) {
216
235
  }
217
236
  return manifest.public.frameworks[options.framework] ?? "";
218
237
  }
219
- function toPublicEnv(graph, manifest, options = {}) {
238
+ function toPublicEnv(graph, manifest, options = {}, helpers = {}) {
220
239
  const prefix = resolvePublicPrefix(manifest, options);
221
240
  const output = {};
222
241
  const promotions = Array.from(graph.entries.values()).filter((entry) => entry.namespace === "public").sort((left, right) => left.key.localeCompare(right.key));
223
242
  for (const resolved of promotions) {
243
+ if (helpers.isRuntimeDependent?.(resolved.key)) {
244
+ const value2 = helpers.read?.(resolved.key);
245
+ if (value2 === void 0) {
246
+ throw new CnosManifestError(`Cannot build public output for ${resolved.key} because it depends on runtime-only values.`);
247
+ }
248
+ }
224
249
  const baseEnvVar = fallbackPublicEnvVar(stripNamespace(resolved.key));
225
250
  const envVar = prefix && !baseEnvVar.startsWith(prefix) ? `${prefix}${baseEnvVar}` : baseEnvVar;
226
- output[envVar] = normalizeEnvValue2(resolved.value);
251
+ const value = helpers.read ? helpers.read(resolved.key) : resolved.value;
252
+ if (value === void 0) {
253
+ continue;
254
+ }
255
+ output[envVar] = normalizeEnvValue2(value);
227
256
  }
228
257
  return output;
229
258
  }
230
259
 
231
260
  // ../core/src/runtime/dump.ts
232
- var import_promises10 = require("fs/promises");
233
- var import_node_path10 = __toESM(require("path"), 1);
261
+ var import_promises12 = require("fs/promises");
262
+ var import_node_path13 = __toESM(require("path"), 1);
234
263
 
235
264
  // ../../plugins/env-export/src/index.ts
236
265
  function createEnvExportPlugin() {
@@ -1,5 +1,5 @@
1
- import { E as ExporterPlugin } from '../plugin-CKrBlWGI.cjs';
2
- export { t as toEnv, a as toPublicEnv } from '../toPublicEnv-CmBsy53P.cjs';
1
+ import { E as ExporterPlugin } from '../core-BJ8xewez.cjs';
2
+ export { t as toEnv, a as toPublicEnv } from '../toPublicEnv-ivRtLjcw.cjs';
3
3
 
4
4
  declare function createEnvExportPlugin(): ExporterPlugin;
5
5
  declare function createPublicEnvExportPlugin(): ExporterPlugin;
@@ -1,5 +1,5 @@
1
- import { E as ExporterPlugin } from '../plugin-CKrBlWGI.js';
2
- export { t as toEnv, a as toPublicEnv } from '../toPublicEnv-q6VwWxXZ.js';
1
+ import { E as ExporterPlugin } from '../core-BJ8xewez.js';
2
+ export { t as toEnv, a as toPublicEnv } from '../toPublicEnv-CCSgdvI9.js';
3
3
 
4
4
  declare function createEnvExportPlugin(): ExporterPlugin;
5
5
  declare function createPublicEnvExportPlugin(): ExporterPlugin;
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createEnvExportPlugin,
3
3
  createPublicEnvExportPlugin
4
- } from "../chunk-VGZREX5D.js";
4
+ } from "../chunk-RYIARE4M.js";
5
5
  import {
6
6
  toEnv,
7
7
  toPublicEnv
8
- } from "../chunk-S7H2UULC.js";
8
+ } from "../chunk-2TL42I6M.js";
9
9
  export {
10
10
  createEnvExportPlugin,
11
11
  createPublicEnvExportPlugin,
@@ -40,11 +40,11 @@ __export(filesystem_exports, {
40
40
  module.exports = __toCommonJS(filesystem_exports);
41
41
 
42
42
  // ../../plugins/filesystem/src/filesystemSecretsReader.ts
43
- var import_promises12 = require("fs/promises");
43
+ var import_promises14 = require("fs/promises");
44
44
 
45
45
  // ../../plugins/filesystem/src/helpers.ts
46
- var import_promises11 = require("fs/promises");
47
- var import_node_path11 = __toESM(require("path"), 1);
46
+ var import_promises13 = require("fs/promises");
47
+ var import_node_path14 = __toESM(require("path"), 1);
48
48
 
49
49
  // ../core/src/errors.ts
50
50
  var CnosError = class extends Error {
@@ -61,6 +61,13 @@ var CnosManifestError = class extends CnosError {
61
61
  manifestPath;
62
62
  };
63
63
 
64
+ // ../core/src/derive/evaluator.ts
65
+ function isDerivedValue(value) {
66
+ return Boolean(
67
+ value && typeof value === "object" && !Array.isArray(value) && "$derive" in value
68
+ );
69
+ }
70
+
64
71
  // ../core/src/keychain/linux.ts
65
72
  var import_node_child_process = require("child_process");
66
73
  var import_node_util = require("util");
@@ -77,17 +84,17 @@ var import_node_util3 = require("util");
77
84
  var execFileAsync3 = (0, import_node_util3.promisify)(import_node_child_process3.execFile);
78
85
 
79
86
  // ../core/src/manifest/loadManifest.ts
80
- var import_promises3 = require("fs/promises");
81
- var import_node_path3 = __toESM(require("path"), 1);
87
+ var import_promises5 = require("fs/promises");
88
+ var import_node_path6 = __toESM(require("path"), 1);
82
89
 
83
90
  // ../core/src/utils/path.ts
84
- var import_promises2 = require("fs/promises");
85
- var import_node_os = __toESM(require("os"), 1);
86
- var import_node_path2 = __toESM(require("path"), 1);
91
+ var import_promises4 = require("fs/promises");
92
+ var import_node_os3 = __toESM(require("os"), 1);
93
+ var import_node_path5 = __toESM(require("path"), 1);
87
94
 
88
95
  // ../core/src/discovery/findCnosrc.ts
89
- var import_promises = require("fs/promises");
90
- var import_node_path = __toESM(require("path"), 1);
96
+ var import_promises3 = require("fs/promises");
97
+ var import_node_path4 = __toESM(require("path"), 1);
91
98
 
92
99
  // ../core/src/utils/yaml.ts
93
100
  var import_yaml = require("yaml");
@@ -95,35 +102,50 @@ function parseYaml(source) {
95
102
  return (0, import_yaml.parse)(source);
96
103
  }
97
104
 
105
+ // ../core/src/discovery/resolveRoot.ts
106
+ var import_promises2 = require("fs/promises");
107
+ var import_node_path3 = __toESM(require("path"), 1);
108
+ var import_node_child_process4 = require("child_process");
109
+ var import_node_os2 = __toESM(require("os"), 1);
110
+
111
+ // ../core/src/discovery/cache/cacheMetadata.ts
112
+ var import_promises = require("fs/promises");
113
+ var import_node_path = __toESM(require("path"), 1);
114
+
115
+ // ../core/src/discovery/cache/cachePaths.ts
116
+ var import_node_crypto = require("crypto");
117
+ var import_node_os = __toESM(require("os"), 1);
118
+ var import_node_path2 = __toESM(require("path"), 1);
119
+
98
120
  // ../core/src/utils/path.ts
99
121
  function toPortablePath(targetPath) {
100
122
  return targetPath.replace(/\\/g, "/");
101
123
  }
102
124
 
103
125
  // ../core/src/manifest/loadWorkspaceFile.ts
104
- var import_promises4 = require("fs/promises");
105
- var import_node_path4 = __toESM(require("path"), 1);
126
+ var import_promises6 = require("fs/promises");
127
+ var import_node_path7 = __toESM(require("path"), 1);
106
128
 
107
129
  // ../core/src/profiles/expandProfileChain.ts
108
- var import_promises5 = require("fs/promises");
109
- var import_node_path5 = __toESM(require("path"), 1);
130
+ var import_promises7 = require("fs/promises");
131
+ var import_node_path8 = __toESM(require("path"), 1);
110
132
 
111
133
  // ../core/src/workspaces/resolveWorkspaceContext.ts
112
- var import_promises6 = require("fs/promises");
113
- var import_node_path6 = __toESM(require("path"), 1);
134
+ var import_promises8 = require("fs/promises");
135
+ var import_node_path9 = __toESM(require("path"), 1);
114
136
 
115
137
  // ../core/src/secrets/auditLog.ts
116
- var import_promises9 = require("fs/promises");
117
- var import_node_path9 = __toESM(require("path"), 1);
138
+ var import_promises11 = require("fs/promises");
139
+ var import_node_path12 = __toESM(require("path"), 1);
118
140
 
119
141
  // ../core/src/utils/secretStore.ts
120
- var import_node_crypto = require("crypto");
121
- var import_promises8 = require("fs/promises");
122
- var import_node_path8 = __toESM(require("path"), 1);
142
+ var import_node_crypto2 = require("crypto");
143
+ var import_promises10 = require("fs/promises");
144
+ var import_node_path11 = __toESM(require("path"), 1);
123
145
 
124
146
  // ../core/src/secrets/sessionStore.ts
125
- var import_promises7 = require("fs/promises");
126
- var import_node_path7 = __toESM(require("path"), 1);
147
+ var import_promises9 = require("fs/promises");
148
+ var import_node_path10 = __toESM(require("path"), 1);
127
149
 
128
150
  // ../core/src/utils/secretStore.ts
129
151
  function isObject(value) {
@@ -138,18 +160,18 @@ var import_node_readline = __toESM(require("readline"), 1);
138
160
  var import_node_stream = require("stream");
139
161
 
140
162
  // ../core/src/runtime/toServerProjection.ts
141
- var import_node_crypto2 = require("crypto");
163
+ var import_node_crypto3 = require("crypto");
142
164
 
143
165
  // ../core/src/runtime/dump.ts
144
- var import_promises10 = require("fs/promises");
145
- var import_node_path10 = __toESM(require("path"), 1);
166
+ var import_promises12 = require("fs/promises");
167
+ var import_node_path13 = __toESM(require("path"), 1);
146
168
 
147
169
  // ../../plugins/filesystem/src/helpers.ts
148
170
  var YAML_EXTENSIONS = /* @__PURE__ */ new Set([".yml", ".yaml"]);
149
171
  var FILESYSTEM_PLUGIN_ID = "@kitsy/cnos/plugins/filesystem";
150
172
  async function existsDirectory(targetPath) {
151
173
  try {
152
- const stat2 = await (0, import_promises11.readdir)(targetPath);
174
+ const stat2 = await (0, import_promises13.readdir)(targetPath);
153
175
  void stat2;
154
176
  return true;
155
177
  } catch {
@@ -157,15 +179,15 @@ async function existsDirectory(targetPath) {
157
179
  }
158
180
  }
159
181
  async function collectYamlFiles(root) {
160
- const entries = await (0, import_promises11.readdir)(root, { withFileTypes: true });
182
+ const entries = await (0, import_promises13.readdir)(root, { withFileTypes: true });
161
183
  const results = [];
162
184
  for (const entry of entries.sort((left, right) => left.name.localeCompare(right.name))) {
163
- const absolutePath = import_node_path11.default.join(root, entry.name);
185
+ const absolutePath = import_node_path14.default.join(root, entry.name);
164
186
  if (entry.isDirectory()) {
165
187
  results.push(...await collectYamlFiles(absolutePath));
166
188
  continue;
167
189
  }
168
- if (entry.isFile() && YAML_EXTENSIONS.has(import_node_path11.default.extname(entry.name).toLowerCase())) {
190
+ if (entry.isFile() && YAML_EXTENSIONS.has(import_node_path14.default.extname(entry.name).toLowerCase())) {
169
191
  results.push(absolutePath);
170
192
  }
171
193
  }
@@ -173,16 +195,16 @@ async function collectYamlFiles(root) {
173
195
  }
174
196
  async function collectFilesystemLayerFiles(manifestRoot, workspaceRoots, sourceRoot, activeLayers) {
175
197
  const files = [];
176
- const repoRoot = import_node_path11.default.dirname(manifestRoot);
198
+ const repoRoot = import_node_path14.default.dirname(manifestRoot);
177
199
  for (const workspaceRoot of workspaceRoots) {
178
- const resolvedRoot = import_node_path11.default.resolve(workspaceRoot.path, sourceRoot);
200
+ const resolvedRoot = import_node_path14.default.resolve(workspaceRoot.path, sourceRoot);
179
201
  for (const layer of activeLayers) {
180
- const layerRoot = import_node_path11.default.join(resolvedRoot, layer);
202
+ const layerRoot = import_node_path14.default.join(resolvedRoot, layer);
181
203
  if (!await existsDirectory(layerRoot)) {
182
204
  continue;
183
205
  }
184
206
  for (const absolutePath of await collectYamlFiles(layerRoot)) {
185
- const relativePath = import_node_path11.default.relative(repoRoot, absolutePath);
207
+ const relativePath = import_node_path14.default.relative(repoRoot, absolutePath);
186
208
  files.push({
187
209
  absolutePath,
188
210
  relativePath: toPortablePath(relativePath.startsWith("..") ? absolutePath : relativePath),
@@ -202,7 +224,7 @@ function assertObjectDocument(value, filePath) {
202
224
  function flattenConfigObject(value, options = {}, prefix = "") {
203
225
  return Object.entries(value).reduce((accumulator, [key, nestedValue]) => {
204
226
  const nextKey = prefix ? `${prefix}.${key}` : key;
205
- if (nestedValue && typeof nestedValue === "object" && !Array.isArray(nestedValue) && !options.stopAtLeaf?.(nestedValue)) {
227
+ if (nestedValue && typeof nestedValue === "object" && !Array.isArray(nestedValue) && !isDerivedValue(nestedValue) && !options.stopAtLeaf?.(nestedValue)) {
206
228
  Object.assign(
207
229
  accumulator,
208
230
  flattenConfigObject(nestedValue, options, nextKey)
@@ -259,7 +281,7 @@ function createFilesystemSecretsPlugin() {
259
281
  );
260
282
  const entries = [];
261
283
  for (const file of files) {
262
- const document = await (0, import_promises12.readFile)(file.absolutePath, "utf8");
284
+ const document = await (0, import_promises14.readFile)(file.absolutePath, "utf8");
263
285
  const fileEntries = filesystemSecretsReader(file.relativePath, document, file.workspaceId);
264
286
  for (const entry of fileEntries) {
265
287
  const metadata = toSecretReferenceMetadata(entry.value);
@@ -275,7 +297,7 @@ function createFilesystemSecretsPlugin() {
275
297
  }
276
298
 
277
299
  // ../../plugins/filesystem/src/filesystemValuesReader.ts
278
- var import_promises13 = require("fs/promises");
300
+ var import_promises15 = require("fs/promises");
279
301
  function filesystemValuesReader(filePath, document, workspaceId = "default") {
280
302
  return yamlObjectToEntries(document, filePath, "value", "filesystem-values", workspaceId);
281
303
  }
@@ -296,7 +318,7 @@ function createFilesystemValuesPlugin() {
296
318
  ).map(([namespace]) => namespace);
297
319
  const entries = [];
298
320
  for (const file of files) {
299
- const document = await (0, import_promises13.readFile)(file.absolutePath, "utf8");
321
+ const document = await (0, import_promises15.readFile)(file.absolutePath, "utf8");
300
322
  entries.push(...filesystemValuesReader(file.relativePath, document, file.workspaceId));
301
323
  }
302
324
  for (const namespace of customNamespaces) {
@@ -311,7 +333,7 @@ function createFilesystemValuesPlugin() {
311
333
  layers
312
334
  );
313
335
  for (const file of namespaceFiles) {
314
- const document = await (0, import_promises13.readFile)(file.absolutePath, "utf8");
336
+ const document = await (0, import_promises15.readFile)(file.absolutePath, "utf8");
315
337
  entries.push(...yamlObjectToEntries(document, file.relativePath, namespace, "filesystem-values", file.workspaceId));
316
338
  }
317
339
  }
@@ -1,4 +1,4 @@
1
- import { L as LoaderPlugin, a as ConfigEntry, W as WorkspaceRoot, i as NamespaceName } from '../plugin-CKrBlWGI.cjs';
1
+ import { L as LoaderPlugin, a as ConfigEntry, W as WorkspaceRoot, m as NamespaceName } from '../core-BJ8xewez.cjs';
2
2
 
3
3
  declare function filesystemSecretsReader(filePath: string, document: string, workspaceId?: string): ConfigEntry[];
4
4
  declare function createFilesystemSecretsPlugin(): LoaderPlugin;
@@ -1,4 +1,4 @@
1
- import { L as LoaderPlugin, a as ConfigEntry, W as WorkspaceRoot, i as NamespaceName } from '../plugin-CKrBlWGI.js';
1
+ import { L as LoaderPlugin, a as ConfigEntry, W as WorkspaceRoot, m as NamespaceName } from '../core-BJ8xewez.js';
2
2
 
3
3
  declare function filesystemSecretsReader(filePath: string, document: string, workspaceId?: string): ConfigEntry[];
4
4
  declare function createFilesystemSecretsPlugin(): LoaderPlugin;
@@ -5,8 +5,8 @@ import {
5
5
  filesystemSecretsReader,
6
6
  filesystemValuesReader,
7
7
  yamlObjectToEntries
8
- } from "../chunk-UR7CHHNN.js";
9
- import "../chunk-S7H2UULC.js";
8
+ } from "../chunk-TT4NV56Z.js";
9
+ import "../chunk-2TL42I6M.js";
10
10
  export {
11
11
  collectFilesystemLayerFiles,
12
12
  createFilesystemSecretsPlugin,