@flow-as-code/cli 0.1.0 → 0.1.1
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/bin.js +7 -1
- package/dist/bin.js.map +1 -1
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +5 -2
- package/dist/export.js.map +1 -1
- package/dist/synth.d.ts +16 -2
- package/dist/synth.d.ts.map +1 -1
- package/dist/synth.js +20 -3
- package/dist/synth.js.map +1 -1
- package/dist/version.d.ts +11 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +84 -0
- package/dist/version.js.map +1 -0
- package/package.json +5 -5
- package/src/bin.ts +7 -1
- package/src/export.ts +5 -2
- package/src/synth.ts +21 -3
- package/src/version.ts +89 -0
package/dist/bin.js
CHANGED
|
@@ -18,11 +18,17 @@ import { action, usageErrorsExit } from "./run.js";
|
|
|
18
18
|
import { runSimulate } from "./simulate.js";
|
|
19
19
|
import { studioCommand } from "./studio.js";
|
|
20
20
|
import { synthToFiles } from "./synth.js";
|
|
21
|
+
import { cliVersion } from "./version.js";
|
|
21
22
|
const program = new Command();
|
|
22
23
|
program
|
|
23
24
|
.name("flow-cli")
|
|
24
25
|
.description("Typed, IaC-native tooling for Amazon Connect flows")
|
|
25
|
-
|
|
26
|
+
// Commander wants the string when the option is registered, so this one call
|
|
27
|
+
// does run while the module loads. That is fine here and nowhere else: this
|
|
28
|
+
// file is the bin, it is not in package.json "exports", and reaching it means
|
|
29
|
+
// the process is already the CLI. The library entries stay import-inert; see
|
|
30
|
+
// ./version.ts.
|
|
31
|
+
.version(cliVersion());
|
|
26
32
|
program
|
|
27
33
|
.command("lint")
|
|
28
34
|
.description(`Check every FlowDoc in a directory (or one file) against the ${PACKAGE_NAMES.core} rule set. ` +
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;GAGG;AACH,+EAA+E;AAC/E,gFAAgF;AAChF,iEAAiE;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/export.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,aAAa,EAAgB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EAAE,KAAK,WAAW,EAAiC,MAAM,UAAU,CAAC;AAK3E,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,oCAAoC;AACpC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAyBD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,WAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,aAAa,EAAgB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EAAE,KAAK,WAAW,EAAiC,MAAM,UAAU,CAAC;AAK3E,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,oCAAoC;AACpC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAyBD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,WAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CA6ExB"}
|
package/dist/export.js
CHANGED
|
@@ -29,7 +29,7 @@ import { codegen, collectInventory, exportInstance, serialize } from "@flow-as-c
|
|
|
29
29
|
import { parseInstanceArn, SDK_CLIENTS } from "./aws.js";
|
|
30
30
|
import { FLOWDOC_SUFFIX } from "./docs.js";
|
|
31
31
|
import { CliError, messageOf } from "./errors.js";
|
|
32
|
-
import {
|
|
32
|
+
import { generator, sha256Hex } from "./synth.js";
|
|
33
33
|
export const TS_SUFFIX = ".flow.ts";
|
|
34
34
|
const ON_ERROR = new Set(["abort", "collect"]);
|
|
35
35
|
/** Writes one exported document, and its source when asked. */
|
|
@@ -72,12 +72,15 @@ export async function runExport(options, clients = SDK_CLIENTS) {
|
|
|
72
72
|
catch (error) {
|
|
73
73
|
throw new CliError(messageOf(error), 1, { cause: error });
|
|
74
74
|
}
|
|
75
|
+
// Resolved before the try: the catch below labels everything a flow-export
|
|
76
|
+
// abort, and a manifest lookup failure is not that.
|
|
77
|
+
const stamp = generator();
|
|
75
78
|
let result;
|
|
76
79
|
try {
|
|
77
80
|
result = await exportInstance(client, {
|
|
78
81
|
inventory,
|
|
79
82
|
onError: onError === "abort" ? "throw" : "collect",
|
|
80
|
-
generator:
|
|
83
|
+
generator: stamp,
|
|
81
84
|
});
|
|
82
85
|
}
|
|
83
86
|
catch (error) {
|
package/dist/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
|
package/dist/synth.d.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import type { FlowDoc } from "@flow-as-code/core";
|
|
2
|
-
/**
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Recorded in meta.generator of every FlowDoc this CLI writes.
|
|
4
|
+
*
|
|
5
|
+
* The version is this package's release, not the FlowDoc format version, so
|
|
6
|
+
* the stamp answers "which build wrote this document". `@flow-as-code/core`
|
|
7
|
+
* deliberately stamps `core@<format version>` instead; docs/01-flowdoc-spec.md
|
|
8
|
+
* records why the two differ. Derived, never written by hand: it shipped as a
|
|
9
|
+
* hardcoded `cli@0.0.1` from the 0.1.0 tarball. See ./version.ts.
|
|
10
|
+
*
|
|
11
|
+
* A function, and not the `GENERATOR` const it replaced in 0.1.1, because this
|
|
12
|
+
* module is the public `@flow-as-code/cli/synth` entry: a const would have to
|
|
13
|
+
* be computed while the module loads, and ./version.ts explains why nothing
|
|
14
|
+
* here may read the filesystem at that point. Throws if the manifest is
|
|
15
|
+
* missing, which for a real install it is not.
|
|
16
|
+
*/
|
|
17
|
+
export declare function generator(): string;
|
|
4
18
|
/** A synth failure with a message meant for the terminal. */
|
|
5
19
|
export declare class SynthError extends Error {
|
|
6
20
|
}
|
package/dist/synth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synth.d.ts","sourceRoot":"","sources":["../src/synth.ts"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"synth.d.ts","sourceRoot":"","sources":["../src/synth.ts"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAKlD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAID,6DAA6D;AAC7D,qBAAa,UAAW,SAAQ,KAAK;CAAG;AAoDxC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CA2B1F;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAExD;AAiFD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAoF5E;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBzF"}
|
package/dist/synth.js
CHANGED
|
@@ -48,8 +48,25 @@ import { tmpdir } from "node:os";
|
|
|
48
48
|
import { dirname, join, resolve } from "node:path";
|
|
49
49
|
import { fileURLToPath } from "node:url";
|
|
50
50
|
import { SLUG_PATTERN, serialize } from "@flow-as-code/core";
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
import { cliVersion } from "./version.js";
|
|
52
|
+
/**
|
|
53
|
+
* Recorded in meta.generator of every FlowDoc this CLI writes.
|
|
54
|
+
*
|
|
55
|
+
* The version is this package's release, not the FlowDoc format version, so
|
|
56
|
+
* the stamp answers "which build wrote this document". `@flow-as-code/core`
|
|
57
|
+
* deliberately stamps `core@<format version>` instead; docs/01-flowdoc-spec.md
|
|
58
|
+
* records why the two differ. Derived, never written by hand: it shipped as a
|
|
59
|
+
* hardcoded `cli@0.0.1` from the 0.1.0 tarball. See ./version.ts.
|
|
60
|
+
*
|
|
61
|
+
* A function, and not the `GENERATOR` const it replaced in 0.1.1, because this
|
|
62
|
+
* module is the public `@flow-as-code/cli/synth` entry: a const would have to
|
|
63
|
+
* be computed while the module loads, and ./version.ts explains why nothing
|
|
64
|
+
* here may read the filesystem at that point. Throws if the manifest is
|
|
65
|
+
* missing, which for a real install it is not.
|
|
66
|
+
*/
|
|
67
|
+
export function generator() {
|
|
68
|
+
return `cli@${cliVersion()}`;
|
|
69
|
+
}
|
|
53
70
|
const SENTINEL = "__FLOW_CLI_SYNTH_ENVELOPE_V1__";
|
|
54
71
|
/** A synth failure with a message meant for the terminal. */
|
|
55
72
|
export class SynthError extends Error {
|
|
@@ -298,7 +315,7 @@ export async function synthFile(sourcePath) {
|
|
|
298
315
|
}
|
|
299
316
|
/** Serializes a doc with the meta this CLI stamps. Byte-stable. */
|
|
300
317
|
export function serializeWithMeta(doc, sourceHash) {
|
|
301
|
-
return serialize({ ...doc, meta: { generator:
|
|
318
|
+
return serialize({ ...doc, meta: { generator: generator(), sourceHash } });
|
|
302
319
|
}
|
|
303
320
|
/**
|
|
304
321
|
* The `flow-cli synth` command body: synth every flow the file exports and
|
package/dist/synth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synth.js","sourceRoot":"","sources":["../src/synth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,2EAA2E;AAC3E,yDAAyD;AACzD,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,sEAAsE;AACtE,4BAA4B;AAC5B,EAAE;AACF,sEAAsE;AACtE,6CAA6C;AAC7C,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,sBAAsB;AACtB,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,kDAAkD;AAClD,sEAAsE;AACtE,iEAAiE;AACjE,2EAA2E;AAC3E,2EAA2E;AAC3E,4DAA4D;AAC5D,uEAAuE;AACvE,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,6BAA6B;AAC7B,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,6EAA6E;AAC7E,0BAA0B;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7D,
|
|
1
|
+
{"version":3,"file":"synth.js","sourceRoot":"","sources":["../src/synth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The version in packages/cli/package.json. Never write this string by hand.
|
|
3
|
+
*
|
|
4
|
+
* The filesystem walk runs on the first call and its result is kept, so the
|
|
5
|
+
* repeated callers (`--version`, every document synth stamps) pay for it once.
|
|
6
|
+
* Importing this module does no I/O at all; see the note at the top of the file
|
|
7
|
+
* for why that matters. Throws when no manifest for this package is above this
|
|
8
|
+
* file, rather than reporting a version it cannot back up.
|
|
9
|
+
*/
|
|
10
|
+
export declare function cliVersion(): string;
|
|
11
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AA4EA;;;;;;;;GAQG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAGnC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 The flow-as-code Authors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
// This package's version, read from its own manifest at runtime.
|
|
6
|
+
//
|
|
7
|
+
// It used to be two hardcoded literals, `.version("0.0.1")` in bin.ts and
|
|
8
|
+
// `cli@0.0.1` here, and both drifted the moment the release bumped to 0.1.0:
|
|
9
|
+
// the published 0.1.0 tarball printed `0.0.1` for `flow-cli --version` and
|
|
10
|
+
// stamped `cli@0.0.1` into meta.generator of every FlowDoc it synthesized, so
|
|
11
|
+
// documents users committed to their own repositories carry false provenance.
|
|
12
|
+
// Reading the manifest removes the copy that can drift; there is nothing left
|
|
13
|
+
// to remember to bump. src/version.test.ts holds it to the manifest.
|
|
14
|
+
//
|
|
15
|
+
// packages/cli/package.json ships inside the tarball (tests/packaging.test.ts
|
|
16
|
+
// asserts it), so the manifest is present in an install as well as a checkout.
|
|
17
|
+
// This module loads from src/ under vitest and from dist/ in an install, which
|
|
18
|
+
// are different directories, so the lookup walks up to the first package.json
|
|
19
|
+
// that names this package rather than assuming a fixed count of "..": both
|
|
20
|
+
// depths, and any future nesting, then resolve to the same manifest.
|
|
21
|
+
//
|
|
22
|
+
// The lookup is LAZY, and the exported binding is a function rather than a
|
|
23
|
+
// const, on purpose. The first cut ran the walk at module load, from
|
|
24
|
+
// `export const CLI_VERSION = readVersion()`. ./synth.ts imports this module
|
|
25
|
+
// and `./synth` is a public subpath, so a consumer who bundles that subpath
|
|
26
|
+
// took a throw from `import` itself: once bundled, import.meta.url no longer
|
|
27
|
+
// names a file with this package's manifest above it, the walk runs to the
|
|
28
|
+
// filesystem root, and the error arrives before any of their code runs. An
|
|
29
|
+
// import must be inert. Asking for the version is the operation that can fail,
|
|
30
|
+
// so that is where the failure belongs.
|
|
31
|
+
//
|
|
32
|
+
// It still fails loudly there. A placeholder version would turn a missing
|
|
33
|
+
// manifest into `cli@0.0.0` stamped in meta.generator, which is the false
|
|
34
|
+
// provenance described above wearing a different number, and worse than an
|
|
35
|
+
// error because nothing reports it.
|
|
36
|
+
import { readFileSync } from "node:fs";
|
|
37
|
+
import { dirname, join } from "node:path";
|
|
38
|
+
import { fileURLToPath } from "node:url";
|
|
39
|
+
import { PACKAGE_NAMES } from "@flow-as-code/core";
|
|
40
|
+
/** This package's name, as published. Never written here as a literal. */
|
|
41
|
+
const PACKAGE_NAME = PACKAGE_NAMES.cli;
|
|
42
|
+
/** Reads `version` from the nearest package.json at or above this file named PACKAGE_NAME. */
|
|
43
|
+
function readVersion() {
|
|
44
|
+
const from = fileURLToPath(import.meta.url);
|
|
45
|
+
let dir = dirname(from);
|
|
46
|
+
while (true) {
|
|
47
|
+
const manifestPath = join(dir, "package.json");
|
|
48
|
+
let manifest;
|
|
49
|
+
try {
|
|
50
|
+
manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// No manifest here, or an unreadable one: keep walking up.
|
|
54
|
+
}
|
|
55
|
+
if (manifest?.name === PACKAGE_NAME) {
|
|
56
|
+
const { version } = manifest;
|
|
57
|
+
if (typeof version !== "string" || version === "") {
|
|
58
|
+
throw new Error(`${manifestPath} has no version`);
|
|
59
|
+
}
|
|
60
|
+
return version;
|
|
61
|
+
}
|
|
62
|
+
const parent = dirname(dir);
|
|
63
|
+
if (parent === dir) {
|
|
64
|
+
throw new Error(`No ${PACKAGE_NAME} package.json at or above ${from}`);
|
|
65
|
+
}
|
|
66
|
+
dir = parent;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Memoized result of the walk. Only a success is cached; a failure is retried. */
|
|
70
|
+
let cached;
|
|
71
|
+
/**
|
|
72
|
+
* The version in packages/cli/package.json. Never write this string by hand.
|
|
73
|
+
*
|
|
74
|
+
* The filesystem walk runs on the first call and its result is kept, so the
|
|
75
|
+
* repeated callers (`--version`, every document synth stamps) pay for it once.
|
|
76
|
+
* Importing this module does no I/O at all; see the note at the top of the file
|
|
77
|
+
* for why that matters. Throws when no manifest for this package is above this
|
|
78
|
+
* file, rather than reporting a version it cannot back up.
|
|
79
|
+
*/
|
|
80
|
+
export function cliVersion() {
|
|
81
|
+
cached ??= readVersion();
|
|
82
|
+
return cached;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,iEAAiE;AACjE,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AACrE,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,+EAA+E;AAC/E,wCAAwC;AACxC,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,oCAAoC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,0EAA0E;AAC1E,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC;AAEvC,8FAA8F;AAC9F,SAAS,WAAW;IAClB,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC/C,IAAI,QAA2D,CAAC;QAChE,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAoB,CAAC;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;QACD,IAAI,QAAQ,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YACpC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;YAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,iBAAiB,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,MAAM,YAAY,6BAA6B,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,IAAI,MAA0B,CAAC;AAE/B;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,WAAW,EAAE,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flow-as-code/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "CLI over @flow-as-code/core: lint, codegen, synth, render, emit, the local studio server, and export, simulate, and diff against a live Amazon Connect instance.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
"test": "vitest run"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@flow-as-code/cdk": "0.1.
|
|
59
|
-
"@flow-as-code/core": "0.1.
|
|
60
|
-
"@flow-as-code/studio": "0.1.
|
|
61
|
-
"@flow-as-code/tf": "0.1.
|
|
58
|
+
"@flow-as-code/cdk": "0.1.1",
|
|
59
|
+
"@flow-as-code/core": "0.1.1",
|
|
60
|
+
"@flow-as-code/studio": "0.1.1",
|
|
61
|
+
"@flow-as-code/tf": "0.1.1",
|
|
62
62
|
"ajv": "^8.20.0",
|
|
63
63
|
"chokidar": "^5.0.0",
|
|
64
64
|
"commander": "^14.0.3",
|
package/src/bin.ts
CHANGED
|
@@ -20,12 +20,18 @@ import { action, usageErrorsExit } from "./run.js";
|
|
|
20
20
|
import { runSimulate } from "./simulate.js";
|
|
21
21
|
import { studioCommand, type StudioOptions } from "./studio.js";
|
|
22
22
|
import { synthToFiles } from "./synth.js";
|
|
23
|
+
import { cliVersion } from "./version.js";
|
|
23
24
|
|
|
24
25
|
const program = new Command();
|
|
25
26
|
program
|
|
26
27
|
.name("flow-cli")
|
|
27
28
|
.description("Typed, IaC-native tooling for Amazon Connect flows")
|
|
28
|
-
|
|
29
|
+
// Commander wants the string when the option is registered, so this one call
|
|
30
|
+
// does run while the module loads. That is fine here and nowhere else: this
|
|
31
|
+
// file is the bin, it is not in package.json "exports", and reaching it means
|
|
32
|
+
// the process is already the CLI. The library entries stay import-inert; see
|
|
33
|
+
// ./version.ts.
|
|
34
|
+
.version(cliVersion());
|
|
29
35
|
|
|
30
36
|
program
|
|
31
37
|
.command("lint")
|
package/src/export.ts
CHANGED
|
@@ -33,7 +33,7 @@ import { codegen, collectInventory, exportInstance, serialize } from "@flow-as-c
|
|
|
33
33
|
import { type LiveClients, parseInstanceArn, SDK_CLIENTS } from "./aws.js";
|
|
34
34
|
import { FLOWDOC_SUFFIX } from "./docs.js";
|
|
35
35
|
import { CliError, messageOf } from "./errors.js";
|
|
36
|
-
import {
|
|
36
|
+
import { generator, sha256Hex } from "./synth.js";
|
|
37
37
|
|
|
38
38
|
export const TS_SUFFIX = ".flow.ts";
|
|
39
39
|
|
|
@@ -109,12 +109,15 @@ export async function runExport(
|
|
|
109
109
|
} catch (error) {
|
|
110
110
|
throw new CliError(messageOf(error), 1, { cause: error });
|
|
111
111
|
}
|
|
112
|
+
// Resolved before the try: the catch below labels everything a flow-export
|
|
113
|
+
// abort, and a manifest lookup failure is not that.
|
|
114
|
+
const stamp = generator();
|
|
112
115
|
let result;
|
|
113
116
|
try {
|
|
114
117
|
result = await exportInstance(client, {
|
|
115
118
|
inventory,
|
|
116
119
|
onError: onError === "abort" ? "throw" : "collect",
|
|
117
|
-
generator:
|
|
120
|
+
generator: stamp,
|
|
118
121
|
});
|
|
119
122
|
} catch (error) {
|
|
120
123
|
// With the inventory in hand, exportInstance throws only for a flow, and
|
package/src/synth.ts
CHANGED
|
@@ -52,8 +52,26 @@ import { fileURLToPath } from "node:url";
|
|
|
52
52
|
import type { FlowDoc } from "@flow-as-code/core";
|
|
53
53
|
import { SLUG_PATTERN, serialize } from "@flow-as-code/core";
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
import { cliVersion } from "./version.js";
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Recorded in meta.generator of every FlowDoc this CLI writes.
|
|
59
|
+
*
|
|
60
|
+
* The version is this package's release, not the FlowDoc format version, so
|
|
61
|
+
* the stamp answers "which build wrote this document". `@flow-as-code/core`
|
|
62
|
+
* deliberately stamps `core@<format version>` instead; docs/01-flowdoc-spec.md
|
|
63
|
+
* records why the two differ. Derived, never written by hand: it shipped as a
|
|
64
|
+
* hardcoded `cli@0.0.1` from the 0.1.0 tarball. See ./version.ts.
|
|
65
|
+
*
|
|
66
|
+
* A function, and not the `GENERATOR` const it replaced in 0.1.1, because this
|
|
67
|
+
* module is the public `@flow-as-code/cli/synth` entry: a const would have to
|
|
68
|
+
* be computed while the module loads, and ./version.ts explains why nothing
|
|
69
|
+
* here may read the filesystem at that point. Throws if the manifest is
|
|
70
|
+
* missing, which for a real install it is not.
|
|
71
|
+
*/
|
|
72
|
+
export function generator(): string {
|
|
73
|
+
return `cli@${cliVersion()}`;
|
|
74
|
+
}
|
|
57
75
|
|
|
58
76
|
const SENTINEL = "__FLOW_CLI_SYNTH_ENVELOPE_V1__";
|
|
59
77
|
|
|
@@ -349,7 +367,7 @@ export async function synthFile(sourcePath: string): Promise<SynthFileResult> {
|
|
|
349
367
|
|
|
350
368
|
/** Serializes a doc with the meta this CLI stamps. Byte-stable. */
|
|
351
369
|
export function serializeWithMeta(doc: FlowDoc, sourceHash: string): string {
|
|
352
|
-
return serialize({ ...doc, meta: { generator:
|
|
370
|
+
return serialize({ ...doc, meta: { generator: generator(), sourceHash } });
|
|
353
371
|
}
|
|
354
372
|
|
|
355
373
|
/**
|
package/src/version.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 The flow-as-code Authors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
// This package's version, read from its own manifest at runtime.
|
|
6
|
+
//
|
|
7
|
+
// It used to be two hardcoded literals, `.version("0.0.1")` in bin.ts and
|
|
8
|
+
// `cli@0.0.1` here, and both drifted the moment the release bumped to 0.1.0:
|
|
9
|
+
// the published 0.1.0 tarball printed `0.0.1` for `flow-cli --version` and
|
|
10
|
+
// stamped `cli@0.0.1` into meta.generator of every FlowDoc it synthesized, so
|
|
11
|
+
// documents users committed to their own repositories carry false provenance.
|
|
12
|
+
// Reading the manifest removes the copy that can drift; there is nothing left
|
|
13
|
+
// to remember to bump. src/version.test.ts holds it to the manifest.
|
|
14
|
+
//
|
|
15
|
+
// packages/cli/package.json ships inside the tarball (tests/packaging.test.ts
|
|
16
|
+
// asserts it), so the manifest is present in an install as well as a checkout.
|
|
17
|
+
// This module loads from src/ under vitest and from dist/ in an install, which
|
|
18
|
+
// are different directories, so the lookup walks up to the first package.json
|
|
19
|
+
// that names this package rather than assuming a fixed count of "..": both
|
|
20
|
+
// depths, and any future nesting, then resolve to the same manifest.
|
|
21
|
+
//
|
|
22
|
+
// The lookup is LAZY, and the exported binding is a function rather than a
|
|
23
|
+
// const, on purpose. The first cut ran the walk at module load, from
|
|
24
|
+
// `export const CLI_VERSION = readVersion()`. ./synth.ts imports this module
|
|
25
|
+
// and `./synth` is a public subpath, so a consumer who bundles that subpath
|
|
26
|
+
// took a throw from `import` itself: once bundled, import.meta.url no longer
|
|
27
|
+
// names a file with this package's manifest above it, the walk runs to the
|
|
28
|
+
// filesystem root, and the error arrives before any of their code runs. An
|
|
29
|
+
// import must be inert. Asking for the version is the operation that can fail,
|
|
30
|
+
// so that is where the failure belongs.
|
|
31
|
+
//
|
|
32
|
+
// It still fails loudly there. A placeholder version would turn a missing
|
|
33
|
+
// manifest into `cli@0.0.0` stamped in meta.generator, which is the false
|
|
34
|
+
// provenance described above wearing a different number, and worse than an
|
|
35
|
+
// error because nothing reports it.
|
|
36
|
+
|
|
37
|
+
import { readFileSync } from "node:fs";
|
|
38
|
+
import { dirname, join } from "node:path";
|
|
39
|
+
import { fileURLToPath } from "node:url";
|
|
40
|
+
|
|
41
|
+
import { PACKAGE_NAMES } from "@flow-as-code/core";
|
|
42
|
+
|
|
43
|
+
/** This package's name, as published. Never written here as a literal. */
|
|
44
|
+
const PACKAGE_NAME = PACKAGE_NAMES.cli;
|
|
45
|
+
|
|
46
|
+
/** Reads `version` from the nearest package.json at or above this file named PACKAGE_NAME. */
|
|
47
|
+
function readVersion(): string {
|
|
48
|
+
const from = fileURLToPath(import.meta.url);
|
|
49
|
+
let dir = dirname(from);
|
|
50
|
+
|
|
51
|
+
while (true) {
|
|
52
|
+
const manifestPath = join(dir, "package.json");
|
|
53
|
+
let manifest: { name?: unknown; version?: unknown } | undefined;
|
|
54
|
+
try {
|
|
55
|
+
manifest = JSON.parse(readFileSync(manifestPath, "utf8")) as typeof manifest;
|
|
56
|
+
} catch {
|
|
57
|
+
// No manifest here, or an unreadable one: keep walking up.
|
|
58
|
+
}
|
|
59
|
+
if (manifest?.name === PACKAGE_NAME) {
|
|
60
|
+
const { version } = manifest;
|
|
61
|
+
if (typeof version !== "string" || version === "") {
|
|
62
|
+
throw new Error(`${manifestPath} has no version`);
|
|
63
|
+
}
|
|
64
|
+
return version;
|
|
65
|
+
}
|
|
66
|
+
const parent = dirname(dir);
|
|
67
|
+
if (parent === dir) {
|
|
68
|
+
throw new Error(`No ${PACKAGE_NAME} package.json at or above ${from}`);
|
|
69
|
+
}
|
|
70
|
+
dir = parent;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Memoized result of the walk. Only a success is cached; a failure is retried. */
|
|
75
|
+
let cached: string | undefined;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The version in packages/cli/package.json. Never write this string by hand.
|
|
79
|
+
*
|
|
80
|
+
* The filesystem walk runs on the first call and its result is kept, so the
|
|
81
|
+
* repeated callers (`--version`, every document synth stamps) pay for it once.
|
|
82
|
+
* Importing this module does no I/O at all; see the note at the top of the file
|
|
83
|
+
* for why that matters. Throws when no manifest for this package is above this
|
|
84
|
+
* file, rather than reporting a version it cannot back up.
|
|
85
|
+
*/
|
|
86
|
+
export function cliVersion(): string {
|
|
87
|
+
cached ??= readVersion();
|
|
88
|
+
return cached;
|
|
89
|
+
}
|