@fireproof/core-cli 0.24.14 → 0.24.16

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 (92) hide show
  1. package/build-cmd.test.js +1 -1
  2. package/build-cmd.test.js.map +1 -1
  3. package/cli-ctx.d.ts +6 -0
  4. package/cli-ctx.js +2 -0
  5. package/cli-ctx.js.map +1 -0
  6. package/cmd-evento.d.ts +24 -0
  7. package/cmd-evento.js +85 -0
  8. package/cmd-evento.js.map +1 -0
  9. package/{build-cmd.d.ts → cmds/build-cmd.d.ts} +41 -4
  10. package/{build-cmd.js → cmds/build-cmd.js} +211 -152
  11. package/cmds/build-cmd.js.map +1 -0
  12. package/{cloud-token-key-cmd.d.ts → cmds/cloud-token-key-cmd.d.ts} +20 -4
  13. package/cmds/cloud-token-key-cmd.js +114 -0
  14. package/cmds/cloud-token-key-cmd.js.map +1 -0
  15. package/cmds/dependabot-cmd.d.ts +33 -0
  16. package/cmds/dependabot-cmd.js +157 -0
  17. package/cmds/dependabot-cmd.js.map +1 -0
  18. package/cmds/device-id-cmd.d.ts +248 -0
  19. package/cmds/device-id-cmd.js +762 -0
  20. package/cmds/device-id-cmd.js.map +1 -0
  21. package/cmds/index.d.ts +12 -0
  22. package/cmds/index.js +13 -0
  23. package/cmds/index.js.map +1 -0
  24. package/{pre-signed-url.d.ts → cmds/pre-signed-url.d.ts} +26 -4
  25. package/{pre-signed-url.js → cmds/pre-signed-url.js} +63 -22
  26. package/cmds/pre-signed-url.js.map +1 -0
  27. package/cmds/retry-cmd.d.ts +31 -0
  28. package/cmds/retry-cmd.js +156 -0
  29. package/cmds/retry-cmd.js.map +1 -0
  30. package/{set-scripts-cmd.d.ts → cmds/set-scripts-cmd.d.ts} +40 -7
  31. package/cmds/set-scripts-cmd.js +213 -0
  32. package/cmds/set-scripts-cmd.js.map +1 -0
  33. package/cmds/test-container-cmd.d.ts +135 -0
  34. package/cmds/test-container-cmd.js +440 -0
  35. package/cmds/test-container-cmd.js.map +1 -0
  36. package/{tsc-cmd.d.ts → cmds/tsc-cmd.d.ts} +19 -3
  37. package/cmds/tsc-cmd.js +75 -0
  38. package/cmds/tsc-cmd.js.map +1 -0
  39. package/cmds/update-deps-cmd.d.ts +33 -0
  40. package/cmds/update-deps-cmd.js +194 -0
  41. package/cmds/update-deps-cmd.js.map +1 -0
  42. package/{well-known-cmd.d.ts → cmds/well-known-cmd.d.ts} +24 -4
  43. package/cmds/well-known-cmd.js +154 -0
  44. package/cmds/well-known-cmd.js.map +1 -0
  45. package/cmds/write-env-cmd.d.ts +43 -0
  46. package/cmds/write-env-cmd.js +145 -0
  47. package/cmds/write-env-cmd.js.map +1 -0
  48. package/create-cli-stream.d.ts +10 -0
  49. package/create-cli-stream.js +34 -0
  50. package/create-cli-stream.js.map +1 -0
  51. package/evento-test-helper.d.ts +11 -0
  52. package/evento-test-helper.js +40 -0
  53. package/evento-test-helper.js.map +1 -0
  54. package/evento.test.d.ts +1 -0
  55. package/evento.test.js +122 -0
  56. package/evento.test.js.map +1 -0
  57. package/index.d.ts +5 -0
  58. package/index.js +6 -0
  59. package/index.js.map +1 -0
  60. package/main.js +130 -31
  61. package/main.js.map +1 -1
  62. package/package.json +9 -8
  63. package/run.js +2 -3
  64. package/version-pinner.d.ts +1 -1
  65. package/build-cmd.js.map +0 -1
  66. package/cloud-token-key-cmd.js +0 -73
  67. package/cloud-token-key-cmd.js.map +0 -1
  68. package/dependabot-cmd.d.ts +0 -16
  69. package/dependabot-cmd.js +0 -102
  70. package/dependabot-cmd.js.map +0 -1
  71. package/device-id-cmd.d.ts +0 -150
  72. package/device-id-cmd.js +0 -576
  73. package/device-id-cmd.js.map +0 -1
  74. package/pre-signed-url.js.map +0 -1
  75. package/retry-cmd.d.ts +0 -14
  76. package/retry-cmd.js +0 -96
  77. package/retry-cmd.js.map +0 -1
  78. package/set-scripts-cmd.js +0 -155
  79. package/set-scripts-cmd.js.map +0 -1
  80. package/test-container-cmd.d.ts +0 -82
  81. package/test-container-cmd.js +0 -332
  82. package/test-container-cmd.js.map +0 -1
  83. package/tsc-cmd.js +0 -39
  84. package/tsc-cmd.js.map +0 -1
  85. package/update-deps-cmd.d.ts +0 -16
  86. package/update-deps-cmd.js +0 -147
  87. package/update-deps-cmd.js.map +0 -1
  88. package/well-known-cmd.js +0 -111
  89. package/well-known-cmd.js.map +0 -1
  90. package/write-env-cmd.d.ts +0 -23
  91. package/write-env-cmd.js +0 -104
  92. package/write-env-cmd.js.map +0 -1
@@ -0,0 +1,194 @@
1
+ import { command, flag, multioption, option, string, array } from "cmd-ts";
2
+ import { $, glob } from "zx";
3
+ import { readFile } from "fs/promises";
4
+ import { Result, Option } from "@adviser/cement";
5
+ import { type } from "arktype";
6
+ import { sendMsg, sendProgress } from "../cmd-evento.js";
7
+ async function findPackageJsonFiles(dir) {
8
+ const files = await glob([`${dir}/**/package.json`, `!${dir}/**/node_modules/**`], {
9
+ gitignore: true,
10
+ });
11
+ return files;
12
+ }
13
+ async function findMatchingPackages(ctx, packageJsonPath, patterns) {
14
+ let pkg;
15
+ try {
16
+ const content = await readFile(packageJsonPath, "utf-8");
17
+ pkg = JSON.parse(content);
18
+ }
19
+ catch (e) {
20
+ await sendProgress(ctx, "warn", `⚠️ Skipping unreadable/invalid JSON: ${packageJsonPath}`);
21
+ return [];
22
+ }
23
+ const allDeps = {
24
+ ...(pkg.dependencies ?? {}),
25
+ ...(pkg.devDependencies ?? {}),
26
+ };
27
+ const matchingPackages = new Set();
28
+ const regexes = patterns.map((p) => {
29
+ try {
30
+ return new RegExp(p);
31
+ }
32
+ catch {
33
+ throw new Error(`Invalid --pkg regex: ${p}`);
34
+ }
35
+ });
36
+ for (const pkgName of Object.keys(allDeps)) {
37
+ for (const regex of regexes) {
38
+ if (regex.test(pkgName)) {
39
+ matchingPackages.add(pkgName);
40
+ break;
41
+ }
42
+ }
43
+ }
44
+ return Array.from(matchingPackages);
45
+ }
46
+ export const ReqUpdateDeps = type({
47
+ type: "'core-cli.update-deps'",
48
+ ver: "string",
49
+ pkg: "string[]",
50
+ currentDir: "string",
51
+ dryRun: "boolean",
52
+ });
53
+ export const ResUpdateDeps = type({
54
+ type: "'core-cli.res-update-deps'",
55
+ output: "string",
56
+ });
57
+ export function isResUpdateDeps(u) {
58
+ return !(ResUpdateDeps(u) instanceof type.errors);
59
+ }
60
+ export const updateDepsEvento = {
61
+ hash: "core-cli.update-deps",
62
+ validate: (ctx) => {
63
+ if (!(ReqUpdateDeps(ctx.enRequest) instanceof type.errors)) {
64
+ return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
65
+ }
66
+ return Promise.resolve(Result.Ok(Option.None()));
67
+ },
68
+ handle: async (ctx) => {
69
+ const args = ctx.validated;
70
+ const { ver, pkg: patterns, currentDir, dryRun } = args;
71
+ $.verbose = true;
72
+ await sendProgress(ctx, "info", `\n🔍 Searching for package.json files in: ${currentDir}`);
73
+ await sendProgress(ctx, "info", `📋 Package patterns: ${patterns.join(", ")}`);
74
+ await sendProgress(ctx, "info", `🔄 Target version: ${ver}`);
75
+ if (dryRun) {
76
+ await sendProgress(ctx, "info", `🧪 DRY RUN MODE - No changes will be made`);
77
+ }
78
+ await sendProgress(ctx, "info", "");
79
+ try {
80
+ const packageJsonFiles = await findPackageJsonFiles(currentDir);
81
+ await sendProgress(ctx, "info", `Found ${packageJsonFiles.length} package.json files\n`);
82
+ const allMatchingPackages = new Set();
83
+ for (const file of packageJsonFiles) {
84
+ const matches = await findMatchingPackages(ctx, file, patterns);
85
+ matches.forEach((pkg) => allMatchingPackages.add(pkg));
86
+ }
87
+ const packagesToUpdate = Array.from(allMatchingPackages).sort();
88
+ if (packagesToUpdate.length === 0) {
89
+ await sendProgress(ctx, "warn", "⚠️ No matching packages found!");
90
+ return sendMsg(ctx, {
91
+ type: "core-cli.res-update-deps",
92
+ output: "No matching packages found",
93
+ });
94
+ }
95
+ await sendProgress(ctx, "info", `📦 Found ${packagesToUpdate.length} unique packages to update:\n`);
96
+ for (const pkg of packagesToUpdate) {
97
+ await sendProgress(ctx, "info", ` - ${pkg}`);
98
+ }
99
+ await sendProgress(ctx, "info", "");
100
+ if (dryRun) {
101
+ await sendProgress(ctx, "info", "🧪 DRY RUN: Would run the following commands:\n");
102
+ for (const pkg of packagesToUpdate) {
103
+ await sendProgress(ctx, "info", ` pnpm update -r ${pkg}@${ver}`);
104
+ }
105
+ await sendProgress(ctx, "info", "\n✨ Dry run complete! Re-run without --dry-run to apply changes.\n");
106
+ return sendMsg(ctx, {
107
+ type: "core-cli.res-update-deps",
108
+ output: `Dry run complete. ${packagesToUpdate.length} package(s) would be updated.`,
109
+ });
110
+ }
111
+ const failures = [];
112
+ for (const pkg of packagesToUpdate) {
113
+ await sendProgress(ctx, "info", `\n📦 Updating ${pkg} to ${ver}...`);
114
+ try {
115
+ await $({ cwd: currentDir }) `pnpm update -r ${pkg}@${ver}`;
116
+ await sendProgress(ctx, "info", ` ✅ Updated ${pkg}`);
117
+ }
118
+ catch (error) {
119
+ const errorMessage = error instanceof Error ? error.message : String(error);
120
+ failures.push({ pkg, error: errorMessage });
121
+ await sendProgress(ctx, "error", ` ❌ Failed to update ${pkg}`);
122
+ await sendProgress(ctx, "error", ` Error: ${errorMessage}`);
123
+ }
124
+ }
125
+ if (failures.length > 0) {
126
+ await sendProgress(ctx, "error", "\n❌ Update failed!\n");
127
+ await sendProgress(ctx, "error", `Failed to update ${failures.length} package(s):\n`);
128
+ for (const { pkg, error } of failures) {
129
+ await sendProgress(ctx, "error", ` - ${pkg}`);
130
+ await sendProgress(ctx, "error", ` ${error}\n`);
131
+ }
132
+ return Result.Err(`Failed to update ${failures.length} package(s)`);
133
+ }
134
+ await sendProgress(ctx, "info", "\n✨ Update complete!\n");
135
+ await sendProgress(ctx, "info", "📋 Next steps:");
136
+ await sendProgress(ctx, "info", " 1. Review changes: git diff");
137
+ await sendProgress(ctx, "info", " 2. Run checks: pnpm check");
138
+ await sendProgress(ctx, "info", " 3. Run tests: pnpm test:all");
139
+ return sendMsg(ctx, {
140
+ type: "core-cli.res-update-deps",
141
+ output: `Updated ${packagesToUpdate.length} package(s) to version ${ver}`,
142
+ });
143
+ }
144
+ catch (error) {
145
+ const errorMessage = error instanceof Error ? error.message : String(error);
146
+ await sendProgress(ctx, "error", `\n❌ Error updating dependencies: ${errorMessage}`);
147
+ return Result.Err(`Error updating dependencies: ${errorMessage}`);
148
+ }
149
+ },
150
+ };
151
+ export function updateDepsCmd(ctx) {
152
+ const cmd = command({
153
+ name: "updateDeps",
154
+ description: "Update all matching dependencies to a specified version across the monorepo",
155
+ version: "1.0.0",
156
+ args: {
157
+ ver: option({
158
+ type: string,
159
+ long: "ver",
160
+ short: "V",
161
+ description: "The version to update to (e.g., 0.24.3 or 0.24.2-dev-clerk)",
162
+ }),
163
+ pkg: multioption({
164
+ type: array(string),
165
+ long: "pkg",
166
+ short: "p",
167
+ description: "Package name regex pattern to match (can be specified multiple times)",
168
+ defaultValue: () => ["use-fireproof", "@fireproof/.*"],
169
+ defaultValueIsSerializable: true,
170
+ }),
171
+ currentDir: option({
172
+ type: string,
173
+ long: "currentDir",
174
+ short: "C",
175
+ description: "Directory to search for package.json files",
176
+ defaultValue: () => process.cwd(),
177
+ defaultValueIsSerializable: true,
178
+ }),
179
+ dryRun: flag({
180
+ long: "dry-run",
181
+ short: "d",
182
+ description: "Show what would be updated without making changes",
183
+ }),
184
+ },
185
+ handler: ctx.cliStream.enqueue((args) => {
186
+ return {
187
+ type: "core-cli.update-deps",
188
+ ...args,
189
+ };
190
+ }),
191
+ });
192
+ return cmd;
193
+ }
194
+ //# sourceMappingURL=update-deps-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-deps-cmd.js","sourceRoot":"","sources":["../../jsr/cmds/update-deps-cmd.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,25 @@
1
- import { SuperThis } from "@fireproof/core-types-base";
2
- export declare function wellKnownCmd(_sthis: SuperThis): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { CliCtx } from "../cli-ctx.js";
3
+ import { WrapCmdTSMsg } from "../cmd-evento.js";
4
+ export declare const ReqWellKnown: import("arktype/internal/variants/object.ts").ObjectType<{
5
+ type: "core-cli.req-well-known";
6
+ json: boolean;
7
+ jsons: boolean;
8
+ pem: boolean;
9
+ env: boolean;
10
+ presetKey: string;
11
+ envPrefix: string;
12
+ urls: string[];
13
+ }, {}>;
14
+ export type ReqWellKnown = typeof ReqWellKnown.infer;
15
+ export declare const ResWellKnown: import("arktype/internal/variants/object.ts").ObjectType<{
16
+ type: "core-cli.res-well-known";
17
+ output: string;
18
+ }, {}>;
19
+ export type ResWellKnown = typeof ResWellKnown.infer;
20
+ export declare function isResWellKnown(u: unknown): u is ResWellKnown;
21
+ export declare const wellKnownEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqWellKnown, ResWellKnown>;
22
+ export declare function wellKnownCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
3
23
  parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
4
24
  json: boolean;
5
25
  jsons: boolean;
@@ -17,6 +37,6 @@ export declare function wellKnownCmd(_sthis: SuperThis): Partial<import("cmd-ts/
17
37
  presetKey: string;
18
38
  envPrefix: string;
19
39
  urls: string[];
20
- }, Promise<void>> & {
21
- run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<Promise<void>>>;
40
+ }, never> & {
41
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
22
42
  } & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
@@ -0,0 +1,154 @@
1
+ import * as rt from "@fireproof/core-runtime";
2
+ import { command, restPositionals, string, option, flag } from "cmd-ts";
3
+ import { exportSPKI } from "jose";
4
+ import { Result, Option } from "@adviser/cement";
5
+ import { type } from "arktype";
6
+ import { sendMsg } from "../cmd-evento.js";
7
+ export const ReqWellKnown = type({
8
+ type: "'core-cli.req-well-known'",
9
+ json: "boolean",
10
+ jsons: "boolean",
11
+ pem: "boolean",
12
+ env: "boolean",
13
+ presetKey: "string",
14
+ envPrefix: "string",
15
+ urls: "string[]",
16
+ });
17
+ export const ResWellKnown = type({
18
+ type: "'core-cli.res-well-known'",
19
+ output: "string",
20
+ });
21
+ export function isResWellKnown(u) {
22
+ return !(ResWellKnown(u) instanceof type.errors);
23
+ }
24
+ export const wellKnownEvento = {
25
+ hash: "core-cli.req-well-known",
26
+ validate: (ctx) => {
27
+ if (!(ReqWellKnown(ctx.enRequest) instanceof type.errors)) {
28
+ return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
29
+ }
30
+ return Promise.resolve(Result.Ok(Option.None()));
31
+ },
32
+ handle: async (ctx) => {
33
+ const cliCtx = ctx.ctx.getOrThrow("cliCtx");
34
+ const sthis = cliCtx.sthis;
35
+ const args = ctx.validated;
36
+ const urls = args.urls.flatMap((url) => url.split(",").map((u) => u.trim())).filter((u) => u.length > 0);
37
+ const presetKeys = args.presetKey ? await rt.sts.coerceJWKPublic(sthis, args.presetKey) : [];
38
+ const results = urls.length > 0
39
+ ? await rt.sts.fetchWellKnownJwks(urls, {
40
+ fetchTimeoutMs: 5000,
41
+ })
42
+ : [];
43
+ if (urls.length === 0 && presetKeys.length === 0) {
44
+ return Result.Err("At least one URL or presetKey must be provided");
45
+ }
46
+ const hasCustomEnvPrefix = args.envPrefix !== "CLERK_PUB_JWT_KEY";
47
+ const format = args.pem ? "pem" : args.env || hasCustomEnvPrefix ? "env" : args.jsons ? "jsons" : "json";
48
+ const keyMap = new Map();
49
+ for (const key of presetKeys) {
50
+ if (key.kid) {
51
+ keyMap.set(key.kid, key);
52
+ }
53
+ else {
54
+ keyMap.set(JSON.stringify(key), key);
55
+ }
56
+ }
57
+ for (const result of results) {
58
+ if (result.type === "ok") {
59
+ for (const key of result.keys) {
60
+ if (key.kid) {
61
+ keyMap.set(key.kid, key);
62
+ }
63
+ else {
64
+ keyMap.set(JSON.stringify(key), key);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ const combinedOutput = { keys: Array.from(keyMap.values()) };
70
+ let output;
71
+ switch (format) {
72
+ case "json":
73
+ output = JSON.stringify(combinedOutput, null, 2);
74
+ break;
75
+ case "pem":
76
+ {
77
+ const pemParts = [];
78
+ for (const jwk of combinedOutput.keys) {
79
+ const rKey = await rt.sts.importJWK(jwk);
80
+ if (rKey.isErr()) {
81
+ return Result.Err(`Error importing JWK: ${rKey.Err()}`);
82
+ }
83
+ pemParts.push(await exportSPKI(rKey.Ok().key));
84
+ }
85
+ output = pemParts.join("\n");
86
+ }
87
+ break;
88
+ case "env":
89
+ output = `${args.envPrefix}=${JSON.stringify(JSON.stringify(combinedOutput))}`;
90
+ break;
91
+ case "jsons":
92
+ default:
93
+ output = JSON.stringify(combinedOutput);
94
+ break;
95
+ }
96
+ return sendMsg(ctx, {
97
+ type: "core-cli.res-well-known",
98
+ output,
99
+ });
100
+ },
101
+ };
102
+ export function wellKnownCmd(ctx) {
103
+ return command({
104
+ name: "well-known",
105
+ description: "Fetch well-known JWKS from URLs",
106
+ version: "1.0.0",
107
+ args: {
108
+ json: flag({
109
+ long: "json",
110
+ description: "Output as JSON (default)",
111
+ defaultValue: () => false,
112
+ }),
113
+ jsons: flag({
114
+ long: "jsons",
115
+ description: "Output as single-line quoted JSON string",
116
+ defaultValue: () => false,
117
+ }),
118
+ pem: flag({
119
+ long: "pem",
120
+ description: "Output as PEM format per key",
121
+ defaultValue: () => false,
122
+ }),
123
+ env: flag({
124
+ long: "env",
125
+ description: "Output as environment variables with single-lined PEM",
126
+ defaultValue: () => false,
127
+ }),
128
+ presetKey: option({
129
+ type: string,
130
+ long: "presetKey",
131
+ defaultValue: () => "",
132
+ description: "Preset key to include (will be processed with coerceJWKPublic)",
133
+ }),
134
+ envPrefix: option({
135
+ type: string,
136
+ long: "env-prefix",
137
+ defaultValue: () => "CLERK_PUB_JWT_KEY",
138
+ description: "Prefix for environment variable names (used with --env)",
139
+ }),
140
+ urls: restPositionals({
141
+ type: string,
142
+ displayName: "urls",
143
+ description: "URLs to fetch well-known JWKS from",
144
+ }),
145
+ },
146
+ handler: ctx.cliStream.enqueue((args) => {
147
+ return {
148
+ type: "core-cli.req-well-known",
149
+ ...args,
150
+ };
151
+ }),
152
+ });
153
+ }
154
+ //# sourceMappingURL=well-known-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"well-known-cmd.js","sourceRoot":"","sources":["../../jsr/cmds/well-known-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { CliCtx } from "../cli-ctx.js";
3
+ import { WrapCmdTSMsg } from "../cmd-evento.js";
4
+ export declare const ReqWriteEnv: import("arktype/internal/variants/object.ts").ObjectType<{
5
+ type: "core-cli.write-env";
6
+ wranglerToml: string;
7
+ env: string;
8
+ doNotOverwrite: boolean;
9
+ excludeSecrets: boolean;
10
+ fromEnv: string[];
11
+ out: string | undefined;
12
+ json: boolean;
13
+ }, {}>;
14
+ export type ReqWriteEnv = typeof ReqWriteEnv.infer;
15
+ export declare const ResWriteEnv: import("arktype/internal/variants/object.ts").ObjectType<{
16
+ type: "core-cli.res-write-env";
17
+ output: string;
18
+ }, {}>;
19
+ export type ResWriteEnv = typeof ResWriteEnv.infer;
20
+ export declare function isResWriteEnv(u: unknown): u is ResWriteEnv;
21
+ export declare function writeEnvFile(sthis: CliCtx["sthis"], envFname: string, outFname: string | undefined, env: string, vals: Record<string, string>, doNotOverwrite: boolean, json: boolean): Promise<string>;
22
+ export declare const writeEnvEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqWriteEnv, ResWriteEnv>;
23
+ export declare function writeEnvCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
24
+ parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
25
+ wranglerToml: string;
26
+ env: string;
27
+ doNotOverwrite: boolean;
28
+ excludeSecrets: boolean;
29
+ fromEnv: string[];
30
+ out: string | undefined;
31
+ json: boolean;
32
+ }>>;
33
+ } & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
34
+ wranglerToml: string;
35
+ env: string;
36
+ doNotOverwrite: boolean;
37
+ excludeSecrets: boolean;
38
+ fromEnv: string[];
39
+ out: string | undefined;
40
+ json: boolean;
41
+ }, never> & {
42
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
43
+ } & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
@@ -0,0 +1,145 @@
1
+ import { command, option, string, flag, optional, array, multioption } from "cmd-ts";
2
+ import * as rt from "@fireproof/core-runtime";
3
+ import { Result, Option, param } from "@adviser/cement";
4
+ import { type } from "arktype";
5
+ import { sendMsg } from "../cmd-evento.js";
6
+ import fs from "fs/promises";
7
+ export const ReqWriteEnv = type({
8
+ type: "'core-cli.write-env'",
9
+ wranglerToml: "string",
10
+ env: "string",
11
+ doNotOverwrite: "boolean",
12
+ excludeSecrets: "boolean",
13
+ fromEnv: "string[]",
14
+ out: "string | undefined",
15
+ json: "boolean",
16
+ });
17
+ export const ResWriteEnv = type({
18
+ type: "'core-cli.res-write-env'",
19
+ output: "string",
20
+ });
21
+ export function isResWriteEnv(u) {
22
+ return !(ResWriteEnv(u) instanceof type.errors);
23
+ }
24
+ export async function writeEnvFile(sthis, envFname, outFname, env, vals, doNotOverwrite, json) {
25
+ let render;
26
+ if (json) {
27
+ render = JSON.stringify(vals, null, 2);
28
+ }
29
+ else {
30
+ render = Object.entries(vals)
31
+ .map(([k, v]) => `${k}=${v}`)
32
+ .join("\n");
33
+ }
34
+ if (outFname === "-") {
35
+ process.stdout.write(render + "\n");
36
+ return "-";
37
+ }
38
+ const fname = outFname ?? sthis.pathOps.join(sthis.pathOps.dirname(envFname), `.dev.vars.${env}`);
39
+ if (doNotOverwrite &&
40
+ (await fs
41
+ .stat(fname)
42
+ .then(() => true)
43
+ .catch(() => false))) {
44
+ return fname;
45
+ }
46
+ await fs.writeFile(fname, render);
47
+ return fname;
48
+ }
49
+ export const writeEnvEvento = {
50
+ hash: "core-cli.write-env",
51
+ validate: (ctx) => {
52
+ if (!(ReqWriteEnv(ctx.enRequest) instanceof type.errors)) {
53
+ return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
54
+ }
55
+ return Promise.resolve(Result.Ok(Option.None()));
56
+ },
57
+ handle: async (ctx) => {
58
+ const cliCtx = ctx.ctx.getOrThrow("cliCtx");
59
+ const sthis = cliCtx.sthis;
60
+ const args = ctx.validated;
61
+ let vals = {};
62
+ if (args.fromEnv.length === 0) {
63
+ vals = {
64
+ [rt.sts.envKeyDefaults.PUBLIC]: param.REQUIRED,
65
+ STORAGE_URL: sthis.env.get("STORAGE_URL") ?? "http://127.0.0.1:9000/testbucket",
66
+ FP_STORAGE_URL: param.OPTIONAL,
67
+ };
68
+ if (!args.excludeSecrets) {
69
+ vals["ACCESS_KEY_ID"] = "minioadmin";
70
+ vals["SECRET_ACCESS_KEY"] = "minioadmin";
71
+ }
72
+ }
73
+ else {
74
+ Array.from(new Set(args.fromEnv))
75
+ .sort()
76
+ .reduce((acc, i) => {
77
+ const [k, v] = i.split("=");
78
+ if (v === undefined) {
79
+ acc[k] = param.REQUIRED;
80
+ }
81
+ else {
82
+ acc[k] = v;
83
+ }
84
+ return acc;
85
+ }, vals);
86
+ }
87
+ const rVal = sthis.env.gets(vals);
88
+ if (rVal.isErr()) {
89
+ return Result.Err(rVal.Err());
90
+ }
91
+ const fname = await writeEnvFile(sthis, args.wranglerToml, args.out, args.env, rVal.Ok(), args.doNotOverwrite, args.json);
92
+ const output = ["-", "stdout"].find((i) => args.out?.includes(i))
93
+ ? ""
94
+ : `Wrote: ${fname} keys: ${JSON.stringify(Object.keys(rVal.Ok()))}`;
95
+ return sendMsg(ctx, {
96
+ type: "core-cli.res-write-env",
97
+ output,
98
+ });
99
+ },
100
+ };
101
+ export function writeEnvCmd(ctx) {
102
+ return command({
103
+ name: "cli-write-env",
104
+ description: "write env file",
105
+ version: "1.0.0",
106
+ args: {
107
+ wranglerToml: option({
108
+ long: "wranglerToml",
109
+ type: string,
110
+ defaultValue: () => "./wrangler.toml",
111
+ defaultValueIsSerializable: true,
112
+ }),
113
+ env: option({
114
+ long: "env",
115
+ type: string,
116
+ defaultValue: () => "test",
117
+ defaultValueIsSerializable: true,
118
+ }),
119
+ doNotOverwrite: flag({
120
+ long: "doNotOverwrite",
121
+ }),
122
+ excludeSecrets: flag({
123
+ long: "excludeSecrets",
124
+ }),
125
+ fromEnv: multioption({
126
+ long: "fromEnv",
127
+ type: array(string),
128
+ }),
129
+ out: option({
130
+ long: "out",
131
+ type: optional(string),
132
+ }),
133
+ json: flag({
134
+ long: "json",
135
+ }),
136
+ },
137
+ handler: ctx.cliStream.enqueue((args) => {
138
+ return {
139
+ type: "core-cli.write-env",
140
+ ...args,
141
+ };
142
+ }),
143
+ });
144
+ }
145
+ //# sourceMappingURL=write-env-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-env-cmd.js","sourceRoot":"","sources":["../../jsr/cmds/write-env-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { command } from "cmd-ts";
2
+ export type EnqueueFn<Args extends readonly unknown[], Return, RealReturn = unknown> = (fn: (...a: Args) => RealReturn) => Return;
3
+ export interface CliStream<Args extends readonly unknown[], Return, RealReturn = unknown> {
4
+ stream: ReadableStream<RealReturn>;
5
+ enqueue(fn: (...a: Args) => RealReturn): Return;
6
+ close(): Promise<void>;
7
+ }
8
+ export type HandlerArgsType = Parameters<Parameters<typeof command>[0]["handler"]>;
9
+ export type HandlerReturnType = never;
10
+ export declare function createCliStream(): CliStream<HandlerArgsType, HandlerReturnType>;
@@ -0,0 +1,34 @@
1
+ export function createCliStream() {
2
+ const tstream = new TransformStream();
3
+ const writer = tstream.writable.getWriter();
4
+ const pending = new Set();
5
+ return {
6
+ stream: tstream.readable,
7
+ close: async () => {
8
+ await Promise.allSettled(pending);
9
+ writer.releaseLock();
10
+ await tstream.writable.close();
11
+ },
12
+ enqueue: ((wrappedFunc) => {
13
+ return (args) => {
14
+ const queued = Promise.resolve(wrappedFunc(args))
15
+ .then((result) => {
16
+ const cmdTsMsg = {
17
+ type: "msg.cmd-ts",
18
+ cmdTs: {
19
+ raw: args,
20
+ outputFormat: "text",
21
+ },
22
+ result,
23
+ };
24
+ return writer.write(cmdTsMsg);
25
+ })
26
+ .then(() => undefined)
27
+ .finally(() => pending.delete(queued));
28
+ pending.add(queued);
29
+ return undefined;
30
+ };
31
+ }),
32
+ };
33
+ }
34
+ //# sourceMappingURL=create-cli-stream.js.map