@kitsy/cnos 1.2.0 → 1.4.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 (65) hide show
  1. package/README.md +3 -3
  2. package/dist/build/index.cjs +1003 -121
  3. package/dist/build/index.d.cts +1 -1
  4. package/dist/build/index.d.ts +1 -1
  5. package/dist/build/index.js +22 -10
  6. package/dist/{chunk-APCTXRUN.js → chunk-APIU4GTB.js} +1012 -195
  7. package/dist/chunk-EQSKV3DP.js +105 -0
  8. package/dist/{chunk-MLQGYCO7.js → chunk-FWJC4Y2D.js} +1 -1
  9. package/dist/{chunk-RD5WMHPM.js → chunk-HMM76UYZ.js} +1 -1
  10. package/dist/{chunk-EIN55XXA.js → chunk-J4K4JUJL.js} +1 -1
  11. package/dist/{chunk-SO5XREEU.js → chunk-JSBVYK2T.js} +32 -11
  12. package/dist/chunk-LJD4SM32.js +189 -0
  13. package/dist/{chunk-SXTMTACL.js → chunk-T6Y57KTT.js} +20 -31
  14. package/dist/chunk-WCHX2QFY.js +115 -0
  15. package/dist/{chunk-ZA74BO47.js → chunk-ZTPSFXWP.js} +1 -1
  16. package/dist/configure/index.cjs +3021 -0
  17. package/dist/configure/index.d.cts +12 -0
  18. package/dist/configure/index.d.ts +12 -0
  19. package/dist/configure/index.js +24 -0
  20. package/dist/{envNaming-CcsqAel3.d.ts → envNaming-Dvm_LP2D.d.ts} +1 -1
  21. package/dist/{envNaming-BTJpH93W.d.cts → envNaming-S4B-dHUx.d.cts} +1 -1
  22. package/dist/index.cjs +1243 -186
  23. package/dist/index.d.cts +2 -13
  24. package/dist/index.d.ts +2 -13
  25. package/dist/index.js +13 -25
  26. package/dist/internal.cjs +1525 -81
  27. package/dist/internal.d.cts +171 -14
  28. package/dist/internal.d.ts +171 -14
  29. package/dist/internal.js +652 -5
  30. package/dist/plugin/basic-schema.cjs +29 -2
  31. package/dist/plugin/basic-schema.d.cts +1 -1
  32. package/dist/plugin/basic-schema.d.ts +1 -1
  33. package/dist/plugin/basic-schema.js +2 -2
  34. package/dist/plugin/cli-args.cjs +29 -2
  35. package/dist/plugin/cli-args.d.cts +1 -1
  36. package/dist/plugin/cli-args.d.ts +1 -1
  37. package/dist/plugin/cli-args.js +2 -2
  38. package/dist/plugin/dotenv.cjs +36 -9
  39. package/dist/plugin/dotenv.d.cts +2 -2
  40. package/dist/plugin/dotenv.d.ts +2 -2
  41. package/dist/plugin/dotenv.js +2 -2
  42. package/dist/plugin/env-export.cjs +31 -2
  43. package/dist/plugin/env-export.d.cts +2 -2
  44. package/dist/plugin/env-export.d.ts +2 -2
  45. package/dist/plugin/env-export.js +2 -2
  46. package/dist/plugin/filesystem.cjs +65 -91
  47. package/dist/plugin/filesystem.d.cts +1 -1
  48. package/dist/plugin/filesystem.d.ts +1 -1
  49. package/dist/plugin/filesystem.js +2 -2
  50. package/dist/plugin/process-env.cjs +105 -11
  51. package/dist/plugin/process-env.d.cts +4 -3
  52. package/dist/plugin/process-env.d.ts +4 -3
  53. package/dist/plugin/process-env.js +6 -4
  54. package/dist/{plugin-DkOIT5uI.d.cts → plugin-B4xwySxw.d.cts} +15 -2
  55. package/dist/{plugin-DkOIT5uI.d.ts → plugin-B4xwySxw.d.ts} +15 -2
  56. package/dist/runtime/index.cjs +1057 -136
  57. package/dist/runtime/index.d.cts +1 -1
  58. package/dist/runtime/index.d.ts +1 -1
  59. package/dist/runtime/index.js +11 -186
  60. package/dist/{toPublicEnv-C9clvXLo.d.ts → toPublicEnv-CvhGAfsB.d.ts} +1 -1
  61. package/dist/{toPublicEnv-DvFeV3qG.d.cts → toPublicEnv-ggmphZFs.d.cts} +1 -1
  62. package/package.json +11 -1
  63. package/dist/chunk-JUHPBAEH.js +0 -20
  64. package/dist/chunk-PQ4KSV76.js +0 -50
  65. package/dist/chunk-WHUGFPE4.js +0 -49
@@ -5,8 +5,8 @@ import {
5
5
  filesystemSecretsReader,
6
6
  filesystemValuesReader,
7
7
  yamlObjectToEntries
8
- } from "../chunk-SXTMTACL.js";
9
- import "../chunk-APCTXRUN.js";
8
+ } from "../chunk-T6Y57KTT.js";
9
+ import "../chunk-APIU4GTB.js";
10
10
  export {
11
11
  collectFilesystemLayerFiles,
12
12
  createFilesystemSecretsPlugin,
@@ -31,10 +31,26 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var process_env_exports = {};
32
32
  __export(process_env_exports, {
33
33
  createProcessEnvPlugin: () => createProcessEnvPlugin,
34
- processEnvEntriesFromObject: () => processEnvEntriesFromObject
34
+ processEnvEntriesFromObject: () => processEnvEntriesFromObject,
35
+ processNamespaceEntriesFromContext: () => processNamespaceEntriesFromContext
35
36
  });
36
37
  module.exports = __toCommonJS(process_env_exports);
37
38
 
39
+ // ../core/src/keychain/linux.ts
40
+ var import_node_child_process = require("child_process");
41
+ var import_node_util = require("util");
42
+ var execFileAsync = (0, import_node_util.promisify)(import_node_child_process.execFile);
43
+
44
+ // ../core/src/keychain/macos.ts
45
+ var import_node_child_process2 = require("child_process");
46
+ var import_node_util2 = require("util");
47
+ var execFileAsync2 = (0, import_node_util2.promisify)(import_node_child_process2.execFile);
48
+
49
+ // ../core/src/keychain/windows.ts
50
+ var import_node_child_process3 = require("child_process");
51
+ var import_node_util3 = require("util");
52
+ var execFileAsync3 = (0, import_node_util3.promisify)(import_node_child_process3.execFile);
53
+
38
54
  // ../core/src/manifest/loadManifest.ts
39
55
  var import_promises2 = require("fs/promises");
40
56
  var import_node_path2 = __toESM(require("path"), 1);
@@ -59,14 +75,26 @@ var import_node_path4 = __toESM(require("path"), 1);
59
75
  var import_promises5 = require("fs/promises");
60
76
  var import_node_path5 = __toESM(require("path"), 1);
61
77
 
78
+ // ../core/src/secrets/auditLog.ts
79
+ var import_promises8 = require("fs/promises");
80
+ var import_node_path8 = __toESM(require("path"), 1);
81
+
62
82
  // ../core/src/utils/secretStore.ts
63
83
  var import_node_crypto = require("crypto");
84
+ var import_promises7 = require("fs/promises");
85
+ var import_node_path7 = __toESM(require("path"), 1);
86
+
87
+ // ../core/src/secrets/sessionStore.ts
64
88
  var import_promises6 = require("fs/promises");
65
89
  var import_node_path6 = __toESM(require("path"), 1);
66
90
 
91
+ // ../core/src/secrets/prompt.ts
92
+ var import_node_readline = __toESM(require("readline"), 1);
93
+ var import_node_stream = require("stream");
94
+
67
95
  // ../core/src/runtime/dump.ts
68
- var import_promises7 = require("fs/promises");
69
- var import_node_path7 = __toESM(require("path"), 1);
96
+ var import_promises9 = require("fs/promises");
97
+ var import_node_path9 = __toESM(require("path"), 1);
70
98
 
71
99
  // ../core/src/utils/envNaming.ts
72
100
  function normalizeMappingConfig(config = {}) {
@@ -75,8 +103,8 @@ function normalizeMappingConfig(config = {}) {
75
103
  explicit: config.explicit ?? {}
76
104
  };
77
105
  }
78
- function fromScreamingSnake(path8) {
79
- return path8.split("_").map((segment) => segment.trim().toLowerCase()).filter(Boolean).join(".");
106
+ function fromScreamingSnake(path10) {
107
+ return path10.split("_").map((segment) => segment.trim().toLowerCase()).filter(Boolean).join(".");
80
108
  }
81
109
  function envVarToLogicalKey(envVar, config = {}) {
82
110
  const normalized = normalizeMappingConfig(config);
@@ -102,6 +130,11 @@ function envVarToLogicalKey(envVar, config = {}) {
102
130
 
103
131
  // ../../plugins/process-env/src/index.ts
104
132
  var PROCESS_ENV_PLUGIN_ID = "@kitsy/cnos/plugins/process-env";
133
+ var PROCESS_GRAPH_OMIT = /* @__PURE__ */ new Set([
134
+ "__CNOS_GRAPH__",
135
+ "__CNOS_SECRET_PAYLOAD__",
136
+ "__CNOS_SESSION_KEY__"
137
+ ]);
105
138
  function processEnvEntriesFromObject(env, mapping = {}, workspaceId = "default") {
106
139
  return Object.entries(env).flatMap(([envVar, value]) => {
107
140
  if (typeof value !== "string") {
@@ -126,22 +159,83 @@ function processEnvEntriesFromObject(env, mapping = {}, workspaceId = "default")
126
159
  ];
127
160
  });
128
161
  }
162
+ function processNamespaceEntriesFromContext(env, workspaceId = "default") {
163
+ const envEntries = Object.entries(env).filter((entry) => typeof entry[1] === "string").filter(([envVar]) => !PROCESS_GRAPH_OMIT.has(envVar)).map(([envVar, value]) => ({
164
+ key: `process.env.${envVar}`,
165
+ value,
166
+ namespace: "process",
167
+ sourceId: "process-runtime",
168
+ pluginId: PROCESS_ENV_PLUGIN_ID,
169
+ workspaceId,
170
+ origin: {
171
+ envVar
172
+ }
173
+ }));
174
+ const runtimeEntries = [
175
+ {
176
+ key: "process.cwd",
177
+ value: process.cwd(),
178
+ namespace: "process",
179
+ sourceId: "process-runtime",
180
+ pluginId: PROCESS_ENV_PLUGIN_ID,
181
+ workspaceId
182
+ },
183
+ {
184
+ key: "process.platform",
185
+ value: process.platform,
186
+ namespace: "process",
187
+ sourceId: "process-runtime",
188
+ pluginId: PROCESS_ENV_PLUGIN_ID,
189
+ workspaceId
190
+ },
191
+ {
192
+ key: "process.arch",
193
+ value: process.arch,
194
+ namespace: "process",
195
+ sourceId: "process-runtime",
196
+ pluginId: PROCESS_ENV_PLUGIN_ID,
197
+ workspaceId
198
+ },
199
+ {
200
+ key: "process.node.version",
201
+ value: process.version,
202
+ namespace: "process",
203
+ sourceId: "process-runtime",
204
+ pluginId: PROCESS_ENV_PLUGIN_ID,
205
+ workspaceId
206
+ },
207
+ {
208
+ key: "process.args.raw",
209
+ value: process.argv.slice(2),
210
+ namespace: "process",
211
+ sourceId: "process-runtime",
212
+ pluginId: PROCESS_ENV_PLUGIN_ID,
213
+ workspaceId
214
+ }
215
+ ];
216
+ return [...runtimeEntries, ...envEntries];
217
+ }
129
218
  function createProcessEnvPlugin() {
130
219
  return {
131
220
  id: "process-env",
132
221
  kind: "loader",
133
222
  async load(context) {
134
223
  const config = context.manifestConfig;
135
- return processEnvEntriesFromObject(
136
- context.processEnv ?? process.env,
137
- config.envMapping,
138
- context.workspace.workspaceId
139
- );
224
+ const env = context.processEnv ?? process.env;
225
+ return [
226
+ ...processEnvEntriesFromObject(
227
+ env,
228
+ config.envMapping,
229
+ context.workspace.workspaceId
230
+ ),
231
+ ...processNamespaceEntriesFromContext(env, context.workspace.workspaceId)
232
+ ];
140
233
  }
141
234
  };
142
235
  }
143
236
  // Annotate the CommonJS export names for ESM import in node:
144
237
  0 && (module.exports = {
145
238
  createProcessEnvPlugin,
146
- processEnvEntriesFromObject
239
+ processEnvEntriesFromObject,
240
+ processNamespaceEntriesFromContext
147
241
  });
@@ -1,7 +1,8 @@
1
- import { L as LoaderPlugin, f as ConfigEntry } from '../plugin-DkOIT5uI.cjs';
2
- import { E as EnvMappingConfig } from '../envNaming-BTJpH93W.cjs';
1
+ import { L as LoaderPlugin, a as ConfigEntry } from '../plugin-B4xwySxw.cjs';
2
+ import { E as EnvMappingConfig } from '../envNaming-S4B-dHUx.cjs';
3
3
 
4
4
  declare function processEnvEntriesFromObject(env: Record<string, string | undefined>, mapping?: EnvMappingConfig, workspaceId?: string): ConfigEntry[];
5
+ declare function processNamespaceEntriesFromContext(env: Record<string, string | undefined>, workspaceId?: string): ConfigEntry[];
5
6
  declare function createProcessEnvPlugin(): LoaderPlugin;
6
7
 
7
- export { createProcessEnvPlugin, processEnvEntriesFromObject };
8
+ export { createProcessEnvPlugin, processEnvEntriesFromObject, processNamespaceEntriesFromContext };
@@ -1,7 +1,8 @@
1
- import { L as LoaderPlugin, f as ConfigEntry } from '../plugin-DkOIT5uI.js';
2
- import { E as EnvMappingConfig } from '../envNaming-CcsqAel3.js';
1
+ import { L as LoaderPlugin, a as ConfigEntry } from '../plugin-B4xwySxw.js';
2
+ import { E as EnvMappingConfig } from '../envNaming-Dvm_LP2D.js';
3
3
 
4
4
  declare function processEnvEntriesFromObject(env: Record<string, string | undefined>, mapping?: EnvMappingConfig, workspaceId?: string): ConfigEntry[];
5
+ declare function processNamespaceEntriesFromContext(env: Record<string, string | undefined>, workspaceId?: string): ConfigEntry[];
5
6
  declare function createProcessEnvPlugin(): LoaderPlugin;
6
7
 
7
- export { createProcessEnvPlugin, processEnvEntriesFromObject };
8
+ export { createProcessEnvPlugin, processEnvEntriesFromObject, processNamespaceEntriesFromContext };
@@ -1,9 +1,11 @@
1
1
  import {
2
2
  createProcessEnvPlugin,
3
- processEnvEntriesFromObject
4
- } from "../chunk-WHUGFPE4.js";
5
- import "../chunk-APCTXRUN.js";
3
+ processEnvEntriesFromObject,
4
+ processNamespaceEntriesFromContext
5
+ } from "../chunk-WCHX2QFY.js";
6
+ import "../chunk-APIU4GTB.js";
6
7
  export {
7
8
  createProcessEnvPlugin,
8
- processEnvEntriesFromObject
9
+ processEnvEntriesFromObject,
10
+ processNamespaceEntriesFromContext
9
11
  };
@@ -47,6 +47,16 @@ type ResolutionArrayPolicy = 'replace' | 'append' | 'unique-append';
47
47
  type NamespaceKind = 'data' | 'projection' | 'system';
48
48
  type NamespaceProjectionSource = 'promote' | 'envMapping';
49
49
  type VaultProviderName = 'local' | 'github-secrets' | (string & {});
50
+ type VaultAuthMethod = 'passphrase' | 'environment' | 'token' | 'iam' | 'keychain';
51
+ interface VaultAuthSourceConfig {
52
+ from?: string[];
53
+ }
54
+ interface VaultAuthDefinition {
55
+ method?: VaultAuthMethod;
56
+ passphrase?: VaultAuthSourceConfig;
57
+ token?: VaultAuthSourceConfig;
58
+ config?: Record<string, unknown>;
59
+ }
50
60
  interface NamespaceDefinition {
51
61
  kind: NamespaceKind;
52
62
  shareable: boolean;
@@ -56,7 +66,8 @@ interface NamespaceDefinition {
56
66
  }
57
67
  interface VaultDefinition {
58
68
  provider: VaultProviderName;
59
- passphrase?: string;
69
+ auth?: VaultAuthDefinition;
70
+ mapping?: Record<string, string>;
60
71
  }
61
72
  interface ManifestFile {
62
73
  version?: number;
@@ -228,6 +239,7 @@ interface CnosCreateOptions {
228
239
  profile?: string;
229
240
  workspace?: string;
230
241
  globalRoot?: string;
242
+ secretResolution?: 'eager' | 'lazy';
231
243
  cnosVersion?: string;
232
244
  plugins?: CnosPlugin[];
233
245
  cliArgs?: string[];
@@ -283,6 +295,7 @@ interface CnosPlugin {
283
295
  kind: CnosPluginKind;
284
296
  }
285
297
  interface LoaderContext {
298
+ manifest: NormalizedManifest;
286
299
  manifestConfig: Record<string, unknown>;
287
300
  profile: string;
288
301
  profileChain: string[];
@@ -334,4 +347,4 @@ interface ExporterPlugin extends CnosPlugin {
334
347
  export(graph: ResolvedGraph, context: ExportContext): Promise<ExportResult>;
335
348
  }
336
349
 
337
- export type { CnosCreateOptions as C, DumpPlanOptions as D, ExporterPlugin as E, InspectResult as I, LoaderPlugin as L, ManifestFile as M, NormalizedManifest as N, ResolvedGraph as R, ToEnvOptions as T, VaultDefinition as V, WorkspaceFile as W, DumpPlan as a, DumpOptions as b, DumpResult as c, CnosRuntime as d, CnosPlugin as e, ConfigEntry as f, LogicalKey as g, ToPublicEnvOptions as h, LoadManifestOptions as i, LoadedManifest as j, ValidationSummary as k, ValidationIssue as l, ValidatorPlugin as m, WorkspaceRoot as n, NamespaceName as o };
350
+ export type { CnosCreateOptions as C, DumpPlanOptions as D, ExporterPlugin as E, InspectResult as I, LoaderPlugin as L, ManifestFile as M, NormalizedManifest as N, ResolvedGraph as R, ToEnvOptions as T, ValidatorPlugin as V, WorkspaceRoot as W, ConfigEntry as a, LogicalKey as b, ToPublicEnvOptions as c, DumpPlan as d, DumpOptions as e, DumpResult as f, CnosRuntime as g, CnosPlugin as h, NamespaceName as i, LoadManifestOptions as j, LoadedManifest as k, NamespaceDefinition as l, VaultDefinition as m, ValidationSummary as n, ValidationIssue as o, WorkspaceFile as p };
@@ -47,6 +47,16 @@ type ResolutionArrayPolicy = 'replace' | 'append' | 'unique-append';
47
47
  type NamespaceKind = 'data' | 'projection' | 'system';
48
48
  type NamespaceProjectionSource = 'promote' | 'envMapping';
49
49
  type VaultProviderName = 'local' | 'github-secrets' | (string & {});
50
+ type VaultAuthMethod = 'passphrase' | 'environment' | 'token' | 'iam' | 'keychain';
51
+ interface VaultAuthSourceConfig {
52
+ from?: string[];
53
+ }
54
+ interface VaultAuthDefinition {
55
+ method?: VaultAuthMethod;
56
+ passphrase?: VaultAuthSourceConfig;
57
+ token?: VaultAuthSourceConfig;
58
+ config?: Record<string, unknown>;
59
+ }
50
60
  interface NamespaceDefinition {
51
61
  kind: NamespaceKind;
52
62
  shareable: boolean;
@@ -56,7 +66,8 @@ interface NamespaceDefinition {
56
66
  }
57
67
  interface VaultDefinition {
58
68
  provider: VaultProviderName;
59
- passphrase?: string;
69
+ auth?: VaultAuthDefinition;
70
+ mapping?: Record<string, string>;
60
71
  }
61
72
  interface ManifestFile {
62
73
  version?: number;
@@ -228,6 +239,7 @@ interface CnosCreateOptions {
228
239
  profile?: string;
229
240
  workspace?: string;
230
241
  globalRoot?: string;
242
+ secretResolution?: 'eager' | 'lazy';
231
243
  cnosVersion?: string;
232
244
  plugins?: CnosPlugin[];
233
245
  cliArgs?: string[];
@@ -283,6 +295,7 @@ interface CnosPlugin {
283
295
  kind: CnosPluginKind;
284
296
  }
285
297
  interface LoaderContext {
298
+ manifest: NormalizedManifest;
286
299
  manifestConfig: Record<string, unknown>;
287
300
  profile: string;
288
301
  profileChain: string[];
@@ -334,4 +347,4 @@ interface ExporterPlugin extends CnosPlugin {
334
347
  export(graph: ResolvedGraph, context: ExportContext): Promise<ExportResult>;
335
348
  }
336
349
 
337
- export type { CnosCreateOptions as C, DumpPlanOptions as D, ExporterPlugin as E, InspectResult as I, LoaderPlugin as L, ManifestFile as M, NormalizedManifest as N, ResolvedGraph as R, ToEnvOptions as T, VaultDefinition as V, WorkspaceFile as W, DumpPlan as a, DumpOptions as b, DumpResult as c, CnosRuntime as d, CnosPlugin as e, ConfigEntry as f, LogicalKey as g, ToPublicEnvOptions as h, LoadManifestOptions as i, LoadedManifest as j, ValidationSummary as k, ValidationIssue as l, ValidatorPlugin as m, WorkspaceRoot as n, NamespaceName as o };
350
+ export type { CnosCreateOptions as C, DumpPlanOptions as D, ExporterPlugin as E, InspectResult as I, LoaderPlugin as L, ManifestFile as M, NormalizedManifest as N, ResolvedGraph as R, ToEnvOptions as T, ValidatorPlugin as V, WorkspaceRoot as W, ConfigEntry as a, LogicalKey as b, ToPublicEnvOptions as c, DumpPlan as d, DumpOptions as e, DumpResult as f, CnosRuntime as g, CnosPlugin as h, NamespaceName as i, LoadManifestOptions as j, LoadedManifest as k, NamespaceDefinition as l, VaultDefinition as m, ValidationSummary as n, ValidationIssue as o, WorkspaceFile as p };