@ir-kit/cli 0.2.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.
- package/LICENSE.md +21 -0
- package/README.md +81 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +42 -0
- package/dist/bin.js.map +1 -0
- package/dist/command-spec.d.ts +11 -0
- package/dist/command-spec.d.ts.map +1 -0
- package/dist/command-spec.js +2 -0
- package/dist/command-spec.js.map +1 -0
- package/dist/commands/_load-openapi.d.ts +7 -0
- package/dist/commands/_load-openapi.d.ts.map +1 -0
- package/dist/commands/_load-openapi.js +15 -0
- package/dist/commands/_load-openapi.js.map +1 -0
- package/dist/commands/docs.d.ts +10 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +55 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/fn-schema-diff.d.ts +10 -0
- package/dist/commands/fn-schema-diff.d.ts.map +1 -0
- package/dist/commands/fn-schema-diff.js +46 -0
- package/dist/commands/fn-schema-diff.js.map +1 -0
- package/dist/commands/fn-schema-extract.d.ts +25 -0
- package/dist/commands/fn-schema-extract.d.ts.map +1 -0
- package/dist/commands/fn-schema-extract.js +189 -0
- package/dist/commands/fn-schema-extract.js.map +1 -0
- package/dist/commands/fn-schema-inspect.d.ts +16 -0
- package/dist/commands/fn-schema-inspect.d.ts.map +1 -0
- package/dist/commands/fn-schema-inspect.js +118 -0
- package/dist/commands/fn-schema-inspect.js.map +1 -0
- package/dist/commands/fn-schema-scan.d.ts +13 -0
- package/dist/commands/fn-schema-scan.d.ts.map +1 -0
- package/dist/commands/fn-schema-scan.js +92 -0
- package/dist/commands/fn-schema-scan.js.map +1 -0
- package/dist/commands/k6-bundle.d.ts +10 -0
- package/dist/commands/k6-bundle.d.ts.map +1 -0
- package/dist/commands/k6-bundle.js +38 -0
- package/dist/commands/k6-bundle.js.map +1 -0
- package/dist/commands/k6-sync.d.ts +14 -0
- package/dist/commands/k6-sync.d.ts.map +1 -0
- package/dist/commands/k6-sync.js +61 -0
- package/dist/commands/k6-sync.js.map +1 -0
- package/dist/commands/recon.d.ts +13 -0
- package/dist/commands/recon.d.ts.map +1 -0
- package/dist/commands/recon.js +62 -0
- package/dist/commands/recon.js.map +1 -0
- package/dist/commands/sdk-all.d.ts +11 -0
- package/dist/commands/sdk-all.d.ts.map +1 -0
- package/dist/commands/sdk-all.js +82 -0
- package/dist/commands/sdk-all.js.map +1 -0
- package/dist/commands/sdk-go.d.ts +13 -0
- package/dist/commands/sdk-go.d.ts.map +1 -0
- package/dist/commands/sdk-go.js +53 -0
- package/dist/commands/sdk-go.js.map +1 -0
- package/dist/commands/sdk-k6.d.ts +11 -0
- package/dist/commands/sdk-k6.d.ts.map +1 -0
- package/dist/commands/sdk-k6.js +40 -0
- package/dist/commands/sdk-k6.js.map +1 -0
- package/dist/commands/sdk-kotlin.d.ts +13 -0
- package/dist/commands/sdk-kotlin.d.ts.map +1 -0
- package/dist/commands/sdk-kotlin.js +54 -0
- package/dist/commands/sdk-kotlin.js.map +1 -0
- package/dist/commands/sdk-swift.d.ts +12 -0
- package/dist/commands/sdk-swift.d.ts.map +1 -0
- package/dist/commands/sdk-swift.js +49 -0
- package/dist/commands/sdk-swift.js.map +1 -0
- package/dist/commands/sdk-typescript.d.ts +9 -0
- package/dist/commands/sdk-typescript.d.ts.map +1 -0
- package/dist/commands/sdk-typescript.js +29 -0
- package/dist/commands/sdk-typescript.js.map +1 -0
- package/dist/commands/spec-convert.d.ts +11 -0
- package/dist/commands/spec-convert.d.ts.map +1 -0
- package/dist/commands/spec-convert.js +69 -0
- package/dist/commands/spec-convert.js.map +1 -0
- package/dist/commands/spec-diff.d.ts +10 -0
- package/dist/commands/spec-diff.d.ts.map +1 -0
- package/dist/commands/spec-diff.js +53 -0
- package/dist/commands/spec-diff.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime.d.ts +10 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +78 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema-args.d.ts +24 -0
- package/dist/schema-args.d.ts.map +1 -0
- package/dist/schema-args.js +130 -0
- package/dist/schema-args.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { runInspect } from "@ir-kit/fn-schema-core";
|
|
3
|
+
import { typescript } from "@ir-kit/fn-schema-typescript";
|
|
4
|
+
import consola from "consola";
|
|
5
|
+
const args = {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
name: { type: "string", description: "Function name to inspect" },
|
|
9
|
+
patterns: {
|
|
10
|
+
type: "string",
|
|
11
|
+
description: "Glob pattern(s) for source files",
|
|
12
|
+
},
|
|
13
|
+
cwd: { type: "string", description: "Working directory" },
|
|
14
|
+
tsconfig: { type: "string", description: "Path to tsconfig.json" },
|
|
15
|
+
params: {
|
|
16
|
+
type: "string",
|
|
17
|
+
description: "Parameter rendering",
|
|
18
|
+
enum: ["array", "first-only", "object"],
|
|
19
|
+
},
|
|
20
|
+
unwrapPromise: {
|
|
21
|
+
type: "boolean",
|
|
22
|
+
description: "Unwrap Promise<T> in return types",
|
|
23
|
+
},
|
|
24
|
+
identity: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Vendor keyword for originating TS type",
|
|
27
|
+
},
|
|
28
|
+
transport: {
|
|
29
|
+
type: "string",
|
|
30
|
+
description: "Vendor keyword for binary transport hints",
|
|
31
|
+
},
|
|
32
|
+
json: {
|
|
33
|
+
type: "boolean",
|
|
34
|
+
description: "Emit machine-readable JSON",
|
|
35
|
+
default: false,
|
|
36
|
+
},
|
|
37
|
+
quiet: {
|
|
38
|
+
type: "boolean",
|
|
39
|
+
description: "Suppress non-error logs",
|
|
40
|
+
default: false,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ["name"],
|
|
44
|
+
};
|
|
45
|
+
export const fnSchemaInspectCommand = {
|
|
46
|
+
path: ["fn-schema", "inspect"],
|
|
47
|
+
description: "Print the resolved input + output JSON Schema for a single function",
|
|
48
|
+
args,
|
|
49
|
+
handler: async (input) => {
|
|
50
|
+
if (input.quiet)
|
|
51
|
+
consola.level = 1;
|
|
52
|
+
const out = await runInspect({
|
|
53
|
+
name: input.name,
|
|
54
|
+
cwd: input.cwd,
|
|
55
|
+
patterns: input.patterns,
|
|
56
|
+
tsconfig: input.tsconfig,
|
|
57
|
+
params: input.params,
|
|
58
|
+
unwrapPromise: input.unwrapPromise,
|
|
59
|
+
identity: input.identity,
|
|
60
|
+
transport: input.transport,
|
|
61
|
+
extractors: [typescript()],
|
|
62
|
+
});
|
|
63
|
+
if (out.kind === "not-found") {
|
|
64
|
+
consola.error(`Function "${input.name}" not found.`);
|
|
65
|
+
process.exitCode = 1;
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (out.kind === "ambiguous") {
|
|
69
|
+
const cwd = path.resolve(input.cwd ?? process.cwd());
|
|
70
|
+
consola.error(`Function "${input.name}" matched ${out.matches.length} signatures. Narrow the patterns:`);
|
|
71
|
+
for (const m of out.matches) {
|
|
72
|
+
consola.error(` ${path.relative(cwd, m.file)}:${m.location.line}:${m.location.column}`);
|
|
73
|
+
}
|
|
74
|
+
process.exitCode = 1;
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (input.json) {
|
|
78
|
+
process.stdout.write(`${JSON.stringify({
|
|
79
|
+
signature: out.signature,
|
|
80
|
+
definitions: out.result.definitions,
|
|
81
|
+
diagnostics: out.result.diagnostics,
|
|
82
|
+
}, null, 2)}\n`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
renderInspect(out.signature, out.result, path.resolve(input.cwd ?? process.cwd()));
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
function renderInspect(sig, result, cwd) {
|
|
89
|
+
const rel = path.relative(cwd, sig.file);
|
|
90
|
+
process.stdout.write(`\n${sig.id} ${rel}:${sig.location.line}:${sig.location.column}\n`);
|
|
91
|
+
if (sig.jsDoc?.description) {
|
|
92
|
+
process.stdout.write(` ${sig.jsDoc.description}\n`);
|
|
93
|
+
}
|
|
94
|
+
process.stdout.write("\n input:\n");
|
|
95
|
+
process.stdout.write(indent(JSON.stringify(sig.input, null, 2), 4));
|
|
96
|
+
process.stdout.write("\n\n output:\n");
|
|
97
|
+
process.stdout.write(indent(JSON.stringify(sig.output, null, 2), 4));
|
|
98
|
+
if (Object.keys(result.definitions).length > 0) {
|
|
99
|
+
process.stdout.write("\n\n definitions:\n");
|
|
100
|
+
process.stdout.write(indent(JSON.stringify(result.definitions, null, 2), 4));
|
|
101
|
+
}
|
|
102
|
+
const fnDiags = result.diagnostics.filter((d) => d.function === sig.name);
|
|
103
|
+
if (fnDiags.length > 0) {
|
|
104
|
+
process.stdout.write("\n\n diagnostics:\n");
|
|
105
|
+
for (const d of fnDiags) {
|
|
106
|
+
process.stdout.write(` ${d.severity} ${d.code} ${d.message}\n`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
process.stdout.write("\n");
|
|
110
|
+
}
|
|
111
|
+
function indent(text, spaces) {
|
|
112
|
+
const pad = " ".repeat(spaces);
|
|
113
|
+
return text
|
|
114
|
+
.split("\n")
|
|
115
|
+
.map((line) => `${pad}${line}`)
|
|
116
|
+
.join("\n");
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=fn-schema-inspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fn-schema-inspect.js","sourceRoot":"","sources":["../../src/commands/fn-schema-inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CommandSpec } from "../command-spec.js";
|
|
2
|
+
interface Input {
|
|
3
|
+
patterns?: string;
|
|
4
|
+
cwd?: string;
|
|
5
|
+
tsconfig?: string;
|
|
6
|
+
includeTag?: string;
|
|
7
|
+
excludeName?: string;
|
|
8
|
+
json?: boolean;
|
|
9
|
+
quiet?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const fnSchemaScanCommand: CommandSpec<Input, void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=fn-schema-scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fn-schema-scan.d.ts","sourceRoot":"","sources":["../../src/commands/fn-schema-scan.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAgCD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAiCxD,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { runScan } from "@ir-kit/fn-schema-core";
|
|
3
|
+
import { typescript } from "@ir-kit/fn-schema-typescript";
|
|
4
|
+
import consola from "consola";
|
|
5
|
+
const args = {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
patterns: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "Glob pattern(s) for source files",
|
|
11
|
+
},
|
|
12
|
+
cwd: { type: "string", description: "Working directory" },
|
|
13
|
+
tsconfig: { type: "string", description: "Path to tsconfig.json" },
|
|
14
|
+
includeTag: {
|
|
15
|
+
type: "string",
|
|
16
|
+
description: "Only include functions carrying this JSDoc tag",
|
|
17
|
+
},
|
|
18
|
+
excludeName: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "Exclude functions whose name matches this regex",
|
|
21
|
+
},
|
|
22
|
+
json: {
|
|
23
|
+
type: "boolean",
|
|
24
|
+
description: "Emit machine-readable JSON instead of a human table",
|
|
25
|
+
default: false,
|
|
26
|
+
},
|
|
27
|
+
quiet: {
|
|
28
|
+
type: "boolean",
|
|
29
|
+
description: "Suppress non-error logs",
|
|
30
|
+
default: false,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
export const fnSchemaScanCommand = {
|
|
35
|
+
path: ["fn-schema", "scan"],
|
|
36
|
+
description: "List functions discoverable in source — no schemas generated",
|
|
37
|
+
args,
|
|
38
|
+
handler: async (input) => {
|
|
39
|
+
if (input.quiet)
|
|
40
|
+
consola.level = 1;
|
|
41
|
+
const out = await runScan({
|
|
42
|
+
cwd: input.cwd,
|
|
43
|
+
patterns: input.patterns,
|
|
44
|
+
tsconfig: input.tsconfig,
|
|
45
|
+
includeTag: input.includeTag,
|
|
46
|
+
excludeName: input.excludeName,
|
|
47
|
+
extractors: [typescript()],
|
|
48
|
+
});
|
|
49
|
+
if (!out.ok) {
|
|
50
|
+
consola.warn("No files matched.");
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (input.json) {
|
|
54
|
+
process.stdout.write(`${JSON.stringify(out.result, null, 2)}\n`);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
renderTable(out.result.signatures, path.resolve(input.cwd ?? process.cwd()));
|
|
58
|
+
consola.box(`${out.result.signatures.length} fn(s) across ${out.filesScanned} file(s) in ${out.durationMs}ms` +
|
|
59
|
+
(out.errors + out.warnings > 0
|
|
60
|
+
? ` — ${out.errors} error(s), ${out.warnings} warning(s)`
|
|
61
|
+
: ""));
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
function renderTable(signatures, cwd) {
|
|
65
|
+
const byFile = new Map();
|
|
66
|
+
for (const sig of signatures) {
|
|
67
|
+
const list = byFile.get(sig.file) ?? [];
|
|
68
|
+
list.push(sig);
|
|
69
|
+
byFile.set(sig.file, list);
|
|
70
|
+
}
|
|
71
|
+
for (const [file, list] of byFile) {
|
|
72
|
+
process.stdout.write(`\n${path.relative(cwd, file)}\n`);
|
|
73
|
+
for (const sig of list) {
|
|
74
|
+
const flags = [
|
|
75
|
+
sig.exported ? "exported" : "",
|
|
76
|
+
sig.async ? "async" : "",
|
|
77
|
+
sig.generic ? "generic" : "",
|
|
78
|
+
sig.kind !== "function" ? sig.kind : "",
|
|
79
|
+
sig.className ? `class:${sig.className}` : "",
|
|
80
|
+
]
|
|
81
|
+
.filter(Boolean)
|
|
82
|
+
.join(" ");
|
|
83
|
+
const tag = sig.jsDoc?.tags
|
|
84
|
+
? Object.entries(sig.jsDoc.tags)
|
|
85
|
+
.map(([k, v]) => `@${k}${typeof v === "string" ? ` ${v}` : ""}`)
|
|
86
|
+
.join(" ")
|
|
87
|
+
: "";
|
|
88
|
+
process.stdout.write(` ${sig.name.padEnd(24)} ${`${sig.location.line}:${sig.location.column}`.padEnd(8)} ${flags}${tag ? ` ${tag}` : ""}\n`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=fn-schema-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fn-schema-scan.js","sourceRoot":"","sources":["../../src/commands/fn-schema-scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CommandSpec } from "../command-spec.js";
|
|
2
|
+
interface Input {
|
|
3
|
+
input: string;
|
|
4
|
+
output?: string;
|
|
5
|
+
minify?: boolean;
|
|
6
|
+
sourcemap?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const k6BundleCommand: CommandSpec<Input, void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=k6-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k6-bundle.d.ts","sourceRoot":"","sources":["../../src/commands/k6-bundle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAwBD,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAapD,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { bundle } from "@ir-kit/k6-toolkit";
|
|
2
|
+
import consola from "consola";
|
|
3
|
+
const args = {
|
|
4
|
+
type: "object",
|
|
5
|
+
properties: {
|
|
6
|
+
input: { type: "string", description: "Entry .ts file" },
|
|
7
|
+
output: {
|
|
8
|
+
type: "string",
|
|
9
|
+
description: "Output .js path (default: alongside input)",
|
|
10
|
+
},
|
|
11
|
+
minify: {
|
|
12
|
+
type: "boolean",
|
|
13
|
+
description: "Minify the bundle",
|
|
14
|
+
default: false,
|
|
15
|
+
},
|
|
16
|
+
sourcemap: {
|
|
17
|
+
type: "boolean",
|
|
18
|
+
description: "Emit a sourcemap alongside the bundle",
|
|
19
|
+
default: false,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
required: ["input"],
|
|
23
|
+
};
|
|
24
|
+
export const k6BundleCommand = {
|
|
25
|
+
path: ["k6", "bundle"],
|
|
26
|
+
description: "Bundle a TypeScript k6 loadtest to a single .js (tsdown)",
|
|
27
|
+
args,
|
|
28
|
+
handler: async (input) => {
|
|
29
|
+
const result = await bundle({
|
|
30
|
+
entry: input.input,
|
|
31
|
+
...(input.output ? { outFile: input.output } : {}),
|
|
32
|
+
minify: input.minify,
|
|
33
|
+
sourcemap: input.sourcemap,
|
|
34
|
+
});
|
|
35
|
+
consola.success(`Bundled to ${result.outfile}`);
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=k6-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k6-bundle.js","sourceRoot":"","sources":["../../src/commands/k6-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,OAAO,MAAM,SAAS,CAAC;AAW9B,MAAM,IAAI,GAAW;IACnB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;QACxD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4CAA4C;SAC1D;QACD,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,KAAK;SACf;QACD,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,uCAAuC;YACpD,OAAO,EAAE,KAAK;SACf;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtB,WAAW,EAAE,0DAA0D;IACvE,IAAI;IACJ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;SACK,CAAC,CAAC;QACnC,OAAO,CAAC,OAAO,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CommandSpec } from "../command-spec.js";
|
|
2
|
+
interface Input {
|
|
3
|
+
input: string;
|
|
4
|
+
output: string;
|
|
5
|
+
normalize?: boolean;
|
|
6
|
+
defaultBaseUrl?: string;
|
|
7
|
+
scaffold?: boolean;
|
|
8
|
+
dryRun?: boolean;
|
|
9
|
+
reportRenames?: boolean;
|
|
10
|
+
cwd?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const k6SyncCommand: CommandSpec<Input, void>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=k6-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k6-sync.d.ts","sourceRoot":"","sources":["../../src/commands/k6-sync.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAuCD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CA4BlD,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { sync } from "@ir-kit/k6-toolkit";
|
|
2
|
+
import consola from "consola";
|
|
3
|
+
const args = {
|
|
4
|
+
type: "object",
|
|
5
|
+
properties: {
|
|
6
|
+
input: { type: "string", description: "OpenAPI spec path or URL" },
|
|
7
|
+
output: {
|
|
8
|
+
type: "string",
|
|
9
|
+
description: "Output directory for the generated k6 client",
|
|
10
|
+
},
|
|
11
|
+
normalize: {
|
|
12
|
+
type: "boolean",
|
|
13
|
+
description: "Apply spec normalization",
|
|
14
|
+
default: false,
|
|
15
|
+
},
|
|
16
|
+
defaultBaseUrl: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "Default base URL (falls back to spec.servers[0].url)",
|
|
19
|
+
},
|
|
20
|
+
scaffold: {
|
|
21
|
+
type: "boolean",
|
|
22
|
+
description: "Also emit per-operation loadtest stubs",
|
|
23
|
+
default: false,
|
|
24
|
+
},
|
|
25
|
+
dryRun: {
|
|
26
|
+
type: "boolean",
|
|
27
|
+
description: "Don't write to disk — just return what would be written",
|
|
28
|
+
default: false,
|
|
29
|
+
},
|
|
30
|
+
reportRenames: {
|
|
31
|
+
type: "boolean",
|
|
32
|
+
description: "Diff operationIds against the prior sync's snapshot",
|
|
33
|
+
default: false,
|
|
34
|
+
},
|
|
35
|
+
cwd: { type: "string", description: "Working directory" },
|
|
36
|
+
},
|
|
37
|
+
required: ["input", "output"],
|
|
38
|
+
};
|
|
39
|
+
export const k6SyncCommand = {
|
|
40
|
+
path: ["k6", "sync"],
|
|
41
|
+
description: "Generate a typed k6 client + snapshot diff from an OpenAPI spec",
|
|
42
|
+
args,
|
|
43
|
+
handler: async (input) => {
|
|
44
|
+
const result = await sync({
|
|
45
|
+
input: input.input,
|
|
46
|
+
output: input.output,
|
|
47
|
+
cwd: input.cwd,
|
|
48
|
+
normalize: input.normalize,
|
|
49
|
+
defaultBaseUrl: input.defaultBaseUrl,
|
|
50
|
+
scaffold: input.scaffold,
|
|
51
|
+
dryRun: input.dryRun,
|
|
52
|
+
reportRenames: input.reportRenames,
|
|
53
|
+
});
|
|
54
|
+
consola.success(`Synced ${result.files.length} file(s) to ${result.output}`);
|
|
55
|
+
if (result.diff &&
|
|
56
|
+
(result.diff.added.length || result.diff.removed.length)) {
|
|
57
|
+
consola.box(`Renames detected — ${result.diff.added.length} added, ${result.diff.removed.length} removed`);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=k6-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k6-sync.js","sourceRoot":"","sources":["../../src/commands/k6-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,OAAO,MAAM,SAAS,CAAC;AAe9B,MAAM,IAAI,GAAW;IACnB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAClE,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8CAA8C;SAC5D;QACD,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,0BAA0B;YACvC,OAAO,EAAE,KAAK;SACf;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sDAAsD;SACpE;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,wCAAwC;YACrD,OAAO,EAAE,KAAK;SACf;QACD,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,yDAAyD;YACtE,OAAO,EAAE,KAAK;SACf;QACD,aAAa,EAAE;YACb,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,qDAAqD;YAClE,OAAO,EAAE,KAAK;SACf;QACD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;KAC1D;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA6B;IACrD,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;IACpB,WAAW,EACT,iEAAiE;IACnE,IAAI;IACJ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CACb,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,eAAe,MAAM,CAAC,MAAM,EAAE,CAC5D,CAAC;QACF,IACE,MAAM,CAAC,IAAI;YACX,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EACxD,CAAC;YACD,OAAO,CAAC,GAAG,CACT,sBAAsB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,WAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,UAAU,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CommandSpec } from "../command-spec.js";
|
|
2
|
+
interface Input {
|
|
3
|
+
input: string;
|
|
4
|
+
out?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
origin?: string;
|
|
8
|
+
maxExamples?: string;
|
|
9
|
+
pathTemplating?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const reconCommand: CommandSpec<Input, void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=recon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recon.d.ts","sourceRoot":"","sources":["../../src/commands/recon.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA8BD,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAwBjD,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { fromHAR } from "@ir-kit/openapi-recon";
|
|
3
|
+
const args = {
|
|
4
|
+
type: "object",
|
|
5
|
+
properties: {
|
|
6
|
+
input: {
|
|
7
|
+
type: "string",
|
|
8
|
+
description: "HAR file path (or `-` for stdin)",
|
|
9
|
+
},
|
|
10
|
+
out: { type: "string", description: "Write to file (default: stdout)" },
|
|
11
|
+
title: { type: "string", description: "Document title" },
|
|
12
|
+
version: { type: "string", description: "Document version" },
|
|
13
|
+
origin: {
|
|
14
|
+
type: "string",
|
|
15
|
+
description: "Restrict to a single origin (e.g. https://api.example.com)",
|
|
16
|
+
},
|
|
17
|
+
maxExamples: {
|
|
18
|
+
type: "string",
|
|
19
|
+
description: "Max example payloads kept per shape",
|
|
20
|
+
default: "3",
|
|
21
|
+
},
|
|
22
|
+
pathTemplating: {
|
|
23
|
+
type: "boolean",
|
|
24
|
+
description: "Auto-detect path templates from observed URLs",
|
|
25
|
+
default: true,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
required: ["input"],
|
|
29
|
+
};
|
|
30
|
+
export const reconCommand = {
|
|
31
|
+
path: ["recon"],
|
|
32
|
+
description: "Reverse-engineer an OpenAPI 3.1 spec from a HAR capture of observed HTTP traffic",
|
|
33
|
+
args,
|
|
34
|
+
handler: async (input) => {
|
|
35
|
+
const harText = await readInput(input.input);
|
|
36
|
+
const recon = await fromHAR(harText, {
|
|
37
|
+
title: input.title,
|
|
38
|
+
version: input.version,
|
|
39
|
+
maxExamples: input.maxExamples !== undefined ? Number(input.maxExamples) : undefined,
|
|
40
|
+
pathTemplating: input.pathTemplating !== false,
|
|
41
|
+
});
|
|
42
|
+
const spec = recon.toOpenAPI(input.origin ? { origin: input.origin } : undefined);
|
|
43
|
+
const json = `${JSON.stringify(spec, null, 2)}\n`;
|
|
44
|
+
if (input.out) {
|
|
45
|
+
await writeFile(input.out, json, "utf8");
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
process.stdout.write(json);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
async function readInput(source) {
|
|
53
|
+
if (source === "-") {
|
|
54
|
+
const chunks = [];
|
|
55
|
+
for await (const chunk of process.stdin) {
|
|
56
|
+
chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
|
|
57
|
+
}
|
|
58
|
+
return Buffer.concat(chunks).toString("utf8");
|
|
59
|
+
}
|
|
60
|
+
return readFile(source, "utf8");
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=recon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recon.js","sourceRoot":"","sources":["../../src/commands/recon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAehD,MAAM,IAAI,GAAW;IACnB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kCAAkC;SAChD;QACD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;QACvE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;QACxD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAC5D,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4DAA4D;SAC1E;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qCAAqC;YAClD,OAAO,EAAE,GAAG;SACb;QACD,cAAc,EAAE;YACd,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,IAAI;SACd;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,WAAW,EACT,kFAAkF;IACpF,IAAI;IACJ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE;YACnC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EACT,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YACzE,cAAc,EAAE,KAAK,CAAC,cAAc,KAAK,KAAK;SAC/C,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAC1B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CACpD,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QAClD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CACF,CAAC;AAEF,KAAK,UAAU,SAAS,CAAC,MAAc;IACrC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CommandSpec } from "../command-spec.js";
|
|
2
|
+
interface Input {
|
|
3
|
+
input: string;
|
|
4
|
+
output: string;
|
|
5
|
+
targets?: string;
|
|
6
|
+
clean?: boolean;
|
|
7
|
+
normalize?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const sdkAllCommand: CommandSpec<Input, void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=sdk-all.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-all.d.ts","sourceRoot":"","sources":["../../src/commands/sdk-all.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKtD,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAgCD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CA4ClD,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { generate as generateK6 } from "@ir-kit/k6-gen";
|
|
3
|
+
import { generate as generateGo } from "@ir-kit/openapi-go";
|
|
4
|
+
import { generate as generateKotlin } from "@ir-kit/openapi-kotlin";
|
|
5
|
+
import { generate as generateSwift } from "@ir-kit/openapi-swift";
|
|
6
|
+
import { generate as generateTypescript } from "@ir-kit/openapi-typescript";
|
|
7
|
+
const TARGETS = ["go", "kotlin", "swift", "typescript", "k6"];
|
|
8
|
+
const args = {
|
|
9
|
+
type: "object",
|
|
10
|
+
properties: {
|
|
11
|
+
input: {
|
|
12
|
+
type: "string",
|
|
13
|
+
description: "OpenAPI spec path, URL, or .tsp file",
|
|
14
|
+
},
|
|
15
|
+
output: {
|
|
16
|
+
type: "string",
|
|
17
|
+
description: "Root output directory (per-target subdirs created)",
|
|
18
|
+
},
|
|
19
|
+
targets: {
|
|
20
|
+
type: "string",
|
|
21
|
+
description: `Comma-separated targets (default: all). Available: ${TARGETS.join(", ")}`,
|
|
22
|
+
default: TARGETS.join(","),
|
|
23
|
+
},
|
|
24
|
+
clean: {
|
|
25
|
+
type: "boolean",
|
|
26
|
+
description: "Wipe each target dir before writing",
|
|
27
|
+
default: true,
|
|
28
|
+
},
|
|
29
|
+
normalize: {
|
|
30
|
+
type: "boolean",
|
|
31
|
+
description: "Apply spec normalization",
|
|
32
|
+
default: false,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
required: ["input", "output"],
|
|
36
|
+
};
|
|
37
|
+
export const sdkAllCommand = {
|
|
38
|
+
path: ["sdk", "all"],
|
|
39
|
+
description: "Generate SDKs for multiple targets in one pass",
|
|
40
|
+
args,
|
|
41
|
+
handler: async (input) => {
|
|
42
|
+
const requested = (input.targets ?? TARGETS.join(","))
|
|
43
|
+
.split(",")
|
|
44
|
+
.map((t) => t.trim())
|
|
45
|
+
.filter(Boolean);
|
|
46
|
+
for (const t of requested) {
|
|
47
|
+
if (!TARGETS.includes(t)) {
|
|
48
|
+
throw new Error(`Unknown target: ${t}. Available: ${TARGETS.join(", ")}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const targets = requested;
|
|
52
|
+
for (const target of targets) {
|
|
53
|
+
const out = join(input.output, target);
|
|
54
|
+
const common = {
|
|
55
|
+
input: input.input,
|
|
56
|
+
output: out,
|
|
57
|
+
clean: input.clean,
|
|
58
|
+
normalize: input.normalize,
|
|
59
|
+
};
|
|
60
|
+
if (target === "go")
|
|
61
|
+
await generateGo(common);
|
|
62
|
+
else if (target === "kotlin")
|
|
63
|
+
await generateKotlin(common);
|
|
64
|
+
else if (target === "swift")
|
|
65
|
+
await generateSwift(common);
|
|
66
|
+
else if (target === "typescript")
|
|
67
|
+
await generateTypescript({
|
|
68
|
+
input: input.input,
|
|
69
|
+
output: out,
|
|
70
|
+
normalize: input.normalize,
|
|
71
|
+
});
|
|
72
|
+
else if (target === "k6")
|
|
73
|
+
await generateK6({
|
|
74
|
+
input: input.input,
|
|
75
|
+
output: out,
|
|
76
|
+
normalize: input.normalize,
|
|
77
|
+
});
|
|
78
|
+
process.stdout.write(`✓ ${target} → ${out}\n`);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=sdk-all.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-all.js","sourceRoot":"","sources":["../../src/commands/sdk-all.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CommandSpec } from "../command-spec.js";
|
|
2
|
+
interface Input {
|
|
3
|
+
input: string;
|
|
4
|
+
output: string;
|
|
5
|
+
clean?: boolean;
|
|
6
|
+
normalize?: boolean;
|
|
7
|
+
gomod?: string;
|
|
8
|
+
packageName?: string;
|
|
9
|
+
defaultTag?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const sdkGoCommand: CommandSpec<Input, void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=sdk-go.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-go.d.ts","sourceRoot":"","sources":["../../src/commands/sdk-go.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoCD,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAgBjD,CAAC"}
|