@procedures/lib 0.0.0-stage → 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/CHANGELOG.md +30 -0
- package/LICENSE +21 -0
- package/README.md +119 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/cli-flags.d.ts +27 -0
- package/dist/cli-flags.d.ts.map +1 -0
- package/dist/cli-flags.js +33 -0
- package/dist/cli-flags.js.map +1 -0
- package/dist/dag/builder.d.ts +18 -0
- package/dist/dag/builder.d.ts.map +1 -0
- package/dist/dag/builder.js +35 -0
- package/dist/dag/builder.js.map +1 -0
- package/dist/dag/index.d.ts +12 -0
- package/dist/dag/index.d.ts.map +1 -0
- package/dist/dag/index.js +12 -0
- package/dist/dag/index.js.map +1 -0
- package/dist/git/index.d.ts +5 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +5 -0
- package/dist/git/index.js.map +1 -0
- package/dist/git/ref-parser.d.ts +34 -0
- package/dist/git/ref-parser.d.ts.map +1 -0
- package/dist/git/ref-parser.js +70 -0
- package/dist/git/ref-parser.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/module.d.ts +22 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +180 -0
- package/dist/module.js.map +1 -0
- package/dist/procedures/core/catch.d.ts +33 -0
- package/dist/procedures/core/catch.d.ts.map +1 -0
- package/dist/procedures/core/catch.js +118 -0
- package/dist/procedures/core/catch.js.map +1 -0
- package/dist/procedures/core/index.d.ts +9 -0
- package/dist/procedures/core/index.d.ts.map +1 -0
- package/dist/procedures/core/index.js +8 -0
- package/dist/procedures/core/index.js.map +1 -0
- package/dist/procedures/dag/index.d.ts +5 -0
- package/dist/procedures/dag/index.d.ts.map +1 -0
- package/dist/procedures/dag/index.js +5 -0
- package/dist/procedures/dag/index.js.map +1 -0
- package/dist/procedures/dag/traverse.d.ts +54 -0
- package/dist/procedures/dag/traverse.d.ts.map +1 -0
- package/dist/procedures/dag/traverse.js +252 -0
- package/dist/procedures/dag/traverse.js.map +1 -0
- package/dist/procedures/ecosystem/index.d.ts +7 -0
- package/dist/procedures/ecosystem/index.d.ts.map +1 -0
- package/dist/procedures/ecosystem/index.js +6 -0
- package/dist/procedures/ecosystem/index.js.map +1 -0
- package/dist/procedures/ecosystem/procedures.d.ts +63 -0
- package/dist/procedures/ecosystem/procedures.d.ts.map +1 -0
- package/dist/procedures/ecosystem/procedures.js +215 -0
- package/dist/procedures/ecosystem/procedures.js.map +1 -0
- package/dist/procedures/lib/audit.d.ts +29 -0
- package/dist/procedures/lib/audit.d.ts.map +1 -0
- package/dist/procedures/lib/audit.js +236 -0
- package/dist/procedures/lib/audit.js.map +1 -0
- package/dist/procedures/lib/index.d.ts +8 -0
- package/dist/procedures/lib/index.d.ts.map +1 -0
- package/dist/procedures/lib/index.js +8 -0
- package/dist/procedures/lib/index.js.map +1 -0
- package/dist/procedures/lib/new.d.ts +20 -0
- package/dist/procedures/lib/new.d.ts.map +1 -0
- package/dist/procedures/lib/new.js +205 -0
- package/dist/procedures/lib/new.js.map +1 -0
- package/dist/procedures/lib/rename.d.ts +28 -0
- package/dist/procedures/lib/rename.d.ts.map +1 -0
- package/dist/procedures/lib/rename.js +267 -0
- package/dist/procedures/lib/rename.js.map +1 -0
- package/dist/procedures/lib/scan.d.ts +14 -0
- package/dist/procedures/lib/scan.d.ts.map +1 -0
- package/dist/procedures/lib/scan.js +102 -0
- package/dist/procedures/lib/scan.js.map +1 -0
- package/dist/register.d.ts +7 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +9 -0
- package/dist/register.js.map +1 -0
- package/dist/scoped-input.d.ts +17 -0
- package/dist/scoped-input.d.ts.map +1 -0
- package/dist/scoped-input.js +23 -0
- package/dist/scoped-input.js.map +1 -0
- package/dist/types.d.ts +248 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +231 -0
- package/dist/types.js.map +1 -0
- package/dist/workspace.d.ts +46 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +98 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +87 -3
- package/src/cli-flags.ts +49 -0
- package/src/dag/builder.ts +44 -0
- package/src/dag/index.ts +23 -0
- package/src/git/index.ts +11 -0
- package/src/git/ref-parser.ts +83 -0
- package/src/index.ts +56 -0
- package/src/module.ts +232 -0
- package/src/procedures/core/catch.ts +142 -0
- package/src/procedures/core/index.ts +9 -0
- package/src/procedures/dag/index.ts +5 -0
- package/src/procedures/dag/traverse.ts +281 -0
- package/src/procedures/ecosystem/index.ts +12 -0
- package/src/procedures/ecosystem/procedures.ts +317 -0
- package/src/procedures/lib/audit.ts +307 -0
- package/src/procedures/lib/index.ts +8 -0
- package/src/procedures/lib/new.ts +253 -0
- package/src/procedures/lib/rename.ts +355 -0
- package/src/procedures/lib/scan.ts +143 -0
- package/src/register.ts +11 -0
- package/src/types.ts +526 -0
- package/src/workspace.ts +110 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The global flags of the `mark` CLI.
|
|
3
|
+
*
|
|
4
|
+
* `mark` reads a global flag before the command path. After the path, a flag is global only when
|
|
5
|
+
* the procedure does not declare a flag of that name: `mark docker compose down -v` gives `-v` to
|
|
6
|
+
* the procedure. `lib.audit` reports each procedure flag that hides a global flag in this way.
|
|
7
|
+
*
|
|
8
|
+
* This module has no side effects: `mark` imports it before it loads the procedures.
|
|
9
|
+
*/
|
|
10
|
+
export const CLI_GLOBAL_FLAGS = [
|
|
11
|
+
{ long: "help", short: "h", takesValue: false, description: "Show the help" },
|
|
12
|
+
{ long: "version", short: "v", takesValue: false, description: "Show the version" },
|
|
13
|
+
{ long: "verbose", short: "V", takesValue: false, description: "Show more output" },
|
|
14
|
+
{ long: "format", short: "f", takesValue: true, description: "The output format: text, json, table or streaming" },
|
|
15
|
+
{ long: "local", takesValue: false, description: "Run the command in this process, not on the CLI server" },
|
|
16
|
+
{ long: "json", takesValue: true, description: "Run a procedure reference that is given as JSON" },
|
|
17
|
+
{ long: "no-input", takesValue: false, description: "Never ask for a missing argument (also when CI is set)" },
|
|
18
|
+
{ long: "interactive", short: "i", takesValue: false, mode: true, description: "Start the REPL" },
|
|
19
|
+
{ long: "server", takesValue: false, mode: true, description: "Start the CLI server" },
|
|
20
|
+
{ long: "port", takesValue: true, serverOption: true, description: "The port of the CLI server (with --server)" },
|
|
21
|
+
{ long: "host", takesValue: true, serverOption: true, description: "The host of the CLI server (with --server)" },
|
|
22
|
+
{
|
|
23
|
+
long: "transport",
|
|
24
|
+
takesValue: true,
|
|
25
|
+
serverOption: true,
|
|
26
|
+
description: "The transport of the CLI server: http, websocket or both (with --server)",
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
/** The global flag with this long name or short letter */
|
|
30
|
+
export function findGlobalFlag(name, short) {
|
|
31
|
+
return CLI_GLOBAL_FLAGS.find((flag) => (short ? flag.short === name : flag.long === name));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=cli-flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-flags.js","sourceRoot":"","sources":["../src/cli-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE;IAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACnF,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACnF,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,mDAAmD,EAAE;IAClH,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,wDAAwD,EAAE;IAC3G,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,iDAAiD,EAAE;IAClG,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,wDAAwD,EAAE;IAC9G,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;IACjG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;IACtF,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE;IACjH,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE;IACjH;QACE,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,0EAA0E;KACxF;CACF,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAc;IACzD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DAG Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds the ecosystem-specific dependency DAG from package scan results. This is the only
|
|
5
|
+
* domain-specific piece; the generic DAG algorithms (buildLeveledDAG, executeDAG, filterDAGFromRoot,
|
|
6
|
+
* getAncestors, getDescendants, ...) live in @procedures/dag. This package previously
|
|
7
|
+
* vendored a verbatim copy of those — see documentation/BUGS-2026-07.md (DAG de-dup).
|
|
8
|
+
*/
|
|
9
|
+
import type { DAGNode, PackageInfo } from "../types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Build DAG nodes from package info.
|
|
12
|
+
*
|
|
13
|
+
* Creates nodes only for packages that are mark1russell7 dependencies and exist in the scanned
|
|
14
|
+
* packages. `id` mirrors `name` so the nodes satisfy client-dag's DAGNode contract (which keys by
|
|
15
|
+
* id) while the ecosystem code keeps using the readable `name`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildDAGNodes(packages: Record<string, PackageInfo>): Map<string, DAGNode>;
|
|
18
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/dag/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACpC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBtB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DAG Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds the ecosystem-specific dependency DAG from package scan results. This is the only
|
|
5
|
+
* domain-specific piece; the generic DAG algorithms (buildLeveledDAG, executeDAG, filterDAGFromRoot,
|
|
6
|
+
* getAncestors, getDescendants, ...) live in @procedures/dag. This package previously
|
|
7
|
+
* vendored a verbatim copy of those — see documentation/BUGS-2026-07.md (DAG de-dup).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Build DAG nodes from package info.
|
|
11
|
+
*
|
|
12
|
+
* Creates nodes only for packages that are mark1russell7 dependencies and exist in the scanned
|
|
13
|
+
* packages. `id` mirrors `name` so the nodes satisfy client-dag's DAGNode contract (which keys by
|
|
14
|
+
* id) while the ecosystem code keeps using the readable `name`.
|
|
15
|
+
*/
|
|
16
|
+
export function buildDAGNodes(packages) {
|
|
17
|
+
const nodes = new Map();
|
|
18
|
+
for (const [name, info] of Object.entries(packages)) {
|
|
19
|
+
// Only include packages that have mark1russell7 dependencies or are dependencies of others.
|
|
20
|
+
const deps = info.mark1russell7Deps.filter((dep) => packages[dep] !== undefined);
|
|
21
|
+
const gitRef = info.gitRemote ?? `github:mark1russell7/${info.name}#${info.currentBranch ?? "main"}`;
|
|
22
|
+
const requiredBranch = info.currentBranch ?? "main";
|
|
23
|
+
const node = {
|
|
24
|
+
id: name,
|
|
25
|
+
name,
|
|
26
|
+
repoPath: info.repoPath,
|
|
27
|
+
gitRef,
|
|
28
|
+
requiredBranch,
|
|
29
|
+
dependencies: deps,
|
|
30
|
+
};
|
|
31
|
+
nodes.set(name, node);
|
|
32
|
+
}
|
|
33
|
+
return nodes;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/dag/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAqC;IAErC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,4FAA4F;QAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;QAEjF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,wBAAwB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC;QACrG,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC;QAEpD,MAAM,IAAI,GAAY;YACpB,EAAE,EAAE,IAAI;YACR,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;YACN,cAAc;YACd,YAAY,EAAE,IAAI;SACnB,CAAC;QAEF,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DAG utilities.
|
|
3
|
+
*
|
|
4
|
+
* The generic DAG algorithms are re-exported from @procedures/dag; only buildDAGNodes
|
|
5
|
+
* (which builds the ecosystem package graph) is domain-specific and stays local. This package
|
|
6
|
+
* previously vendored a verbatim copy of the generic algorithms — deduplicated here. The nodes
|
|
7
|
+
* carry an `id` (mirroring `name`) so they satisfy client-dag's generic `DAGNode` contract.
|
|
8
|
+
* See documentation/BUGS-2026-07.md (DAG de-dup / H27).
|
|
9
|
+
*/
|
|
10
|
+
export { buildLeveledDAG, getTopologicalOrder, visualizeDAG, executeDAG, executeDAGSequential, createProcessor, filterDAGFromRoot, getAncestors, getDescendants, } from "@procedures/dag";
|
|
11
|
+
export { buildDAGNodes } from "./builder.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dag/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DAG utilities.
|
|
3
|
+
*
|
|
4
|
+
* The generic DAG algorithms are re-exported from @procedures/dag; only buildDAGNodes
|
|
5
|
+
* (which builds the ecosystem package graph) is domain-specific and stays local. This package
|
|
6
|
+
* previously vendored a verbatim copy of the generic algorithms — deduplicated here. The nodes
|
|
7
|
+
* carry an `id` (mirroring `name`) so they satisfy client-dag's generic `DAGNode` contract.
|
|
8
|
+
* See documentation/BUGS-2026-07.md (DAG de-dup / H27).
|
|
9
|
+
*/
|
|
10
|
+
export { buildLeveledDAG, getTopologicalOrder, visualizeDAG, executeDAG, executeDAGSequential, createProcessor, filterDAGFromRoot, getAncestors, getDescendants, } from "@procedures/dag";
|
|
11
|
+
export { buildDAGNodes } from "./builder.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dag/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git reference parser
|
|
3
|
+
*
|
|
4
|
+
* Parses git references from package.json dependencies like:
|
|
5
|
+
* - github:mark1russell7/logger#main
|
|
6
|
+
* - github:mark1russell7/client#v1.0.0
|
|
7
|
+
*/
|
|
8
|
+
import type { GitRef } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Parse a git reference string into its components
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* parseGitRef("github:mark1russell7/logger#main")
|
|
14
|
+
* // { raw: "...", host: "github", owner: "mark1russell7", repo: "logger", ref: "main" }
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseGitRef(refString: string): GitRef | null;
|
|
17
|
+
/**
|
|
18
|
+
* Check if a dependency string is a git reference
|
|
19
|
+
*/
|
|
20
|
+
export declare function isGitRef(dep: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Check if a dependency is a mark1russell7 git reference
|
|
23
|
+
*/
|
|
24
|
+
export declare function isMark1Russell7Ref(dep: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Extract mark1russell7 git refs from package.json dependencies
|
|
27
|
+
*/
|
|
28
|
+
export declare function extractMark1Russell7Deps(dependencies: Record<string, string>): GitRef[];
|
|
29
|
+
/**
|
|
30
|
+
* Get the package name from a git ref
|
|
31
|
+
* Uses the repo name, optionally scoped with @mark1russell7/
|
|
32
|
+
*/
|
|
33
|
+
export declare function getPackageNameFromRef(ref: GitRef): string;
|
|
34
|
+
//# sourceMappingURL=ref-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-parser.d.ts","sourceRoot":"","sources":["../../src/git/ref-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoB5D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,EAAE,CAaV;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKzD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git reference parser
|
|
3
|
+
*
|
|
4
|
+
* Parses git references from package.json dependencies like:
|
|
5
|
+
* - github:mark1russell7/logger#main
|
|
6
|
+
* - github:mark1russell7/client#v1.0.0
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parse a git reference string into its components
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* parseGitRef("github:mark1russell7/logger#main")
|
|
13
|
+
* // { raw: "...", host: "github", owner: "mark1russell7", repo: "logger", ref: "main" }
|
|
14
|
+
*/
|
|
15
|
+
export function parseGitRef(refString) {
|
|
16
|
+
// Pattern: host:owner/repo#ref
|
|
17
|
+
// Examples:
|
|
18
|
+
// github:mark1russell7/logger#main
|
|
19
|
+
// gitlab:user/project#develop
|
|
20
|
+
const match = refString.match(/^(\w+):([^/]+)\/([^#]+)#(.+)$/);
|
|
21
|
+
if (!match) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const [, host, owner, repo, ref] = match;
|
|
25
|
+
return {
|
|
26
|
+
raw: refString,
|
|
27
|
+
host: host,
|
|
28
|
+
owner: owner,
|
|
29
|
+
repo: repo,
|
|
30
|
+
ref: ref,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if a dependency string is a git reference
|
|
35
|
+
*/
|
|
36
|
+
export function isGitRef(dep) {
|
|
37
|
+
return /^\w+:[^/]+\/[^#]+#.+$/.test(dep);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if a dependency is a mark1russell7 git reference
|
|
41
|
+
*/
|
|
42
|
+
export function isMark1Russell7Ref(dep) {
|
|
43
|
+
return dep.includes("mark1russell7/");
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extract mark1russell7 git refs from package.json dependencies
|
|
47
|
+
*/
|
|
48
|
+
export function extractMark1Russell7Deps(dependencies) {
|
|
49
|
+
const refs = [];
|
|
50
|
+
for (const [, version] of Object.entries(dependencies)) {
|
|
51
|
+
if (isMark1Russell7Ref(version)) {
|
|
52
|
+
const ref = parseGitRef(version);
|
|
53
|
+
if (ref) {
|
|
54
|
+
refs.push(ref);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return refs;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get the package name from a git ref
|
|
62
|
+
* Uses the repo name, optionally scoped with @mark1russell7/
|
|
63
|
+
*/
|
|
64
|
+
export function getPackageNameFromRef(ref) {
|
|
65
|
+
// For mark1russell7 repos, the package name is usually @mark1russell7/{repo}
|
|
66
|
+
// But some packages like "client" are unscoped
|
|
67
|
+
// We'll need to check the actual package.json to be sure
|
|
68
|
+
return ref.repo;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=ref-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-parser.js","sourceRoot":"","sources":["../../src/git/ref-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,+BAA+B;IAC/B,YAAY;IACZ,qCAAqC;IACrC,gCAAgC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;IAEzC,OAAO;QACL,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,IAAK;QACX,KAAK,EAAE,KAAM;QACb,IAAI,EAAE,IAAK;QACX,GAAG,EAAE,GAAI;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAAoC;IAEpC,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,6EAA6E;IAC7E,+CAA+C;IAC/C,yDAAyD;IACzD,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @procedures/lib
|
|
3
|
+
*
|
|
4
|
+
* Library management procedures for the workspace - scan, new, audit, rename.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./module.js";
|
|
7
|
+
export * from "./types.js";
|
|
8
|
+
export { libScan, libRename, libNew, libAudit, } from "./procedures/lib/index.js";
|
|
9
|
+
export { ecosystemProcedures, EcosystemProceduresInputSchema, } from "./procedures/ecosystem/index.js";
|
|
10
|
+
export type { EcosystemProceduresInput, EcosystemProceduresOutput, ProcedureInfo, PackageProcedures, } from "./procedures/ecosystem/index.js";
|
|
11
|
+
export { buildDAGNodes, filterDAGFromRoot, getAncestors, getDescendants, buildLeveledDAG, getTopologicalOrder, visualizeDAG, executeDAG, executeDAGSequential, createProcessor, } from "./dag/index.js";
|
|
12
|
+
export { parseGitRef, isGitRef, isMark1Russell7Ref, extractMark1Russell7Deps, getPackageNameFromRef, } from "./git/index.js";
|
|
13
|
+
export { CLI_GLOBAL_FLAGS, findGlobalFlag, type CliGlobalFlag } from "./cli-flags.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACb,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @procedures/lib
|
|
3
|
+
*
|
|
4
|
+
* Library management procedures for the workspace - scan, new, audit, rename.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./module.js";
|
|
7
|
+
// Re-export types
|
|
8
|
+
export * from "./types.js";
|
|
9
|
+
// Re-export procedures
|
|
10
|
+
export { libScan, libRename, libNew, libAudit, } from "./procedures/lib/index.js";
|
|
11
|
+
// Re-export ecosystem procedures
|
|
12
|
+
export { ecosystemProcedures, EcosystemProceduresInputSchema, } from "./procedures/ecosystem/index.js";
|
|
13
|
+
// Re-export DAG utilities (ecosystem-specific)
|
|
14
|
+
export { buildDAGNodes, filterDAGFromRoot, getAncestors, getDescendants, buildLeveledDAG, getTopologicalOrder, visualizeDAG, executeDAG, executeDAGSequential, createProcessor, } from "./dag/index.js";
|
|
15
|
+
// Re-export git utilities
|
|
16
|
+
export { parseGitRef, isGitRef, isMark1Russell7Ref, extractMark1Russell7Deps, getPackageNameFromRef, } from "./git/index.js";
|
|
17
|
+
// The global flags of the mark CLI (also at "@procedures/lib/cli-flags", with no side effects)
|
|
18
|
+
export { CLI_GLOBAL_FLAGS, findGlobalFlag } from "./cli-flags.js";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAE5B,kBAAkB;AAClB,cAAc,YAAY,CAAC;AAE3B,uBAAuB;AACvB,OAAO,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,2BAA2B,CAAC;AAEnC,iCAAiC;AACjC,OAAO,EACL,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,iCAAiC,CAAC;AAQzC,+CAA+C;AAC/C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,0BAA0B;AAC1B,OAAO,EACL,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,+FAA+F;AAC/F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAsB,MAAM,gBAAgB,CAAC"}
|
package/dist/module.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module (no side effects): the procedures of this package as data, for `createRegistry()`.
|
|
3
|
+
*
|
|
4
|
+
* Procedure Registration for lib operations
|
|
5
|
+
*
|
|
6
|
+
* This is the canonical home for lib.* procedures.
|
|
7
|
+
* client-cli no longer registers these to avoid duplicates.
|
|
8
|
+
*/
|
|
9
|
+
import { type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
|
|
10
|
+
/**
|
|
11
|
+
* The module of this package, for `createRegistry()`: its procedures as data. Importing this
|
|
12
|
+
* file registers nothing. (`register.ts` registers the same procedures in the global registry.)
|
|
13
|
+
*/
|
|
14
|
+
export declare const libModule: ProcedureModule;
|
|
15
|
+
export default libModule;
|
|
16
|
+
/**
|
|
17
|
+
* This function registers the procedures of @procedures/lib, and of the modules that it requires, in
|
|
18
|
+
* a registry. The default is the global registry. Importing this file registers nothing: the
|
|
19
|
+
* `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
20
|
+
*/
|
|
21
|
+
export declare function registerLibProcedures(registry?: ProcedureRegistry): void;
|
|
22
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA4D,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAmMjL;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,eAYG,CAAC;eAEb,SAAS;AAExB;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE5F"}
|
package/dist/module.js
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module (no side effects): the procedures of this package as data, for `createRegistry()`.
|
|
3
|
+
*
|
|
4
|
+
* Procedure Registration for lib operations
|
|
5
|
+
*
|
|
6
|
+
* This is the canonical home for lib.* procedures.
|
|
7
|
+
* client-cli no longer registers these to avoid duplicates.
|
|
8
|
+
*/
|
|
9
|
+
import { createProcedure, zodAdapter, RUNS_REFS_TAG, defineModule, PROCEDURE_REGISTRY, registerModules } from "@procedures/client";
|
|
10
|
+
import gitModule from "@procedures/git/module";
|
|
11
|
+
import fsModule from "@procedures/fs/module";
|
|
12
|
+
import { libScan, libRename, libNew, libAudit, } from "./procedures/lib/index.js";
|
|
13
|
+
import { ecosystemProcedures, EcosystemProceduresInputSchema, EcosystemProceduresOutputSchema, } from "./procedures/ecosystem/index.js";
|
|
14
|
+
import { dagTraverse } from "./procedures/dag/index.js";
|
|
15
|
+
import { coreCatch } from "./procedures/core/index.js";
|
|
16
|
+
import { LibScanInputSchema, LibRenameInputSchema, LibNewInputSchema, LibAuditInputSchema, DagTraverseInputSchema, CoreCatchInputSchema, LibScanOutputSchema, LibRenameOutputSchema, LibNewOutputSchema, LibAuditOutputSchema, DagTraverseOutputSchema, CoreCatchOutputSchema, } from "./types.js";
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// lib.* Procedures
|
|
19
|
+
// =============================================================================
|
|
20
|
+
const libScanProcedure = createProcedure()
|
|
21
|
+
.path(["lib", "scan"])
|
|
22
|
+
.input(zodAdapter(LibScanInputSchema))
|
|
23
|
+
.output(zodAdapter(LibScanOutputSchema))
|
|
24
|
+
.meta({
|
|
25
|
+
description: "Scan for packages in the git directory",
|
|
26
|
+
calls: ["fs.readdir", "fs.read.json", "git.status", "git.remote"],
|
|
27
|
+
effects: { reads: ["fs"], writes: [] },
|
|
28
|
+
args: [],
|
|
29
|
+
shorts: {},
|
|
30
|
+
output: "json",
|
|
31
|
+
})
|
|
32
|
+
.handler(async (input, ctx) => {
|
|
33
|
+
return libScan(input, ctx);
|
|
34
|
+
})
|
|
35
|
+
.build();
|
|
36
|
+
const libRenameProcedure = createProcedure()
|
|
37
|
+
.path(["lib", "rename"])
|
|
38
|
+
.input(zodAdapter(LibRenameInputSchema))
|
|
39
|
+
.output(zodAdapter(LibRenameOutputSchema))
|
|
40
|
+
.meta({
|
|
41
|
+
description: "Rename a package across the ecosystem",
|
|
42
|
+
calls: ["fs.glob", "fs.read.json", "fs.write", "fs.exists"],
|
|
43
|
+
// It rewrites package.json files and TypeScript imports of the whole workspace
|
|
44
|
+
effects: { reads: ["fs"], writes: ["fs"] },
|
|
45
|
+
args: ["oldName", "newName"],
|
|
46
|
+
shorts: { dryRun: "n" },
|
|
47
|
+
output: "json",
|
|
48
|
+
})
|
|
49
|
+
.handler(async (input, ctx) => {
|
|
50
|
+
return libRename(input, ctx);
|
|
51
|
+
})
|
|
52
|
+
.build();
|
|
53
|
+
const libNewProcedure = createProcedure()
|
|
54
|
+
.path(["lib", "new"])
|
|
55
|
+
.input(zodAdapter(LibNewInputSchema))
|
|
56
|
+
.output(zodAdapter(LibNewOutputSchema))
|
|
57
|
+
.meta({
|
|
58
|
+
description: "Create a new package in the ecosystem",
|
|
59
|
+
calls: ["shell.run", "fs.exists", "fs.mkdir", "fs.write", "fs.read.json"],
|
|
60
|
+
// It starts the cue-config CLI from the node_modules of the workspace: code of the project,
|
|
61
|
+
// so it writes process. That CLI writes only files of the new package folder. An existing
|
|
62
|
+
// folder is an error, so the procedure overwrites nothing.
|
|
63
|
+
effects: { reads: ["fs"], writes: ["fs", "process"], destructive: false },
|
|
64
|
+
args: ["name"],
|
|
65
|
+
shorts: { dryRun: "n" },
|
|
66
|
+
output: "json",
|
|
67
|
+
})
|
|
68
|
+
.handler(async (input, ctx) => {
|
|
69
|
+
return libNew(input, ctx);
|
|
70
|
+
})
|
|
71
|
+
.build();
|
|
72
|
+
const libAuditProcedure = createProcedure()
|
|
73
|
+
.path(["lib", "audit"])
|
|
74
|
+
.input(zodAdapter(LibAuditInputSchema))
|
|
75
|
+
.output(zodAdapter(LibAuditOutputSchema))
|
|
76
|
+
.meta({
|
|
77
|
+
description: "Audit ecosystem packages for issues",
|
|
78
|
+
calls: ["fs.readdir", "fs.read.json", "git.status", "git.remote", "fs.exists", "fs.mkdir", "fs.write"],
|
|
79
|
+
// It reads the registry for the flag notices. With `fix`, it makes only the missing folders
|
|
80
|
+
// and files, so a second call changes nothing more.
|
|
81
|
+
effects: { reads: ["fs", "registry"], writes: ["fs"], destructive: false, idempotent: true },
|
|
82
|
+
args: [],
|
|
83
|
+
shorts: { fix: "f" },
|
|
84
|
+
output: "json",
|
|
85
|
+
})
|
|
86
|
+
.handler(async (input, ctx) => {
|
|
87
|
+
return libAudit(input, ctx);
|
|
88
|
+
})
|
|
89
|
+
.build();
|
|
90
|
+
// =============================================================================
|
|
91
|
+
// ecosystem.* Procedures
|
|
92
|
+
// =============================================================================
|
|
93
|
+
const ecosystemProceduresProcedure = createProcedure()
|
|
94
|
+
.path(["ecosystem", "procedures"])
|
|
95
|
+
.input(zodAdapter(EcosystemProceduresInputSchema))
|
|
96
|
+
.output(zodAdapter(EcosystemProceduresOutputSchema))
|
|
97
|
+
.meta({
|
|
98
|
+
description: "List all procedures across the ecosystem",
|
|
99
|
+
// It imports the register file of each package: that code runs, and it registers procedures
|
|
100
|
+
effects: { reads: ["fs", "registry"], writes: ["process", "registry"] },
|
|
101
|
+
args: [],
|
|
102
|
+
shorts: { namespace: "n" },
|
|
103
|
+
output: "json",
|
|
104
|
+
})
|
|
105
|
+
.handler(async (input, ctx) => {
|
|
106
|
+
return ecosystemProcedures(input, ctx);
|
|
107
|
+
})
|
|
108
|
+
.build();
|
|
109
|
+
// =============================================================================
|
|
110
|
+
// dag.* Procedures
|
|
111
|
+
// =============================================================================
|
|
112
|
+
const dagTraverseProcedure = createProcedure()
|
|
113
|
+
.path(["dag", "traverse"])
|
|
114
|
+
.input(zodAdapter(DagTraverseInputSchema))
|
|
115
|
+
.output(zodAdapter(DagTraverseOutputSchema))
|
|
116
|
+
.meta({
|
|
117
|
+
description: "Traverse ecosystem packages in dependency order, executing visit procedure for each",
|
|
118
|
+
// It runs the procedure refs of its input: a server with an expose rule limits what they call
|
|
119
|
+
tags: [RUNS_REFS_TAG],
|
|
120
|
+
// Its own effect is the scan of the workspace. The admission examines each visit call.
|
|
121
|
+
effects: { reads: ["fs"], writes: [] },
|
|
122
|
+
args: [],
|
|
123
|
+
shorts: { root: "r", concurrency: "j", continueOnError: "c", dryRun: "d" },
|
|
124
|
+
output: "streaming",
|
|
125
|
+
})
|
|
126
|
+
.handler(async (input, ctx) => {
|
|
127
|
+
return dagTraverse(input, ctx);
|
|
128
|
+
})
|
|
129
|
+
.build();
|
|
130
|
+
// =============================================================================
|
|
131
|
+
// core.* Procedures
|
|
132
|
+
// =============================================================================
|
|
133
|
+
const coreCatchProcedure = createProcedure()
|
|
134
|
+
.path(["core", "catch"])
|
|
135
|
+
.input(zodAdapter(CoreCatchInputSchema))
|
|
136
|
+
.output(zodAdapter(CoreCatchOutputSchema))
|
|
137
|
+
.meta({
|
|
138
|
+
description: "Execute a procedure with error handling",
|
|
139
|
+
// It runs the procedure refs of its input: a server with an expose rule limits what they call
|
|
140
|
+
tags: [RUNS_REFS_TAG],
|
|
141
|
+
// Control flow: no effects of its own. The admission examines each nested call.
|
|
142
|
+
effects: { reads: [], writes: [] },
|
|
143
|
+
args: [],
|
|
144
|
+
shorts: {},
|
|
145
|
+
output: "json",
|
|
146
|
+
})
|
|
147
|
+
.handler(async (input, ctx) => {
|
|
148
|
+
return coreCatch(input, ctx);
|
|
149
|
+
})
|
|
150
|
+
.build();
|
|
151
|
+
// =============================================================================
|
|
152
|
+
// Registration
|
|
153
|
+
// =============================================================================
|
|
154
|
+
/**
|
|
155
|
+
* The module of this package, for `createRegistry()`: its procedures as data. Importing this
|
|
156
|
+
* file registers nothing. (`register.ts` registers the same procedures in the global registry.)
|
|
157
|
+
*/
|
|
158
|
+
export const libModule = defineModule("@procedures/lib", [
|
|
159
|
+
// lib.* procedures (canonical home)
|
|
160
|
+
libScanProcedure,
|
|
161
|
+
libRenameProcedure,
|
|
162
|
+
libNewProcedure,
|
|
163
|
+
libAuditProcedure,
|
|
164
|
+
// ecosystem.* procedures
|
|
165
|
+
ecosystemProceduresProcedure,
|
|
166
|
+
// dag.* procedures (canonical home)
|
|
167
|
+
dagTraverseProcedure,
|
|
168
|
+
// core.* procedures
|
|
169
|
+
coreCatchProcedure,
|
|
170
|
+
], [fsModule, gitModule]);
|
|
171
|
+
export default libModule;
|
|
172
|
+
/**
|
|
173
|
+
* This function registers the procedures of @procedures/lib, and of the modules that it requires, in
|
|
174
|
+
* a registry. The default is the global registry. Importing this file registers nothing: the
|
|
175
|
+
* `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
176
|
+
*/
|
|
177
|
+
export function registerLibProcedures(registry = PROCEDURE_REGISTRY) {
|
|
178
|
+
registerModules(registry, [libModule]);
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAwB,kBAAkB,EAAE,eAAe,EAA0B,MAAM,oBAAoB,CAAC;AACjL,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,GAGhC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EAapB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,MAAM,gBAAgB,GAAG,eAAe,EAAE;KACvC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACrB,KAAK,CAAC,UAAU,CAAe,kBAAkB,CAAC,CAAC;KACnD,MAAM,CAAC,UAAU,CAAgB,mBAAmB,CAAC,CAAC;KACtD,IAAI,CAAC;IACJ,WAAW,EAAE,wCAAwC;IACrD,KAAK,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC;IACjE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACtC,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,MAAM;CACf,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAmB,EAAE,GAAqB,EAA0B,EAAE;IACpF,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,kBAAkB,GAAG,eAAe,EAAE;KACzC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACvB,KAAK,CAAC,UAAU,CAAiB,oBAAoB,CAAC,CAAC;KACvD,MAAM,CAAC,UAAU,CAAkB,qBAAqB,CAAC,CAAC;KAC1D,IAAI,CAAC;IACJ,WAAW,EAAE,uCAAuC;IACpD,KAAK,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC;IAC3D,+EAA+E;IAC/E,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC1C,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;IACvB,MAAM,EAAE,MAAM;CACf,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAqB,EAAE,GAAqB,EAA4B,EAAE;IACxF,OAAO,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,eAAe,GAAG,eAAe,EAAE;KACtC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KACpB,KAAK,CAAC,UAAU,CAAc,iBAAiB,CAAC,CAAC;KACjD,MAAM,CAAC,UAAU,CAAe,kBAAkB,CAAC,CAAC;KACpD,IAAI,CAAC;IACJ,WAAW,EAAE,uCAAuC;IACpD,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC;IACzE,4FAA4F;IAC5F,0FAA0F;IAC1F,2DAA2D;IAC3D,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE;IACzE,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;IACvB,MAAM,EAAE,MAAM;CACf,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAkB,EAAE,GAAqB,EAAyB,EAAE;IAClF,OAAO,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,iBAAiB,GAAG,eAAe,EAAE;KACxC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACtB,KAAK,CAAC,UAAU,CAAgB,mBAAmB,CAAC,CAAC;KACrD,MAAM,CAAC,UAAU,CAAiB,oBAAoB,CAAC,CAAC;KACxD,IAAI,CAAC;IACJ,WAAW,EAAE,qCAAqC;IAClD,KAAK,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC;IACtG,4FAA4F;IAC5F,oDAAoD;IACpD,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;IAC5F,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;IACpB,MAAM,EAAE,MAAM;CACf,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAoB,EAAE,GAAqB,EAA2B,EAAE;IACtF,OAAO,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,MAAM,4BAA4B,GAAG,eAAe,EAAE;KACnD,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;KACjC,KAAK,CAAC,UAAU,CAA2B,8BAA8B,CAAC,CAAC;KAC3E,MAAM,CAAC,UAAU,CAA4B,+BAA+B,CAAC,CAAC;KAC9E,IAAI,CAAC;IACJ,WAAW,EAAE,0CAA0C;IACvD,4FAA4F;IAC5F,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;IACvE,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE;IAC1B,MAAM,EAAE,MAAM;CACf,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAA+B,EAAE,GAAqB,EAAsC,EAAE;IAC5G,OAAO,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,MAAM,oBAAoB,GAAG,eAAe,EAAE;KAC3C,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;KACzB,KAAK,CAAC,UAAU,CAAmB,sBAAsB,CAAC,CAAC;KAC3D,MAAM,CAAC,UAAU,CAAoB,uBAAuB,CAAC,CAAC;KAC9D,IAAI,CAAC;IACJ,WAAW,EAAE,qFAAqF;IAClG,8FAA8F;IAC9F,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,uFAAuF;IACvF,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACtC,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC1E,MAAM,EAAE,WAAW;CACpB,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAuB,EAAE,GAAqB,EAA8B,EAAE;IAC5F,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,MAAM,kBAAkB,GAAG,eAAe,EAAE;KACzC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvB,KAAK,CAAC,UAAU,CAAiB,oBAAoB,CAAC,CAAC;KACvD,MAAM,CAAC,UAAU,CAAkB,qBAAqB,CAAC,CAAC;KAC1D,IAAI,CAAC;IACJ,WAAW,EAAE,yCAAyC;IACtD,8FAA8F;IAC9F,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,gFAAgF;IAChF,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAClC,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,MAAM;CACf,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAqB,EAAE,GAAqB,EAA4B,EAAE;IACxF,OAAO,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAoB,YAAY,CAAC,iBAAiB,EAAE;IACtE,oCAAoC;IACpC,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,yBAAyB;IACzB,4BAA4B;IAC5B,oCAAoC;IACpC,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;CACnB,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5B,eAAe,SAAS,CAAC;AAEzB;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAQ,GAAsB,kBAAkB;IACpF,eAAe,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core.catch procedure
|
|
3
|
+
*
|
|
4
|
+
* Wraps a procedure execution with error handling.
|
|
5
|
+
* The `try` procedure ref should use `$when: "catch"` so it's not
|
|
6
|
+
* executed during hydration but instead by this procedure.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* {
|
|
11
|
+
* $proc: ["core", "catch"],
|
|
12
|
+
* input: {
|
|
13
|
+
* try: {
|
|
14
|
+
* $proc: ["git", "commit"],
|
|
15
|
+
* input: { message: "auto" },
|
|
16
|
+
* $when: "catch" // Defer execution to catch procedure
|
|
17
|
+
* },
|
|
18
|
+
* handler: {
|
|
19
|
+
* $proc: ["core", "identity"],
|
|
20
|
+
* input: { value: { continue: true } },
|
|
21
|
+
* $when: "catch"
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import type { ProcedureContext } from "@procedures/client";
|
|
28
|
+
import type { CoreCatchInput, CoreCatchOutput } from "../../types.js";
|
|
29
|
+
/**
|
|
30
|
+
* Execute a procedure with error handling
|
|
31
|
+
*/
|
|
32
|
+
export declare function coreCatch(input: CoreCatchInput, ctx: ProcedureContext): Promise<CoreCatchOutput>;
|
|
33
|
+
//# sourceMappingURL=catch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../src/procedures/core/catch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,oBAAoB,CAAC;AAS1E,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE;;GAEG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,eAAe,CAAC,CAiG1B"}
|