@plurnk/plurnk-execs-jq 1.5.0 → 1.6.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/README.md +8 -8
- package/dist/Jq.d.ts +1 -1
- package/dist/Jq.d.ts.map +1 -1
- package/dist/Jq.js +4 -4
- package/dist/Jq.js.map +1 -1
- package/docs/jq.md +8 -3
- package/package.json +18 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @plurnk/plurnk-execs-jq
|
|
2
2
|
|
|
3
|
-
`jq` runtime executor for [plurnk-service](https://github.com/plurnk/plurnk-service)'s `exec` scheme. Drives
|
|
3
|
+
`jq` runtime executor for [plurnk-service](https://github.com/plurnk/plurnk-service)'s `exec` scheme. Drives `## EXEC0 [jq]` by shelling the system `jq` binary to filter/transform JSON — no third-party JSON-filter library.
|
|
4
4
|
|
|
5
5
|
A `@plurnk/plurnk-execs-*` sibling built on the [plurnk-execs](https://github.com/plurnk/plurnk-service/tree/main/plurnk-execs) framework.
|
|
6
6
|
|
|
@@ -10,13 +10,13 @@ The body is the jq program and defaults to `.` when empty. The optional target
|
|
|
10
10
|
is the data source. Without one, jq receives `-n` (null input), so the program
|
|
11
11
|
is self-contained.
|
|
12
12
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
13
|
+
| Heading / body | Runs | Purpose |
|
|
14
|
+
| --------------------------------------------------------------------- | --------------------------------- | ---------------------------------- |
|
|
15
|
+
| `## EXEC0 [jq]`<br>`{"a":1}` | `jq -n '{"a":1}'` | Construct or validate inline JSON. |
|
|
16
|
+
| `## EXEC0 [jq]`<br>`[1,2,3] \| add` | `jq -n '[1,2,3] \| add'` | Compute without input. |
|
|
17
|
+
| `## EXEC0 [jq] (data.json)`<br>`.users[].name` | `jq '.users[].name' data.json` | Filter a file. |
|
|
18
|
+
| `## EXEC0 [jq] (data.json)` | `jq '.' data.json` | Apply identity to a file. |
|
|
19
|
+
| `## EXEC0 [jq] (search:///1/2/3#results)`<br>`.[] \| .title` | Consumer materializes the target. | Filter a prior runtime's output. |
|
|
20
20
|
|
|
21
21
|
Output streams to `#results` as `application/jsonl`: one compact JSON value per
|
|
22
22
|
line ({§executor-output-address}).
|
package/dist/Jq.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export default class Jq extends BaseExecutor {
|
|
|
4
4
|
get channels(): Readonly<Record<string, ChannelDecl>>;
|
|
5
5
|
effect(target: string | null): Effect;
|
|
6
6
|
probe(signal?: AbortSignal): Promise<RuntimeAvailability>;
|
|
7
|
-
run({
|
|
7
|
+
run({ body, cwd, target, env, signal, write, setState }: ExecArgs): Promise<ExecResult>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=Jq.d.ts.map
|
package/dist/Jq.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Jq.d.ts","sourceRoot":"","sources":["../src/Jq.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAwB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAgB3G,MAAM,CAAC,OAAO,OAAO,EAAG,SAAQ,YAAY;IAKxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAEpD;IAGQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE7C;IAEc,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAevE;IAEK,GAAG,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"Jq.d.ts","sourceRoot":"","sources":["../src/Jq.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAwB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAgB3G,MAAM,CAAC,OAAO,OAAO,EAAG,SAAQ,YAAY;IAKxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAEpD;IAGQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE7C;IAEc,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAevE;IAEK,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAwF5F;CACJ"}
|
package/dist/Jq.js
CHANGED
|
@@ -5,8 +5,8 @@ import { BaseExecutor, ErrorDetail, Results } from "@plurnk/plurnk-execs";
|
|
|
5
5
|
// body = the jq program (defaults to `.` identity if empty)
|
|
6
6
|
// target = optional data source; present → jq reads that file; absent → `-n`
|
|
7
7
|
// (null input) so the body is self-contained.
|
|
8
|
-
// So
|
|
9
|
-
//
|
|
8
|
+
// So `## EXEC0 [jq] (data.json)` filters a file with its body, while a targetless
|
|
9
|
+
// `## EXEC0 [jq]` runs its body against null input. A tag-addressed prior stream can be the target
|
|
10
10
|
// once the consumer resolves it to a path ({§executor-output-address}).
|
|
11
11
|
//
|
|
12
12
|
// jq is a leaf process (no shell, no grandchildren), so a plain signal-based
|
|
@@ -43,13 +43,13 @@ export default class Jq extends BaseExecutor {
|
|
|
43
43
|
: { available: false, detail: `jq --version exited ${code}` }));
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
async run({
|
|
46
|
+
async run({ body, cwd, target, env, signal, write, setState }) {
|
|
47
47
|
const detailLimit = ErrorDetail.configuredLimit();
|
|
48
48
|
if (detailLimit === null) {
|
|
49
49
|
setState("results", "errored");
|
|
50
50
|
return ErrorDetail.invalidConfiguration("executor:jq");
|
|
51
51
|
}
|
|
52
|
-
const program =
|
|
52
|
+
const program = body.trim() || ".";
|
|
53
53
|
// target = the data-source file; spawn resolves a relative one against cwd
|
|
54
54
|
// (the workspace). Absent → -n, the program stands alone
|
|
55
55
|
// ({§executor-sinks}).
|
package/dist/Jq.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Jq.js","sourceRoot":"","sources":["../src/Jq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG1E,gFAAgF;AAChF,oBAAoB;AACpB,8DAA8D;AAC9D,+EAA+E;AAC/E,yDAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"Jq.js","sourceRoot":"","sources":["../src/Jq.ts"],"names":[],"mappings":"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"}
|
package/docs/jq.md
CHANGED
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
The system `jq` as a runtime: the **body is the jq program**, the **`(target)` is the data source**.
|
|
4
4
|
|
|
5
5
|
```plurnk
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
## EXEC0 [jq]
|
|
7
|
+
[1,2,3] | add
|
|
8
|
+
|
|
9
|
+
## EXEC0 [jq] (data.json)
|
|
10
|
+
.users[].name
|
|
11
|
+
|
|
12
|
+
## EXEC0 [jq] (search:///1/2/3#results)
|
|
13
|
+
.[] | .title
|
|
9
14
|
```
|
|
10
15
|
|
|
11
16
|
The first form has no input and uses `-n`. The second filters a file. The third
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-execs-jq",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "jq runtime executor for plurnk-service's exec scheme — shells the system jq binary to filter
|
|
3
|
+
"version": "1.6.0",
|
|
4
|
+
"description": "jq runtime executor for plurnk-service's exec scheme — shells the system jq binary to filter or transform JSON.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plurnk",
|
|
7
7
|
"exec",
|
|
@@ -35,7 +35,21 @@
|
|
|
35
35
|
{
|
|
36
36
|
"name": "jq",
|
|
37
37
|
"glyph": "🧰",
|
|
38
|
-
"
|
|
38
|
+
"invocation": {
|
|
39
|
+
"body": {
|
|
40
|
+
"role": "jq filter",
|
|
41
|
+
"required": false
|
|
42
|
+
},
|
|
43
|
+
"target": {
|
|
44
|
+
"role": "JSON input",
|
|
45
|
+
"required": false,
|
|
46
|
+
"kind": "resource"
|
|
47
|
+
},
|
|
48
|
+
"example": {
|
|
49
|
+
"target": "package.json",
|
|
50
|
+
"body": ".name"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
39
53
|
}
|
|
40
54
|
]
|
|
41
55
|
},
|
|
@@ -63,6 +77,6 @@
|
|
|
63
77
|
"prepublishOnly": "npm audit --audit-level=moderate && npm test"
|
|
64
78
|
},
|
|
65
79
|
"peerDependencies": {
|
|
66
|
-
"@plurnk/plurnk-execs": "^1.
|
|
80
|
+
"@plurnk/plurnk-execs": "^1.6.0"
|
|
67
81
|
}
|
|
68
82
|
}
|