@openfn/cli 0.0.22 → 0.0.24
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/index.js +12 -5
- package/dist/process/runner.js +53 -14
- package/package.json +6 -5
package/dist/index.js
CHANGED
|
@@ -8,8 +8,7 @@ import process2 from "node:process";
|
|
|
8
8
|
function spawn_default(basePath, opts2) {
|
|
9
9
|
const execArgv = [
|
|
10
10
|
"--no-warnings",
|
|
11
|
-
"--experimental-vm-modules"
|
|
12
|
-
"--experimental-specifier-resolution=node"
|
|
11
|
+
"--experimental-vm-modules"
|
|
13
12
|
];
|
|
14
13
|
const dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
15
14
|
const child = fork(`${dirname}/process/runner.js`, [], { execArgv });
|
|
@@ -106,6 +105,9 @@ var executeCommand = {
|
|
|
106
105
|
}).option("state-stdin", {
|
|
107
106
|
alias: "S",
|
|
108
107
|
description: "Read state from stdin (instead of a file)"
|
|
108
|
+
}).option("timeout", {
|
|
109
|
+
alias: "-t",
|
|
110
|
+
description: "Set the timeout duration in MS"
|
|
109
111
|
}).option("no-compile", {
|
|
110
112
|
boolean: true,
|
|
111
113
|
description: "Skip compilation"
|
|
@@ -179,7 +181,7 @@ var command_default3 = {
|
|
|
179
181
|
// src/docgen/command.ts
|
|
180
182
|
var docgenCommand = {
|
|
181
183
|
command: "docgen <specifier>",
|
|
182
|
-
desc:
|
|
184
|
+
desc: false,
|
|
183
185
|
handler: (argv) => {
|
|
184
186
|
argv.command = "docgen";
|
|
185
187
|
},
|
|
@@ -191,7 +193,7 @@ var command_default4 = docgenCommand;
|
|
|
191
193
|
|
|
192
194
|
// src/docs/command.ts
|
|
193
195
|
var command_default5 = {
|
|
194
|
-
command: "docs
|
|
196
|
+
command: "docs <adaptor> [operation]",
|
|
195
197
|
desc: "Print help for an adaptor function. You can use short-hand for adaptor names (ie, common instead of @openfn/language-common)",
|
|
196
198
|
handler: (argv) => {
|
|
197
199
|
argv.command = "docs";
|
|
@@ -207,7 +209,12 @@ var cmd = yargs(hideBin(process.argv)).command(command_default).command(command_
|
|
|
207
209
|
}).example("openfn execute help", "Show documentation for the execute command").example(
|
|
208
210
|
"openfn docs @openfn/language-common each",
|
|
209
211
|
"Get more help on the common.each command"
|
|
210
|
-
).
|
|
212
|
+
).command({
|
|
213
|
+
command: "version",
|
|
214
|
+
handler: (argv) => {
|
|
215
|
+
argv.command = "version";
|
|
216
|
+
}
|
|
217
|
+
}).help();
|
|
211
218
|
|
|
212
219
|
// src/index.ts
|
|
213
220
|
var opts = cmd.parse();
|
package/dist/process/runner.js
CHANGED
|
@@ -39,6 +39,9 @@ var componentShorthands = {
|
|
|
39
39
|
var isValidComponent = (v) => /^(cli|runtime|compiler|job|default)$/i.test(v);
|
|
40
40
|
var ensureLogOpts = (opts) => {
|
|
41
41
|
const components = {};
|
|
42
|
+
if (opts.command === "version" || opts.command === "test" && !opts.log) {
|
|
43
|
+
return { default: "info" };
|
|
44
|
+
}
|
|
42
45
|
if (opts.log) {
|
|
43
46
|
opts.log.forEach((l) => {
|
|
44
47
|
let component = "";
|
|
@@ -83,6 +86,7 @@ function ensureOpts(basePath = ".", opts) {
|
|
|
83
86
|
operation: opts.operation,
|
|
84
87
|
packages: opts.packages,
|
|
85
88
|
stateStdin: opts.stateStdin,
|
|
89
|
+
timeout: opts.timeout,
|
|
86
90
|
specifier: opts.specifier,
|
|
87
91
|
strictOutput: opts.strictOutput ?? true,
|
|
88
92
|
immutable: opts.immutable || false
|
|
@@ -146,6 +150,7 @@ var load_state_default = async (opts, log) => {
|
|
|
146
150
|
import run, { getNameAndVersion } from "@openfn/runtime";
|
|
147
151
|
var execute_default = (code, state, opts) => {
|
|
148
152
|
return run(code, state, {
|
|
153
|
+
timeout: opts.timeout,
|
|
149
154
|
immutableState: opts.immutable,
|
|
150
155
|
logger: logger_default(RUNTIME, opts),
|
|
151
156
|
jobLogger: logger_default(JOB, opts),
|
|
@@ -216,11 +221,10 @@ var resolveSpecifierPath = async (pattern, repoDir, log) => {
|
|
|
216
221
|
return null;
|
|
217
222
|
};
|
|
218
223
|
var loadTransformOptions = async (opts, log) => {
|
|
219
|
-
var _a;
|
|
220
224
|
const options = {
|
|
221
225
|
logger: log
|
|
222
226
|
};
|
|
223
|
-
if (
|
|
227
|
+
if (opts.adaptors?.length) {
|
|
224
228
|
let exports;
|
|
225
229
|
const [pattern] = opts.adaptors;
|
|
226
230
|
const [specifier] = pattern.split("=");
|
|
@@ -290,7 +294,7 @@ import { install as rtInstall, loadRepoPkg } from "@openfn/runtime";
|
|
|
290
294
|
|
|
291
295
|
// src/util/expand-adaptors.ts
|
|
292
296
|
var nullLogger = createNullLogger();
|
|
293
|
-
var expand_adaptors_default = (names, log = nullLogger) => names
|
|
297
|
+
var expand_adaptors_default = (names, log = nullLogger) => names?.map((name) => {
|
|
294
298
|
if (name.startsWith("@openfn/language-")) {
|
|
295
299
|
return name;
|
|
296
300
|
}
|
|
@@ -368,9 +372,8 @@ var list = async (options, logger) => {
|
|
|
368
372
|
|
|
369
373
|
// src/execute/handler.ts
|
|
370
374
|
var getAutoinstallTargets = (options) => {
|
|
371
|
-
var _a;
|
|
372
375
|
if (options.autoinstall && options.adaptors) {
|
|
373
|
-
return
|
|
376
|
+
return options.adaptors?.filter((a) => !/=/.test(a));
|
|
374
377
|
}
|
|
375
378
|
return [];
|
|
376
379
|
};
|
|
@@ -531,13 +534,19 @@ var handler_default4 = docgenHandler;
|
|
|
531
534
|
// src/docs/handler.ts
|
|
532
535
|
import { readFile } from "node:fs/promises";
|
|
533
536
|
import { getNameAndVersion as getNameAndVersion3, getLatestVersion } from "@openfn/runtime";
|
|
534
|
-
var
|
|
537
|
+
var describeFn = (adaptorName, fn) => `## ${fn.name}(${fn.parameters.map(({ name }) => name).join(",")})
|
|
535
538
|
|
|
536
539
|
${fn.description}
|
|
537
540
|
|
|
538
541
|
### Usage Examples
|
|
539
542
|
|
|
540
|
-
${fn.examples.length ? fn.examples.map((
|
|
543
|
+
${fn.examples.length ? fn.examples.map(({ code, caption }) => {
|
|
544
|
+
if (caption) {
|
|
545
|
+
return `${caption}:
|
|
546
|
+
${code}`;
|
|
547
|
+
}
|
|
548
|
+
return code;
|
|
549
|
+
}).join("\n\n") : "None"}
|
|
541
550
|
|
|
542
551
|
### API Reference
|
|
543
552
|
|
|
@@ -546,13 +555,17 @@ https://docs.openfn.org/adaptors/packages/${adaptorName.replace(
|
|
|
546
555
|
""
|
|
547
556
|
)}-docs#${fn.name}
|
|
548
557
|
`;
|
|
558
|
+
var describeLib = (adaptorName, data) => `## ${adaptorName} ${data.version}
|
|
559
|
+
|
|
560
|
+
${data.functions.map((fn) => ` ${fn.name}(${fn.parameters.map((p) => p.name).join(", ")})`).sort().join("\n")}
|
|
561
|
+
`;
|
|
549
562
|
var docsHandler = async (options, logger) => {
|
|
550
563
|
const { adaptor, operation, repoDir } = options;
|
|
551
564
|
const [adaptorName] = expand_adaptors_default([adaptor], logger);
|
|
552
565
|
let { name, version } = getNameAndVersion3(adaptorName);
|
|
553
566
|
if (!version) {
|
|
554
567
|
logger.info("No version number provided, looking for latest...");
|
|
555
|
-
version = await getLatestVersion(
|
|
568
|
+
version = await getLatestVersion(name);
|
|
556
569
|
logger.info("Found ", version);
|
|
557
570
|
logger.success(`Showing docs for ${adaptorName} v${version}`);
|
|
558
571
|
}
|
|
@@ -567,11 +580,17 @@ var docsHandler = async (options, logger) => {
|
|
|
567
580
|
if (path3) {
|
|
568
581
|
const source = await readFile(path3, "utf8");
|
|
569
582
|
const data = JSON.parse(source);
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
583
|
+
let desc;
|
|
584
|
+
if (operation) {
|
|
585
|
+
const fn = data.functions.find(({ name: name2 }) => name2 === operation);
|
|
586
|
+
logger.debug("Operation schema:", fn);
|
|
587
|
+
logger.success(`Documentation for ${name}.${operation} v${version}:
|
|
573
588
|
`);
|
|
574
|
-
|
|
589
|
+
desc = describeFn(name, fn);
|
|
590
|
+
} else {
|
|
591
|
+
logger.debug("No operation provided, listing available operations");
|
|
592
|
+
desc = describeLib(name, data);
|
|
593
|
+
}
|
|
575
594
|
logger.print(desc);
|
|
576
595
|
logger.success("Done!");
|
|
577
596
|
} else {
|
|
@@ -580,6 +599,22 @@ var docsHandler = async (options, logger) => {
|
|
|
580
599
|
};
|
|
581
600
|
var handler_default5 = docsHandler;
|
|
582
601
|
|
|
602
|
+
// src/util/print-versions.ts
|
|
603
|
+
import { mainSymbols } from "figures";
|
|
604
|
+
var { triangleRightSmall: t } = mainSymbols;
|
|
605
|
+
var printVersions = async (logger) => {
|
|
606
|
+
const pkg = await import("../../package.json", { assert: { type: "json" } });
|
|
607
|
+
const { version, dependencies } = pkg.default;
|
|
608
|
+
const compilerVersion = dependencies["@openfn/compiler"];
|
|
609
|
+
const runtimeVersion = dependencies["@openfn/runtime"];
|
|
610
|
+
logger.info(`Versions:
|
|
611
|
+
${t} Node.js ${process.version.substring(1)}
|
|
612
|
+
${t} cli ${version}
|
|
613
|
+
${t} runtime ${runtimeVersion}
|
|
614
|
+
${t} compiler ${compilerVersion}`);
|
|
615
|
+
};
|
|
616
|
+
var print_versions_default = printVersions;
|
|
617
|
+
|
|
583
618
|
// src/commands.ts
|
|
584
619
|
var handlers = {
|
|
585
620
|
execute: handler_default,
|
|
@@ -590,15 +625,19 @@ var handlers = {
|
|
|
590
625
|
["repo-clean"]: clean,
|
|
591
626
|
["repo-install"]: install,
|
|
592
627
|
["repo-pwd"]: pwd,
|
|
593
|
-
["repo-list"]: list
|
|
628
|
+
["repo-list"]: list,
|
|
629
|
+
version: async (_opts, logger) => print_versions_default(logger)
|
|
594
630
|
};
|
|
595
631
|
var parse = async (basePath, options, log) => {
|
|
596
632
|
const opts = ensureOpts(basePath, options);
|
|
597
633
|
const logger = log || logger_default(CLI, opts);
|
|
634
|
+
if (opts.command === "execute" || opts.command === "test") {
|
|
635
|
+
await print_versions_default(logger);
|
|
636
|
+
}
|
|
598
637
|
if (opts.adaptors && opts.expand) {
|
|
599
638
|
opts.adaptors = expand_adaptors_default(opts.adaptors, logger);
|
|
600
639
|
}
|
|
601
|
-
if (opts.command
|
|
640
|
+
if (/^(test|version)$/.test(opts.command) && !opts.repoDir) {
|
|
602
641
|
logger.warn(
|
|
603
642
|
"WARNING: no repo module dir found! Using the default (/tmp/repo)"
|
|
604
643
|
);
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfn/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.24",
|
|
4
4
|
"description": "CLI devtools for the openfn toolchain.",
|
|
5
5
|
"engines": {
|
|
6
|
-
"node": ">=
|
|
6
|
+
"node": ">=18",
|
|
7
7
|
"pnpm": ">=7"
|
|
8
8
|
},
|
|
9
9
|
"exports": {
|
|
@@ -36,11 +36,12 @@
|
|
|
36
36
|
"typescript": "^4.7.4"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@openfn/compiler": "0.0.
|
|
40
|
-
"@openfn/describe-package": "0.0.
|
|
39
|
+
"@openfn/compiler": "0.0.22",
|
|
40
|
+
"@openfn/describe-package": "0.0.14",
|
|
41
41
|
"@openfn/logger": "0.0.8",
|
|
42
|
-
"@openfn/runtime": "0.0.
|
|
42
|
+
"@openfn/runtime": "0.0.14",
|
|
43
43
|
"fast-safe-stringify": "^2.1.1",
|
|
44
|
+
"figures": "^5.0.0",
|
|
44
45
|
"rimraf": "^3.0.2",
|
|
45
46
|
"treeify": "^1.1.0",
|
|
46
47
|
"yargs": "^17.5.1"
|