@plurnk/plurnk-execs 0.4.2 → 0.4.3
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/SPEC.md +1 -1
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +30 -7
- package/dist/discover.js.map +1 -1
- package/package.json +1 -9
package/SPEC.md
CHANGED
|
@@ -95,7 +95,7 @@ The envelope is mirrored locally (`TelemetryEvent`, `ContentOffset`, `LogCoordin
|
|
|
95
95
|
|
|
96
96
|
## §3 Discovery
|
|
97
97
|
|
|
98
|
-
`discover(options?) → { registry }`. Scans `<cwd>/node_modules
|
|
98
|
+
`discover(options?) → { registry }`. Scans **every installed package** under `<cwd>/node_modules` — scope-agnostic (scoped and unscoped) — for those declaring `plurnk.kind === "exec"`, and registers each runtime tag from `plurnk.runtimes[]`. The scan is deliberately not limited to `@plurnk/*`: a **third party** can publish an executor under their own scope (`@acme/acme-execs-foo`) and have it discovered with no involvement from this project. (For the batteries-included set, an aggregator package — `@plurnk/plurnk-execs-all` — depends on the framework's daughters flat so one install surfaces them all; the framework itself stays contract-only.)
|
|
99
99
|
|
|
100
100
|
```json
|
|
101
101
|
{
|
package/dist/discover.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAY,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAY,MAAM,YAAY,CAAC;AAoBvE,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CAkBhF"}
|
package/dist/discover.js
CHANGED
|
@@ -3,8 +3,10 @@ import path from "node:path";
|
|
|
3
3
|
// Scan installed executor packages and build the runtime-tag registry the
|
|
4
4
|
// consuming scheme dispatches on. Parallel to plurnk-mimetypes' discover().
|
|
5
5
|
//
|
|
6
|
-
// Default scan target: `<cwd>/node_modules
|
|
7
|
-
//
|
|
6
|
+
// Default scan target: every installed package under `<cwd>/node_modules` —
|
|
7
|
+
// scope-agnostic, so third-party executors (`@acme/foo`) are discovered too,
|
|
8
|
+
// not just `@plurnk/*`. Tests and unusual layouts can pass `packageDirs`
|
|
9
|
+
// explicitly to skip the scan.
|
|
8
10
|
//
|
|
9
11
|
// A package is recognized as an executor when its `package.json` declares
|
|
10
12
|
// `plurnk.kind === "exec"` and exposes one or more runtime tags via
|
|
@@ -31,18 +33,39 @@ export async function discover(options = {}) {
|
|
|
31
33
|
}
|
|
32
34
|
return { registry };
|
|
33
35
|
}
|
|
36
|
+
// Enumerate every installed package directory — scoped (`@scope/name`) and
|
|
37
|
+
// unscoped (`name`) — under `<cwd>/node_modules`. The scan is scope-agnostic so
|
|
38
|
+
// a THIRD PARTY can publish an executor under their own scope (`@acme/foo`) and
|
|
39
|
+
// have it discovered with no involvement from us; `readExecInfos` keeps only the
|
|
40
|
+
// packages that declare `plurnk.kind === "exec"`.
|
|
34
41
|
async function defaultPackageDirs(cwd) {
|
|
35
|
-
const
|
|
42
|
+
const nm = path.join(cwd, "node_modules");
|
|
36
43
|
let entries;
|
|
37
44
|
try {
|
|
38
|
-
entries = await fs.readdir(
|
|
45
|
+
entries = await fs.readdir(nm, { withFileTypes: true });
|
|
39
46
|
}
|
|
40
47
|
catch {
|
|
41
48
|
return [];
|
|
42
49
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
.
|
|
50
|
+
const dirs = [];
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
if (!entry.isDirectory() || entry.name === ".bin" || entry.name === ".cache")
|
|
53
|
+
continue;
|
|
54
|
+
if (entry.name.startsWith("@")) {
|
|
55
|
+
const scopeDir = path.join(nm, entry.name);
|
|
56
|
+
try {
|
|
57
|
+
const scoped = await fs.readdir(scopeDir, { withFileTypes: true });
|
|
58
|
+
for (const s of scoped)
|
|
59
|
+
if (s.isDirectory())
|
|
60
|
+
dirs.push(path.join(scopeDir, s.name));
|
|
61
|
+
}
|
|
62
|
+
catch { /* unreadable scope dir — skip */ }
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
dirs.push(path.join(nm, entry.name));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return dirs;
|
|
46
69
|
}
|
|
47
70
|
// Produce one ExecInfo per declared runtime tag. Returns [] for non-executor
|
|
48
71
|
// packages or invalid declarations.
|
package/dist/discover.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,0EAA0E;AAC1E,4EAA4E;AAC5E,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,0EAA0E;AAC1E,4EAA4E;AAC5E,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,yEAAyE;AACzE,+BAA+B;AAC/B,EAAE;AACF,0EAA0E;AAC1E,oEAAoE;AACpE,4EAA4E;AAC5E,6EAA6E;AAC7E,kEAAkE;AAClE,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,2EAA2E;AAC3E,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAA2B,EAAE;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3F,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACX,4BAA4B,IAAI,CAAC,OAAO,oBAAoB;sBAC1D,GAAG,QAAQ,CAAC,WAAW,QAAQ,IAAI,CAAC,WAAW,EAAE,CACtD,CAAC;YACN,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,2EAA2E;AAC3E,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,kDAAkD;AAClD,KAAK,UAAU,kBAAkB,CAAC,GAAW;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,IAAI,OAAmD,CAAC;IACxD,IAAI,CAAC;QACD,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvF,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,KAAK,MAAM,CAAC,IAAI,MAAM;oBAAE,IAAI,CAAC,CAAC,WAAW,EAAE;wBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxF,CAAC;YAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,oCAAoC;AACpC,KAAK,UAAU,aAAa,CAAC,GAAW;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAiC,CAAC;IACpD,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAElD,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE;YAAE,SAAS;QAC1D,KAAK,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACjD,WAAW;SACd,CAAC,CAAC;IACP,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-execs",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Framework + contract for the @plurnk/plurnk-execs-* runtime executor family.",
|
|
5
5
|
"keywords": ["plurnk", "exec", "runtime", "executor"],
|
|
6
6
|
"homepage": "https://github.com/plurnk/plurnk-execs#readme",
|
|
@@ -40,14 +40,6 @@
|
|
|
40
40
|
"build": "npm run build:dist",
|
|
41
41
|
"prepare": "npm run build"
|
|
42
42
|
},
|
|
43
|
-
"dependencies": {
|
|
44
|
-
"@plurnk/plurnk-execs-common": "0.2.1",
|
|
45
|
-
"@plurnk/plurnk-execs-search": "0.2.3",
|
|
46
|
-
"@plurnk/plurnk-execs-sqlite": "0.1.3",
|
|
47
|
-
"@plurnk/plurnk-execs-wasm": "0.1.2",
|
|
48
|
-
"@plurnk/plurnk-execs-git": "0.1.1",
|
|
49
|
-
"@plurnk/plurnk-execs-jq": "0.1.1"
|
|
50
|
-
},
|
|
51
43
|
"devDependencies": {
|
|
52
44
|
"@types/node": "^25.8.0",
|
|
53
45
|
"typescript": "^6.0.3"
|