@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.
- package/dist/{add-UCN5EAL3.js → add-LCDZNMNK.js} +7 -35
- package/dist/add-LCDZNMNK.js.map +1 -0
- package/dist/{chunk-22WOAGNG.js → chunk-KI5J6MOO.js} +9 -10
- package/dist/chunk-KI5J6MOO.js.map +1 -0
- package/dist/chunk-W4ZIAVWI.js +108 -0
- package/dist/chunk-W4ZIAVWI.js.map +1 -0
- package/dist/{create-T7KGVPNR.js → create-GQZGNPQ7.js} +3 -2
- package/dist/create-GQZGNPQ7.js.map +1 -0
- package/dist/{delete-6MKUQ3XK.js → delete-ZYPUY7GC.js} +7 -25
- package/dist/delete-ZYPUY7GC.js.map +1 -0
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/{init-VBOTPFNB.js → init-LUNBE3EX.js} +3 -2
- package/dist/init-LUNBE3EX.js.map +1 -0
- package/dist/{list-BOE33VSI.js → list-OKKHGKJA.js} +1 -1
- package/dist/list-OKKHGKJA.js.map +1 -0
- package/dist/{login-22HHVS52.js → login-SIKUBDGO.js} +1 -1
- package/dist/login-SIKUBDGO.js.map +1 -0
- package/dist/{migrate-GA7EHSDG.js → migrate-3PX52XLP.js} +1 -1
- package/dist/migrate-3PX52XLP.js.map +1 -0
- package/dist/{push-2B4NWFGC.js → push-Q4WIPJV3.js} +1 -1
- package/dist/push-Q4WIPJV3.js.map +1 -0
- package/dist/{secrets-SIK6J5AF.js → secrets-HTLXE6OC.js} +8 -4
- package/dist/secrets-HTLXE6OC.js.map +1 -0
- package/dist/sync-Y3YT5GCV.js +121 -0
- package/dist/sync-Y3YT5GCV.js.map +1 -0
- package/package.json +2 -2
- package/templates/project/package.json +1 -1
- package/dist/add-UCN5EAL3.js.map +0 -1
- package/dist/chunk-22WOAGNG.js.map +0 -1
- package/dist/create-T7KGVPNR.js.map +0 -1
- package/dist/delete-6MKUQ3XK.js.map +0 -1
- package/dist/init-VBOTPFNB.js.map +0 -1
- package/dist/list-BOE33VSI.js.map +0 -1
- package/dist/login-22HHVS52.js.map +0 -1
- package/dist/migrate-GA7EHSDG.js.map +0 -1
- package/dist/push-2B4NWFGC.js.map +0 -1
- 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
|
|
40
|
-
|
|
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
|
|
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-
|
|
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
|
-
|
|
19749
|
-
|
|
19750
|
-
|
|
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-
|
|
19955
|
+
//# sourceMappingURL=chunk-KI5J6MOO.js.map
|