@zenalexa/unicli 0.224.1 → 0.225.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/AGENTS.md +3 -3
- package/README.md +91 -91
- package/README.zh-CN.md +68 -68
- package/dist/adapters/xueqiu/extra.js +2 -2
- package/dist/adapters/xueqiu/extra.js.map +1 -1
- package/dist/browser/cdp-client.d.ts +10 -0
- package/dist/browser/cdp-client.d.ts.map +1 -1
- package/dist/browser/cdp-client.js +21 -0
- package/dist/browser/cdp-client.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/architecture.d.ts +3 -1
- package/dist/commands/architecture.d.ts.map +1 -1
- package/dist/commands/architecture.js +13 -5
- package/dist/commands/architecture.js.map +1 -1
- package/dist/commands/delivery.d.ts.map +1 -1
- package/dist/commands/delivery.js.map +1 -1
- package/dist/commands/describe.d.ts.map +1 -1
- package/dist/commands/describe.js +104 -9
- package/dist/commands/describe.js.map +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/dispatch.js +3 -13
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/do.d.ts +2 -1
- package/dist/commands/do.d.ts.map +1 -1
- package/dist/commands/do.js +43 -4
- package/dist/commands/do.js.map +1 -1
- package/dist/commands/social.d.ts.map +1 -1
- package/dist/commands/social.js +3 -13
- package/dist/commands/social.js.map +1 -1
- package/dist/core/architecture-tree.d.ts +26 -6
- package/dist/core/architecture-tree.d.ts.map +1 -1
- package/dist/core/architecture-tree.js +184 -40
- package/dist/core/architecture-tree.js.map +1 -1
- package/dist/core/capability-matrix.d.ts +63 -0
- package/dist/core/capability-matrix.d.ts.map +1 -0
- package/dist/core/capability-matrix.js +316 -0
- package/dist/core/capability-matrix.js.map +1 -0
- package/dist/core/command-contract-lint.d.ts.map +1 -1
- package/dist/core/command-contract-lint.js +3 -1
- package/dist/core/command-contract-lint.js.map +1 -1
- package/dist/core/command-contract.d.ts +10 -3
- package/dist/core/command-contract.d.ts.map +1 -1
- package/dist/core/command-contract.js +87 -5
- package/dist/core/command-contract.js.map +1 -1
- package/dist/discovery/core-catalog.d.ts +1 -0
- package/dist/discovery/core-catalog.d.ts.map +1 -1
- package/dist/discovery/core-catalog.js +22 -5
- package/dist/discovery/core-catalog.js.map +1 -1
- package/dist/engine/cascade.d.ts.map +1 -1
- package/dist/engine/cascade.js +21 -25
- package/dist/engine/cascade.js.map +1 -1
- package/dist/engine/chromium-cookies.d.ts +27 -0
- package/dist/engine/chromium-cookies.d.ts.map +1 -1
- package/dist/engine/chromium-cookies.js +53 -14
- package/dist/engine/chromium-cookies.js.map +1 -1
- package/dist/engine/cookie-capture.d.ts +30 -0
- package/dist/engine/cookie-capture.d.ts.map +1 -0
- package/dist/engine/cookie-capture.js +104 -0
- package/dist/engine/cookie-capture.js.map +1 -0
- package/dist/engine/cookie-extractor.d.ts.map +1 -1
- package/dist/engine/cookie-extractor.js +4 -12
- package/dist/engine/cookie-extractor.js.map +1 -1
- package/dist/engine/cookie-refresh.d.ts +59 -8
- package/dist/engine/cookie-refresh.d.ts.map +1 -1
- package/dist/engine/cookie-refresh.js +80 -58
- package/dist/engine/cookie-refresh.js.map +1 -1
- package/dist/engine/cookie-source.d.ts +110 -0
- package/dist/engine/cookie-source.d.ts.map +1 -0
- package/dist/engine/cookie-source.js +207 -0
- package/dist/engine/cookie-source.js.map +1 -0
- package/dist/engine/cookies.d.ts +37 -25
- package/dist/engine/cookies.d.ts.map +1 -1
- package/dist/engine/cookies.js +58 -157
- package/dist/engine/cookies.js.map +1 -1
- package/dist/engine/delivery/index.d.ts +2 -1
- package/dist/engine/delivery/index.d.ts.map +1 -1
- package/dist/engine/delivery/index.js +2 -1
- package/dist/engine/delivery/index.js.map +1 -1
- package/dist/engine/delivery/spec.d.ts +44 -0
- package/dist/engine/delivery/spec.d.ts.map +1 -0
- package/dist/engine/delivery/spec.js +82 -0
- package/dist/engine/delivery/spec.js.map +1 -0
- package/dist/engine/executor.d.ts +17 -6
- package/dist/engine/executor.d.ts.map +1 -1
- package/dist/engine/executor.js +131 -68
- package/dist/engine/executor.js.map +1 -1
- package/dist/engine/runtime.d.ts.map +1 -1
- package/dist/engine/runtime.js +9 -4
- package/dist/engine/runtime.js.map +1 -1
- package/dist/engine/step-observer.d.ts +62 -0
- package/dist/engine/step-observer.d.ts.map +1 -0
- package/dist/engine/step-observer.js +38 -0
- package/dist/engine/step-observer.js.map +1 -0
- package/dist/engine/steps/browser-helpers.d.ts.map +1 -1
- package/dist/engine/steps/browser-helpers.js +2 -8
- package/dist/engine/steps/browser-helpers.js.map +1 -1
- package/dist/engine/steps/fetch-text.d.ts.map +1 -1
- package/dist/engine/steps/fetch-text.js +106 -33
- package/dist/engine/steps/fetch-text.js.map +1 -1
- package/dist/engine/steps/fetch.d.ts +20 -0
- package/dist/engine/steps/fetch.d.ts.map +1 -1
- package/dist/engine/steps/fetch.js.map +1 -1
- package/dist/engine/steps/index.d.ts +2 -0
- package/dist/engine/steps/index.d.ts.map +1 -1
- package/dist/engine/steps/index.js +2 -0
- package/dist/engine/steps/index.js.map +1 -1
- package/dist/engine/steps/split-text.d.ts +26 -0
- package/dist/engine/steps/split-text.d.ts.map +1 -0
- package/dist/engine/steps/split-text.js +89 -0
- package/dist/engine/steps/split-text.js.map +1 -0
- package/dist/engine/steps/to-entries.d.ts +9 -0
- package/dist/engine/steps/to-entries.d.ts.map +1 -0
- package/dist/engine/steps/to-entries.js +27 -0
- package/dist/engine/steps/to-entries.js.map +1 -0
- package/dist/fast-path/handlers/discovery.d.ts.map +1 -1
- package/dist/fast-path/handlers/discovery.js +7 -7
- package/dist/fast-path/handlers/discovery.js.map +1 -1
- package/dist/manifest-compact.txt +1 -1
- package/dist/manifest.json +142 -1
- package/dist/mcp/tools.js +1 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output/auth-guidance.d.ts +17 -3
- package/dist/output/auth-guidance.d.ts.map +1 -1
- package/dist/output/auth-guidance.js +27 -3
- package/dist/output/auth-guidance.js.map +1 -1
- package/dist/output/error-map.d.ts.map +1 -1
- package/dist/output/error-map.js +4 -0
- package/dist/output/error-map.js.map +1 -1
- package/package.json +2 -2
- package/server.json +2 -2
- package/skills/unicli/SKILL.md +1 -1
- package/skills/unicli-claude-code/SKILL.md +1 -1
- package/skills/unicli-hermes/SKILL.md +1 -1
- package/src/adapters/12306/price.yaml +91 -0
- package/src/adapters/12306/stations.yaml +52 -0
- package/src/adapters/12306/trains.yaml +129 -0
- package/src/adapters/xueqiu/extra.ts +5 -2
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
//! @owner src::engine::steps::fetch_text
|
|
2
|
+
//! @does HTTP request returning raw text; optional session-cookie capture and bounded endpoint rotation
|
|
3
|
+
//! @needs ./fetch (FetchConfig), ../cookie-capture, ../ssrf, ../template, ../runtime-resource-guard
|
|
4
|
+
//! @feeds ./index (barrel), pipeline executor via registry "fetch_text"
|
|
5
|
+
//! @breaks PipelineError on http_error / network_error after retries
|
|
6
|
+
//! @invariants every fetched URL (incl. rotation candidates) passes assertSafeRequestUrl; cookie capture is host-scoped; rotation bounded by rotate_urls.length
|
|
7
|
+
//! @side-effects network I/O
|
|
8
|
+
//! @perf one fetch per attempt; rotation adds at most rotate_urls.length fetches
|
|
9
|
+
//! @concurrency stateless per call
|
|
10
|
+
//! @test tests/unit/engine/steps/fetch-text-session.test.ts
|
|
11
|
+
//! @stability stable
|
|
12
|
+
//! @since 2026-05-30 (capture/rotation added)
|
|
1
13
|
import { USER_AGENT } from "../../constants.js";
|
|
2
14
|
import { registerStep } from "../step-registry.js";
|
|
3
15
|
import { PipelineError } from "../executor.js";
|
|
@@ -5,32 +17,21 @@ import { assertSafeRequestUrl } from "../ssrf.js";
|
|
|
5
17
|
import { evalTemplate } from "../template.js";
|
|
6
18
|
import { getProxyAgent } from "../proxy.js";
|
|
7
19
|
import { assertRuntimeNetworkAllowed } from "../runtime-resource-guard.js";
|
|
20
|
+
import { parseSetCookiePairs, mergeCookieHeader, sameRegistrableHost, } from "../cookie-capture.js";
|
|
8
21
|
import { networkAccessForMethod, normalizeFetchAttempts, } from "./fetch.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
url,
|
|
17
|
-
access: networkAccessForMethod(config.method),
|
|
18
|
-
});
|
|
19
|
-
if (config.params) {
|
|
20
|
-
const params = new URLSearchParams();
|
|
21
|
-
for (const [k, v] of Object.entries(config.params)) {
|
|
22
|
-
params.set(k, evalTemplate(String(v), ctx));
|
|
23
|
-
}
|
|
24
|
-
url += (url.includes("?") ? "&" : "?") + params.toString();
|
|
22
|
+
/** Append resolved `params` to a URL, preserving an existing query string. */
|
|
23
|
+
function withParams(url, config, ctx) {
|
|
24
|
+
if (!config.params)
|
|
25
|
+
return url;
|
|
26
|
+
const params = new URLSearchParams();
|
|
27
|
+
for (const [k, v] of Object.entries(config.params)) {
|
|
28
|
+
params.set(k, evalTemplate(String(v), ctx));
|
|
25
29
|
}
|
|
30
|
+
return url + (url.includes("?") ? "&" : "?") + params.toString();
|
|
31
|
+
}
|
|
32
|
+
/** One request with the existing retry/backoff/error contract. */
|
|
33
|
+
async function fetchTextOnce(requestUrl, config, headers, stepIndex) {
|
|
26
34
|
const method = config.method ?? "GET";
|
|
27
|
-
const headers = {
|
|
28
|
-
"User-Agent": USER_AGENT,
|
|
29
|
-
...config.headers,
|
|
30
|
-
};
|
|
31
|
-
if (ctx.cookieHeader) {
|
|
32
|
-
headers["Cookie"] = ctx.cookieHeader;
|
|
33
|
-
}
|
|
34
35
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- dispatcher from undici not in standard RequestInit
|
|
35
36
|
const fetchInit = { method, headers };
|
|
36
37
|
const ftAgent = getProxyAgent();
|
|
@@ -40,10 +41,18 @@ export async function stepFetchText(ctx, config, stepIndex = -1) {
|
|
|
40
41
|
const baseDelay = config.backoff ?? 1000;
|
|
41
42
|
for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
|
|
42
43
|
try {
|
|
43
|
-
const resp = await fetch(
|
|
44
|
+
const resp = await fetch(requestUrl, fetchInit);
|
|
44
45
|
if (resp.ok) {
|
|
45
46
|
const text = await resp.text();
|
|
46
|
-
|
|
47
|
+
const getSetCookie = resp.headers.getSetCookie;
|
|
48
|
+
const setCookieLines = typeof getSetCookie === "function"
|
|
49
|
+
? getSetCookie.call(resp.headers)
|
|
50
|
+
: [];
|
|
51
|
+
return {
|
|
52
|
+
text,
|
|
53
|
+
finalUrl: resp.url || requestUrl,
|
|
54
|
+
setCookieLines,
|
|
55
|
+
};
|
|
47
56
|
}
|
|
48
57
|
const retryable = resp.status === 429 ||
|
|
49
58
|
resp.status === 500 ||
|
|
@@ -54,14 +63,14 @@ export async function stepFetchText(ctx, config, stepIndex = -1) {
|
|
|
54
63
|
await new Promise((r) => setTimeout(r, baseDelay * 2 ** (attempt - 1)));
|
|
55
64
|
continue;
|
|
56
65
|
}
|
|
57
|
-
throw new PipelineError(`HTTP ${resp.status} ${resp.statusText} from ${
|
|
66
|
+
throw new PipelineError(`HTTP ${resp.status} ${resp.statusText} from ${requestUrl}`, {
|
|
58
67
|
step: stepIndex,
|
|
59
68
|
action: "fetch_text",
|
|
60
|
-
config: { url, method },
|
|
69
|
+
config: { url: requestUrl, method },
|
|
61
70
|
errorType: "http_error",
|
|
62
|
-
url,
|
|
71
|
+
url: requestUrl,
|
|
63
72
|
statusCode: resp.status,
|
|
64
|
-
suggestion: `Check if the URL is still valid: ${
|
|
73
|
+
suggestion: `Check if the URL is still valid: ${requestUrl}`,
|
|
65
74
|
retryable,
|
|
66
75
|
alternatives: resp.status === 401 || resp.status === 403
|
|
67
76
|
? ["unicli auth setup <site>"]
|
|
@@ -75,13 +84,13 @@ export async function stepFetchText(ctx, config, stepIndex = -1) {
|
|
|
75
84
|
}
|
|
76
85
|
if (isLastAttempt) {
|
|
77
86
|
const message = err instanceof Error ? err.message : String(err);
|
|
78
|
-
throw new PipelineError(`fetch_text failed for ${
|
|
87
|
+
throw new PipelineError(`fetch_text failed for ${requestUrl}: ${message}`, {
|
|
79
88
|
step: stepIndex,
|
|
80
89
|
action: "fetch_text",
|
|
81
|
-
config: { url, method },
|
|
90
|
+
config: { url: requestUrl, method },
|
|
82
91
|
errorType: "network_error",
|
|
83
|
-
url,
|
|
84
|
-
suggestion: `Network fetch failed. Retry or check connectivity to: ${
|
|
92
|
+
url: requestUrl,
|
|
93
|
+
suggestion: `Network fetch failed. Retry or check connectivity to: ${requestUrl}`,
|
|
85
94
|
retryable: true,
|
|
86
95
|
alternatives: [],
|
|
87
96
|
});
|
|
@@ -91,5 +100,69 @@ export async function stepFetchText(ctx, config, stepIndex = -1) {
|
|
|
91
100
|
}
|
|
92
101
|
throw new Error("fetch_text: unreachable");
|
|
93
102
|
}
|
|
103
|
+
/** Does the parsed body carry the rotation signal field? */
|
|
104
|
+
function hasRotationSignal(text, field) {
|
|
105
|
+
try {
|
|
106
|
+
const parsed = JSON.parse(text);
|
|
107
|
+
return (parsed !== null &&
|
|
108
|
+
typeof parsed === "object" &&
|
|
109
|
+
field in parsed);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export async function stepFetchText(ctx, config, stepIndex = -1) {
|
|
116
|
+
const baseUrl = evalTemplate(config.url, ctx);
|
|
117
|
+
// Build the ordered candidate list. Without rotate_urls it is a single URL.
|
|
118
|
+
const candidates = config.rotate_urls && config.rotate_urls.length > 0
|
|
119
|
+
? config.rotate_urls.map((u) => evalTemplate(u, ctx))
|
|
120
|
+
: [baseUrl];
|
|
121
|
+
const headers = {
|
|
122
|
+
"User-Agent": USER_AGENT,
|
|
123
|
+
...config.headers,
|
|
124
|
+
};
|
|
125
|
+
if (ctx.cookieHeader) {
|
|
126
|
+
headers["Cookie"] = ctx.cookieHeader;
|
|
127
|
+
}
|
|
128
|
+
let cookieHeader = ctx.cookieHeader;
|
|
129
|
+
let lastResult = null;
|
|
130
|
+
for (let i = 0; i < candidates.length; i += 1) {
|
|
131
|
+
const requestUrl = withParams(candidates[i], config, ctx);
|
|
132
|
+
assertSafeRequestUrl(requestUrl);
|
|
133
|
+
assertRuntimeNetworkAllowed(ctx, {
|
|
134
|
+
action: "fetch_text",
|
|
135
|
+
step: stepIndex,
|
|
136
|
+
config,
|
|
137
|
+
url: requestUrl,
|
|
138
|
+
access: networkAccessForMethod(config.method),
|
|
139
|
+
});
|
|
140
|
+
if (cookieHeader)
|
|
141
|
+
headers["Cookie"] = cookieHeader;
|
|
142
|
+
const result = await fetchTextOnce(requestUrl, config, headers, stepIndex);
|
|
143
|
+
lastResult = result;
|
|
144
|
+
// Capture session cookies (host-scoped) so later steps can send them.
|
|
145
|
+
if (config.capture_cookies && result.setCookieLines.length > 0) {
|
|
146
|
+
if (sameRegistrableHost(requestUrl, result.finalUrl)) {
|
|
147
|
+
const captured = parseSetCookiePairs(result.setCookieLines);
|
|
148
|
+
const merged = mergeCookieHeader(cookieHeader, captured);
|
|
149
|
+
cookieHeader = merged === "" ? cookieHeader : merged;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Rotation: if the body signals the wrong endpoint and another candidate
|
|
153
|
+
// remains, advance. Bounded by candidates.length — cannot loop forever.
|
|
154
|
+
const isLastCandidate = i === candidates.length - 1;
|
|
155
|
+
if (config.rotate_on_field &&
|
|
156
|
+
!isLastCandidate &&
|
|
157
|
+
hasRotationSignal(result.text, config.rotate_on_field)) {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
const out = { ...ctx, data: lastResult?.text ?? "" };
|
|
163
|
+
if (cookieHeader !== undefined)
|
|
164
|
+
out.cookieHeader = cookieHeader;
|
|
165
|
+
return out;
|
|
166
|
+
}
|
|
94
167
|
registerStep("fetch_text", stepFetchText);
|
|
95
168
|
//# sourceMappingURL=fetch-text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-text.js","sourceRoot":"","sources":["../../../src/engine/steps/fetch-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAwB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"fetch-text.js","sourceRoot":"","sources":["../../../src/engine/steps/fetch-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,26 @@ export interface FetchConfig {
|
|
|
8
8
|
retry?: number;
|
|
9
9
|
backoff?: number;
|
|
10
10
|
cache?: number;
|
|
11
|
+
/**
|
|
12
|
+
* Capture the response `Set-Cookie` header(s) and merge them into the
|
|
13
|
+
* returned `ctx.cookieHeader` so a later step in the same pipeline can send
|
|
14
|
+
* them. Host-scoped: cookies from a cross-site final URL are dropped
|
|
15
|
+
* (see cookie-capture.ts). Default false. Honored by `fetch_text`.
|
|
16
|
+
*/
|
|
17
|
+
capture_cookies?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Closed set of endpoint URLs tried in order when `rotate_on_field` fires.
|
|
20
|
+
* Each candidate is independently validated by `assertSafeRequestUrl`.
|
|
21
|
+
* Rotation is bounded by the list length — it can never loop forever
|
|
22
|
+
* (keeps adapter control flow decidable). Honored by `fetch_text`.
|
|
23
|
+
*/
|
|
24
|
+
rotate_urls?: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Fixed top-level JSON field whose presence in a parsed response body
|
|
27
|
+
* signals "wrong endpoint, try the next `rotate_urls` candidate" (e.g.
|
|
28
|
+
* 12306's `c_url`). A closed key match, not an arbitrary expression.
|
|
29
|
+
*/
|
|
30
|
+
rotate_on_field?: string;
|
|
11
31
|
}
|
|
12
32
|
export declare function normalizeFetchAttempts(retry: number | undefined): number;
|
|
13
33
|
export declare function stepFetch(ctx: PipelineContext, config: FetchConfig, stepIndex?: number): Promise<PipelineContext>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/fetch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,gBAAgB,CAAC;AAQrE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/fetch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,gBAAgB,CAAC;AAQrE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIxE;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,WAAW,EACnB,SAAS,SAAK,GACb,OAAO,CAAC,eAAe,CAAC,CAwF1B;AAED,wBAAgB,sBAAsB,CAAC,MAAM,SAAQ,GAAG,MAAM,GAAG,OAAO,CAOvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/engine/steps/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAwB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/engine/steps/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,8 @@ export { stepFetch, type FetchConfig } from "./fetch.js";
|
|
|
19
19
|
export { stepFetchText } from "./fetch-text.js";
|
|
20
20
|
export { stepParseRss, type RssConfig } from "./parse-rss.js";
|
|
21
21
|
export { stepSelectXml, type SelectXmlConfig } from "./select-xml.js";
|
|
22
|
+
export { stepSplitText, type SplitTextConfig } from "./split-text.js";
|
|
23
|
+
export { stepToEntries, type ToEntriesConfig } from "./to-entries.js";
|
|
22
24
|
export { stepOauth2Token, type Oauth2TokenStepConfig } from "./oauth2-token.js";
|
|
23
25
|
export { stepExec, type ExecConfig } from "./exec.js";
|
|
24
26
|
export { stepWriteTemp, type WriteTempConfig } from "./write-temp.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
@@ -19,6 +19,8 @@ export { stepFetch } from "./fetch.js";
|
|
|
19
19
|
export { stepFetchText } from "./fetch-text.js";
|
|
20
20
|
export { stepParseRss } from "./parse-rss.js";
|
|
21
21
|
export { stepSelectXml } from "./select-xml.js";
|
|
22
|
+
export { stepSplitText } from "./split-text.js";
|
|
23
|
+
export { stepToEntries } from "./to-entries.js";
|
|
22
24
|
export { stepOauth2Token } from "./oauth2-token.js";
|
|
23
25
|
export { stepExec } from "./exec.js";
|
|
24
26
|
export { stepWriteTemp } from "./write-temp.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/steps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAA2B,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/steps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAA2B,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { PipelineContext } from "../executor.js";
|
|
2
|
+
export interface SplitTextConfig {
|
|
3
|
+
/**
|
|
4
|
+
* "blob" (default): split a single text payload (ctx.data string) into
|
|
5
|
+
* records by record_separator, then each record into fields.
|
|
6
|
+
* "per_item": ctx.data is already an array of strings; split EACH element
|
|
7
|
+
* into fields. record_separator is not required in this mode.
|
|
8
|
+
*/
|
|
9
|
+
mode?: "blob" | "per_item";
|
|
10
|
+
/** Delimiter between records (e.g. "@"). Required in blob mode. */
|
|
11
|
+
record_separator?: string;
|
|
12
|
+
/** Delimiter between fields within a record (e.g. "|"). Omit for a flat string array. */
|
|
13
|
+
field_separator?: string;
|
|
14
|
+
/** Column names mapped positionally onto each record's fields. Omit for a flat string array. */
|
|
15
|
+
columns?: string[];
|
|
16
|
+
/** Regex (string form) removed from the start of the blob payload before splitting. */
|
|
17
|
+
strip_prefix?: string;
|
|
18
|
+
/** Regex (string form) removed from the end of the blob payload before splitting. */
|
|
19
|
+
strip_suffix?: string;
|
|
20
|
+
/** Regex (string form, global) removed from EACH element in per_item mode (e.g. "%0A" line-wrap noise). */
|
|
21
|
+
strip_each?: string;
|
|
22
|
+
/** Decode each value/element before field-splitting. "uri" = decodeURIComponent. */
|
|
23
|
+
decode?: "uri";
|
|
24
|
+
}
|
|
25
|
+
export declare function stepSplitText(ctx: PipelineContext, config: SplitTextConfig): PipelineContext;
|
|
26
|
+
//# sourceMappingURL=split-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-text.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/split-text.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2GAA2G;IAC3G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AA2BD,wBAAgB,aAAa,CAC3B,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,eAAe,GACtB,eAAe,CAoCjB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
//! @owner src::engine::steps::split_text
|
|
2
|
+
//! @does Splits delimited text (a blob, or each element of an array) into column-mapped rows
|
|
3
|
+
//! @needs ../step-registry, ../executor
|
|
4
|
+
//! @feeds ./index (barrel), pipeline executor via registry "split_text"
|
|
5
|
+
//! @breaks Error when record_separator is absent in blob mode (config contract violation)
|
|
6
|
+
//! @invariants input ctx.data is never mutated; empty records are dropped
|
|
7
|
+
//! @side-effects none (pure transform)
|
|
8
|
+
//! @perf O(n) over the payload; one split per record, one per field
|
|
9
|
+
//! @concurrency pure; safe to call concurrently
|
|
10
|
+
//! @test tests/unit/engine/steps/split-text.test.ts
|
|
11
|
+
//! @stability stable
|
|
12
|
+
//! @since 2026-05-30
|
|
13
|
+
import { registerStep } from "../step-registry.js";
|
|
14
|
+
function splitIntoRow(record, fieldSep, columns, decode) {
|
|
15
|
+
const fields = record.split(fieldSep);
|
|
16
|
+
const row = {};
|
|
17
|
+
columns.forEach((col, i) => {
|
|
18
|
+
const raw = fields[i] ?? "";
|
|
19
|
+
row[col] = decode === "uri" ? safeDecodeUri(raw) : raw;
|
|
20
|
+
});
|
|
21
|
+
return row;
|
|
22
|
+
}
|
|
23
|
+
function safeDecodeUri(value) {
|
|
24
|
+
try {
|
|
25
|
+
return decodeURIComponent(value);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// REASON: malformed percent-escapes from a third-party payload must not
|
|
29
|
+
// crash the pipeline; fall back to the raw value.
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function stepSplitText(ctx, config) {
|
|
34
|
+
if (config?.mode === "per_item") {
|
|
35
|
+
return splitPerItem(ctx, config);
|
|
36
|
+
}
|
|
37
|
+
if (!config || typeof config.record_separator !== "string") {
|
|
38
|
+
throw new Error("split_text step requires a record_separator");
|
|
39
|
+
}
|
|
40
|
+
let raw = String(ctx.data ?? "");
|
|
41
|
+
if (config.strip_prefix) {
|
|
42
|
+
raw = raw.replace(new RegExp(config.strip_prefix), "");
|
|
43
|
+
}
|
|
44
|
+
if (config.strip_suffix) {
|
|
45
|
+
raw = raw.replace(new RegExp(config.strip_suffix), "");
|
|
46
|
+
}
|
|
47
|
+
if (raw === "") {
|
|
48
|
+
return { ...ctx, data: [] };
|
|
49
|
+
}
|
|
50
|
+
const records = raw
|
|
51
|
+
.split(config.record_separator)
|
|
52
|
+
.filter((r) => r.length > 0);
|
|
53
|
+
if (!config.columns || config.field_separator === undefined) {
|
|
54
|
+
return { ...ctx, data: records };
|
|
55
|
+
}
|
|
56
|
+
const columns = config.columns;
|
|
57
|
+
const fieldSep = config.field_separator;
|
|
58
|
+
const rows = records.map((record) => splitIntoRow(record, fieldSep, columns, config.decode));
|
|
59
|
+
return { ...ctx, data: rows };
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* per_item mode: ctx.data is an array of strings (e.g. 12306 queryX
|
|
63
|
+
* `data.result[]`). Optionally strip a noise regex from and URL-decode each
|
|
64
|
+
* element, then split it into a column-mapped row.
|
|
65
|
+
*/
|
|
66
|
+
function splitPerItem(ctx, config) {
|
|
67
|
+
if (!Array.isArray(ctx.data)) {
|
|
68
|
+
return { ...ctx, data: [] };
|
|
69
|
+
}
|
|
70
|
+
const stripEach = config.strip_each
|
|
71
|
+
? new RegExp(config.strip_each, "g")
|
|
72
|
+
: null;
|
|
73
|
+
const out = ctx.data.map((element) => {
|
|
74
|
+
let value = String(element ?? "");
|
|
75
|
+
if (stripEach)
|
|
76
|
+
value = value.replace(stripEach, "");
|
|
77
|
+
if (config.decode === "uri")
|
|
78
|
+
value = safeDecodeUri(value);
|
|
79
|
+
if (!config.columns || config.field_separator === undefined) {
|
|
80
|
+
return value;
|
|
81
|
+
}
|
|
82
|
+
// decode already applied to the whole element above; split into fields
|
|
83
|
+
// without re-decoding per field.
|
|
84
|
+
return splitIntoRow(value, config.field_separator, config.columns, undefined);
|
|
85
|
+
});
|
|
86
|
+
return { ...ctx, data: out };
|
|
87
|
+
}
|
|
88
|
+
registerStep("split_text", stepSplitText);
|
|
89
|
+
//# sourceMappingURL=split-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-text.js","sourceRoot":"","sources":["../../../src/engine/steps/split-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PipelineContext } from "../executor.js";
|
|
2
|
+
export interface ToEntriesConfig {
|
|
3
|
+
/** Field name for the object key in each emitted row (default "key"). */
|
|
4
|
+
key_name?: string;
|
|
5
|
+
/** Field name for the object value in each emitted row (default "value"). */
|
|
6
|
+
value_name?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function stepToEntries(ctx: PipelineContext, config: ToEntriesConfig): PipelineContext;
|
|
9
|
+
//# sourceMappingURL=to-entries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-entries.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/to-entries.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,eAAe,GACtB,eAAe,CAYjB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//! @owner src::engine::steps::to_entries
|
|
2
|
+
//! @does Converts a plain object in ctx.data into a [{key,value}] array for map/filter
|
|
3
|
+
//! @needs ../step-registry, ../executor
|
|
4
|
+
//! @feeds ./index (barrel), pipeline executor via registry "to_entries"
|
|
5
|
+
//! @breaks never throws; non-object input yields []
|
|
6
|
+
//! @invariants input ctx.data is never mutated; an existing array passes through unchanged
|
|
7
|
+
//! @side-effects none (pure)
|
|
8
|
+
//! @perf O(n) over the object's own enumerable keys
|
|
9
|
+
//! @concurrency pure
|
|
10
|
+
//! @test tests/unit/engine/steps/to-entries.test.ts
|
|
11
|
+
//! @stability stable
|
|
12
|
+
//! @since 2026-05-30
|
|
13
|
+
import { registerStep } from "../step-registry.js";
|
|
14
|
+
export function stepToEntries(ctx, config) {
|
|
15
|
+
const data = ctx.data;
|
|
16
|
+
if (Array.isArray(data))
|
|
17
|
+
return ctx;
|
|
18
|
+
if (data === null || typeof data !== "object") {
|
|
19
|
+
return { ...ctx, data: [] };
|
|
20
|
+
}
|
|
21
|
+
const keyName = config?.key_name ?? "key";
|
|
22
|
+
const valueName = config?.value_name ?? "value";
|
|
23
|
+
const rows = Object.entries(data).map(([k, v]) => ({ [keyName]: k, [valueName]: v }));
|
|
24
|
+
return { ...ctx, data: rows };
|
|
25
|
+
}
|
|
26
|
+
registerStep("to_entries", stepToEntries);
|
|
27
|
+
//# sourceMappingURL=to-entries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-entries.js","sourceRoot":"","sources":["../../../src/engine/steps/to-entries.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,8FAA8F;AAC9F,8CAA8C;AAC9C,8EAA8E;AAC9E,yDAAyD;AACzD,4FAA4F;AAC5F,6BAA6B;AAC7B,2DAA2D;AAC3D,qBAAqB;AACrB,2DAA2D;AAC3D,uBAAuB;AACvB,2BAA2B;AAE3B,OAAO,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AAUrE,MAAM,UAAU,aAAa,CAC3B,GAAoB,EACpB,MAAuB;IAEvB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,IAAI,OAAO,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,CAAC,GAAG,CAC9D,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;IACF,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,YAAY,CAAC,YAAY,EAAE,aAA4B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/fast-path/handlers/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/fast-path/handlers/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAyBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAKL,KAAK,EAAE,EAER,MAAM,cAAc,CAAC;AAEtB,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CA4E9D;AA0CD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAoEhE;AAiCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAyKlE;AAoCD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CA4DhE"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { searchDocuments, } from "../../discovery/search.js";
|
|
16
16
|
import { getCoreDiscoveryCommand, listCoreDiscoveryCommands, listCoreDiscoverySites, } from "../../discovery/core-catalog.js";
|
|
17
|
+
import { buildCoreCommandContract } from "../../core/command-contract.js";
|
|
17
18
|
import { buildMacosDynamicCommands, discoverMacosDynamicData, dynamicMacosDiscoveryEnabled, } from "../../discovery/macos-dynamic.js";
|
|
18
19
|
import { buildDefaultConfig } from "../../engine/repair/config.js";
|
|
19
20
|
import { resolveOperationAdapterPath, resolveOperationTargetSurface, } from "../../engine/operation-policy.js";
|
|
@@ -323,6 +324,7 @@ export function handleDescribe(parsed, io) {
|
|
|
323
324
|
}
|
|
324
325
|
function describeCoreCommand(command) {
|
|
325
326
|
const args = [...(command.args ?? [])];
|
|
327
|
+
const contract = buildCoreCommandContract({ command });
|
|
326
328
|
return {
|
|
327
329
|
command: `unicli ${command.site} ${command.command}`,
|
|
328
330
|
description: command.description,
|
|
@@ -330,8 +332,10 @@ function describeCoreCommand(command) {
|
|
|
330
332
|
strategy: "public",
|
|
331
333
|
auth: false,
|
|
332
334
|
browser: command.type === "browser",
|
|
333
|
-
target_surface:
|
|
334
|
-
|
|
335
|
+
target_surface: contract.effect.target_surface,
|
|
336
|
+
...(contract.identity.source_path
|
|
337
|
+
? { source_path: contract.identity.source_path }
|
|
338
|
+
: {}),
|
|
335
339
|
args_schema: argsToJsonSchema(args),
|
|
336
340
|
example_stdin: buildExample(args),
|
|
337
341
|
channels: command.channels ?? buildChannels(command.site, command.command, args),
|
|
@@ -345,13 +349,9 @@ function describeCoreCommand(command) {
|
|
|
345
349
|
description: "Run the core command",
|
|
346
350
|
},
|
|
347
351
|
],
|
|
352
|
+
contract,
|
|
348
353
|
};
|
|
349
354
|
}
|
|
350
|
-
function coreCommandSourcePath(site) {
|
|
351
|
-
if (site === "browser")
|
|
352
|
-
return "src/commands/browser/index.ts";
|
|
353
|
-
return `src/commands/${site}.ts`;
|
|
354
|
-
}
|
|
355
355
|
export function handleRepair(parsed, io) {
|
|
356
356
|
const startedAt = Date.now();
|
|
357
357
|
let dryRun = parsed.dryRun;
|