@kalphq/cli 0.0.0-dev-20260420052759 → 0.0.0-dev-20260420061515

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 (38) hide show
  1. package/dist/{add-UCN5EAL3.js → add-LCDZNMNK.js} +7 -35
  2. package/dist/add-LCDZNMNK.js.map +1 -0
  3. package/dist/{chunk-22WOAGNG.js → chunk-KI5J6MOO.js} +9 -10
  4. package/dist/chunk-KI5J6MOO.js.map +1 -0
  5. package/dist/chunk-W4ZIAVWI.js +108 -0
  6. package/dist/chunk-W4ZIAVWI.js.map +1 -0
  7. package/dist/{create-T7KGVPNR.js → create-GQZGNPQ7.js} +3 -2
  8. package/dist/create-GQZGNPQ7.js.map +1 -0
  9. package/dist/{delete-6MKUQ3XK.js → delete-ZYPUY7GC.js} +7 -25
  10. package/dist/delete-ZYPUY7GC.js.map +1 -0
  11. package/dist/index.js +6 -6
  12. package/dist/index.js.map +1 -1
  13. package/dist/{init-VBOTPFNB.js → init-LUNBE3EX.js} +3 -2
  14. package/dist/init-LUNBE3EX.js.map +1 -0
  15. package/dist/{list-BOE33VSI.js → list-OKKHGKJA.js} +1 -1
  16. package/dist/list-OKKHGKJA.js.map +1 -0
  17. package/dist/{login-22HHVS52.js → login-SIKUBDGO.js} +1 -1
  18. package/dist/login-SIKUBDGO.js.map +1 -0
  19. package/dist/{migrate-GA7EHSDG.js → migrate-3PX52XLP.js} +1 -1
  20. package/dist/migrate-3PX52XLP.js.map +1 -0
  21. package/dist/{push-2B4NWFGC.js → push-Q4WIPJV3.js} +1 -1
  22. package/dist/push-Q4WIPJV3.js.map +1 -0
  23. package/dist/{secrets-SIK6J5AF.js → secrets-HTLXE6OC.js} +8 -4
  24. package/dist/secrets-HTLXE6OC.js.map +1 -0
  25. package/dist/sync-Y3YT5GCV.js +121 -0
  26. package/dist/sync-Y3YT5GCV.js.map +1 -0
  27. package/package.json +2 -2
  28. package/templates/project/package.json +1 -1
  29. package/dist/add-UCN5EAL3.js.map +0 -1
  30. package/dist/chunk-22WOAGNG.js.map +0 -1
  31. package/dist/create-T7KGVPNR.js.map +0 -1
  32. package/dist/delete-6MKUQ3XK.js.map +0 -1
  33. package/dist/init-VBOTPFNB.js.map +0 -1
  34. package/dist/list-BOE33VSI.js.map +0 -1
  35. package/dist/login-22HHVS52.js.map +0 -1
  36. package/dist/migrate-GA7EHSDG.js.map +0 -1
  37. package/dist/push-2B4NWFGC.js.map +0 -1
  38. package/dist/secrets-SIK6J5AF.js.map +0 -1
@@ -2,6 +2,9 @@
2
2
  import {
3
3
  getAuthToken
4
4
  } from "./chunk-6LLXGS2P.js";
5
+ import {
6
+ generateTypes
7
+ } from "./chunk-W4ZIAVWI.js";
5
8
  import "./chunk-2H7UOFLK.js";
6
9
 
7
10
  // src/commands/secrets/add.ts
@@ -36,39 +39,8 @@ async function addSecretToLocalConfig(cwd, key) {
36
39
  content = content.replace(/secrets:\s*\[([^\]]*)\]/, newArray);
37
40
  await writeFile(configPath, content, "utf-8");
38
41
  }
39
- async function addSecretToTypes(cwd, key) {
40
- const dtsPath = join(cwd, "kalp.d.ts");
41
- let content;
42
- try {
43
- content = await readFile(dtsPath, "utf-8");
44
- } catch {
45
- content = `import "@kalphq/sdk";
46
-
47
- declare module "@kalphq/sdk" {
48
- interface SecretsRegistry {
49
- keys: [];
50
- }
51
- }
52
- `;
53
- }
54
- if (content.includes(`"${key}"`)) {
55
- return;
56
- }
57
- const match = content.match(/keys:\s*\[([^\]]*)\]/);
58
- if (!match) {
59
- throw new Error("Could not find keys array in kalp.d.ts");
60
- }
61
- const currentArray = match[1]?.trim();
62
- if (!currentArray || currentArray.length === 0) {
63
- content = content.replace(/keys:\s*\[\s*\]/, `keys: ["${key}"]`);
64
- } else {
65
- const newKey = `, "${key}"`;
66
- content = content.replace(
67
- /keys:\s*\[([^\]]*)\]/,
68
- `keys: [${currentArray}${newKey}]`
69
- );
70
- }
71
- await writeFile(dtsPath, content, "utf-8");
42
+ async function regenerateTypes(cwd) {
43
+ await generateTypes(cwd);
72
44
  }
73
45
  var add_default = defineCommand({
74
46
  meta: {
@@ -144,7 +116,7 @@ var add_default = defineCommand({
144
116
  try {
145
117
  await addSecretToCloud(key, value);
146
118
  await addSecretToLocalConfig(cwd, key);
147
- await addSecretToTypes(cwd, key);
119
+ await regenerateTypes(cwd);
148
120
  s.stop(`Secret ${pc.cyan(key)} added successfully`);
149
121
  p.outro("Done");
150
122
  } catch (error) {
@@ -162,4 +134,4 @@ var add_default = defineCommand({
162
134
  export {
163
135
  add_default as default
164
136
  };
165
- //# sourceMappingURL=add-UCN5EAL3.js.map
137
+ //# sourceMappingURL=add-LCDZNMNK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/secrets/add.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { generateTypes } from \"@/utils/codegen\";\nimport { getAuthToken } from \"@/utils/auth\";\n\nconst LOGO = \"🦋\";\n\nasync function addSecretToCloud(key: string, value: string): Promise<void> {\n // TODO: Implement real API call to Kalp Cloud\n console.log(pc.dim(`[Simulated] Adding secret ${key} to Kalp Cloud...`));\n}\n\nasync function addSecretToLocalConfig(cwd: string, key: string): Promise<void> {\n const configPath = join(cwd, \"kalp.config.ts\");\n let content: string;\n\n try {\n content = await readFile(configPath, \"utf-8\");\n } catch {\n throw new Error(\"kalp.config.ts not found. Run `kalp init` first.\");\n }\n\n // Check if key already exists\n const regex = new RegExp(`[\"']${key}[\"']`);\n if (regex.test(content)) {\n throw new Error(`Secret ${key} already exists in kalp.config.ts`);\n }\n\n // Add secret to array\n const match = content.match(/secrets:\\s*\\[([^\\]]*)\\]/);\n if (!match) {\n throw new Error(\"Could not find secrets array in kalp.config.ts\");\n }\n\n const currentArray = match[1]?.trim() ?? \"\";\n\n const newSecret = currentArray.length > 0 ? `, \"${key}\"` : `\"${key}\"`;\n const newArray = `secrets: [${currentArray}${newSecret}]`;\n\n content = content.replace(/secrets:\\s*\\[([^\\]]*)\\]/, newArray);\n\n await writeFile(configPath, content, \"utf-8\");\n}\n\nasync function regenerateTypes(cwd: string): Promise<void> {\n // Regenerate .kalp/types.d.ts based on kalp.config.ts\n await generateTypes(cwd);\n}\n\nexport default defineCommand({\n meta: {\n name: \"add\",\n description: \"Add a secret to Kalp Cloud and local config\",\n },\n args: {\n key: {\n type: \"string\",\n alias: \"k\",\n description: \"Secret key name (e.g., STRIPE_SECRET_KEY)\",\n },\n value: {\n type: \"string\",\n alias: \"v\",\n description: \"Secret value\",\n },\n help: {\n type: \"boolean\",\n alias: \"h\",\n description: \"Show help\",\n default: false,\n },\n },\n async run({ args }) {\n const cwd = process.cwd();\n\n if (args.help) {\n p.log.info(`${pc.bold(\"Usage\")}: kalp secrets add -k <key> -v <value>`);\n p.log.info(\n pc.dim(\"Example: kalp secrets add -k STRIPE_SECRET_KEY -v sk_test_...\"),\n );\n return;\n }\n\n p.intro(`${LOGO} ${pc.bold(\"kalp secrets add\")}`);\n\n const token = await getAuthToken();\n if (!token) {\n p.log.warn(pc.yellow(\"Not logged in. Run `kalp login` first.\"));\n p.outro(\"Authentication required\");\n return;\n }\n\n let key = args.key;\n let value = args.value;\n\n // Interactive prompts if not provided\n if (!key) {\n const input = await p.text({\n message: \"Secret key name\",\n placeholder: \"STRIPE_SECRET_KEY\",\n validate: (v) => {\n if (!v) return \"Key is required\";\n if (!/^[A-Z_][A-Z0-9_]*$/.test(v)) {\n return \"Key must be UPPER_SNAKE_CASE\";\n }\n },\n });\n if (p.isCancel(input)) {\n p.outro(\"Cancelled\");\n return;\n }\n key = input;\n }\n\n if (!value) {\n const input = await p.password({\n message: `Enter value for ${key}`,\n mask: \"*\",\n });\n if (p.isCancel(input)) {\n p.outro(\"Cancelled\");\n return;\n }\n value = input;\n }\n\n const s = p.spinner();\n s.start(`Adding ${pc.cyan(key)}...`);\n\n try {\n // Add to cloud (simulated)\n await addSecretToCloud(key, value);\n\n // Add to local config\n await addSecretToLocalConfig(cwd, key);\n\n // Regenerate types from config\n await regenerateTypes(cwd);\n\n s.stop(`Secret ${pc.cyan(key)} added successfully`);\n p.outro(\"Done\");\n } catch (error) {\n s.stop(\"Failed to add secret\");\n p.log.error(\n pc.red(\n `Error: ${error instanceof Error ? error.message : String(error)}`,\n ),\n );\n p.outro(\"Failed\");\n process.exit(1);\n }\n },\n});\n"],"mappings":"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","names":[]}
@@ -1,4 +1,9 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ generateTypes,
4
+ updateKalpDts,
5
+ updateTsconfig
6
+ } from "./chunk-W4ZIAVWI.js";
2
7
  import {
3
8
  __export
4
9
  } from "./chunk-2H7UOFLK.js";
@@ -19745,15 +19750,9 @@ export default defineConfig({
19745
19750
  });
19746
19751
  `;
19747
19752
  await writeFile(join4(targetDir, "kalp.config.ts"), kalpConfig, "utf-8");
19748
- const kalpDts = `import "@kalphq/sdk";
19749
-
19750
- declare module "@kalphq/sdk" {
19751
- interface SecretsRegistry {
19752
- keys: [];
19753
- }
19754
- }
19755
- `;
19756
- await writeFile(join4(targetDir, "kalp.d.ts"), kalpDts, "utf-8");
19753
+ await generateTypes(targetDir);
19754
+ await updateKalpDts(targetDir);
19755
+ await updateTsconfig(targetDir);
19757
19756
  await replacePlaceholders(targetDir, { __PROJECT_NAME__: projectName });
19758
19757
  }
19759
19758
  async function scaffoldAgent(opts) {
@@ -19953,4 +19952,4 @@ export {
19953
19952
  promptProjectName,
19954
19953
  promptAgentDetails
19955
19954
  };
19956
- //# sourceMappingURL=chunk-22WOAGNG.js.map
19955
+ //# sourceMappingURL=chunk-KI5J6MOO.js.map