pipework 0.56.1 → 0.57.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 +11 -0
- package/REFERENCE.md +5 -1
- package/dist/REFERENCE.md +46 -11
- package/dist/core/config/discover.js +1 -1
- package/dist/core/config/discover.js.map +1 -1
- package/dist/core/config/ts-resolve-hooks.d.ts.map +1 -1
- package/dist/core/config/ts-resolve-hooks.js +18 -7
- package/dist/core/config/ts-resolve-hooks.js.map +1 -1
- package/dist/data/db/namespace.d.ts +1 -1
- package/dist/data/db/namespace.d.ts.map +1 -1
- package/dist/data/db/namespace.js +1 -1
- package/dist/data/db/namespace.js.map +1 -1
- package/dist/data/domain/types.d.ts +6 -0
- package/dist/data/domain/types.d.ts.map +1 -1
- package/dist/data/write/audit/audit-select.d.ts +3 -0
- package/dist/data/write/audit/audit-select.d.ts.map +1 -1
- package/dist/data/write/audit/audit-select.js +1 -1
- package/dist/data/write/audit/audit-select.js.map +1 -1
- package/dist/data/write/audit/cte-compile.js +2 -2
- package/dist/data/write/audit/cte-compile.js.map +1 -1
- package/dist/data/write/audit/decode-returning.d.ts +3 -0
- package/dist/data/write/audit/decode-returning.d.ts.map +1 -0
- package/dist/data/write/audit/decode-returning.js +42 -0
- package/dist/data/write/audit/decode-returning.js.map +1 -0
- package/dist/data/write/audit/final-select.d.ts +6 -0
- package/dist/data/write/audit/final-select.d.ts.map +1 -1
- package/dist/data/write/audit/final-select.js +11 -1
- package/dist/data/write/audit/final-select.js.map +1 -1
- package/dist/data/write/audit/read-touches.d.ts +2 -2
- package/dist/data/write/audit/read-touches.d.ts.map +1 -1
- package/dist/data/write/audit/read-touches.js +9 -8
- package/dist/data/write/audit/read-touches.js.map +1 -1
- package/dist/data/write/audit/touch-match.d.ts +11 -0
- package/dist/data/write/audit/touch-match.d.ts.map +1 -0
- package/dist/data/write/audit/touch-match.js +66 -0
- package/dist/data/write/audit/touch-match.js.map +1 -0
- package/dist/data/write/execute.d.ts.map +1 -1
- package/dist/data/write/execute.js +17 -19
- package/dist/data/write/execute.js.map +1 -1
- package/dist/test/vitest-plugin.d.ts.map +1 -1
- package/dist/test/vitest-plugin.js +14 -2
- package/dist/test/vitest-plugin.js.map +1 -1
- package/dist/trace/external/record.js +1 -1
- package/dist/trace/external/record.js.map +1 -1
- package/dist/trace/runtime/flow-step.d.ts +7 -1
- package/dist/trace/runtime/flow-step.d.ts.map +1 -1
- package/dist/trace/runtime/flow-step.js +11 -5
- package/dist/trace/runtime/flow-step.js.map +1 -1
- package/dist/trace/runtime/step-buffer.d.ts +9 -9
- package/dist/trace/runtime/step-buffer.d.ts.map +1 -1
- package/dist/trace/runtime/step-buffer.js +4 -4
- package/dist/trace/runtime/step-buffer.js.map +1 -1
- package/dist/trace/transformer/apply.d.ts +18 -0
- package/dist/trace/transformer/apply.d.ts.map +1 -0
- package/dist/trace/transformer/apply.js +67 -0
- package/dist/trace/transformer/apply.js.map +1 -0
- package/dist/trace/transformer/build-meta-literal.d.ts +5 -1
- package/dist/trace/transformer/build-meta-literal.d.ts.map +1 -1
- package/dist/trace/transformer/build-meta-literal.js +11 -2
- package/dist/trace/transformer/build-meta-literal.js.map +1 -1
- package/dist/trace/transformer/transform-flow-steps.d.ts.map +1 -1
- package/dist/trace/transformer/transform-flow-steps.js +5 -4
- package/dist/trace/transformer/transform-flow-steps.js.map +1 -1
- package/dist/trace/transformer/wrap-function-declaration.d.ts +2 -1
- package/dist/trace/transformer/wrap-function-declaration.d.ts.map +1 -1
- package/dist/trace/transformer/wrap-function-declaration.js +2 -2
- package/dist/trace/transformer/wrap-function-declaration.js.map +1 -1
- package/dist/trace/transformer/wrap-variable-declaration.d.ts +2 -1
- package/dist/trace/transformer/wrap-variable-declaration.d.ts.map +1 -1
- package/dist/trace/transformer/wrap-variable-declaration.js +2 -2
- package/dist/trace/transformer/wrap-variable-declaration.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Maps a flow step's `@touches Entity:verb` targets onto the table a write hits.
|
|
2
|
+
//
|
|
3
|
+
// A touch's `Entity` matches a table when:
|
|
4
|
+
// (a) the definition declares `define(name, fields, { auditEntity })` and it
|
|
5
|
+
// equals `Entity` exactly; otherwise
|
|
6
|
+
// (b) the normalized names agree: lowercase with underscores removed, with the
|
|
7
|
+
// table name optionally ending in `s` or `es` (`Version` matches
|
|
8
|
+
// `version` / `versions`; `DocumentVersion` matches `document_versions`).
|
|
9
|
+
//
|
|
10
|
+
// A write is audited only under the touches that match its table. A touch whose
|
|
11
|
+
// entity matches no registered definition cannot be audited by any write, so a
|
|
12
|
+
// write under it is refused rather than silently unaudited.
|
|
13
|
+
import { definitions } from '../../domain/define.js';
|
|
14
|
+
function normalize(name) {
|
|
15
|
+
return name.toLowerCase().replace(/_/g, '');
|
|
16
|
+
}
|
|
17
|
+
export function touchMatchesTable(entity, table) {
|
|
18
|
+
const declared = table.$options.auditEntity;
|
|
19
|
+
if (declared !== undefined)
|
|
20
|
+
return declared === entity;
|
|
21
|
+
const want = normalize(entity);
|
|
22
|
+
const have = normalize(table.$name);
|
|
23
|
+
if (have === want)
|
|
24
|
+
return true;
|
|
25
|
+
return (have.endsWith('es') && have.slice(0, -2) === want) ||
|
|
26
|
+
(have.endsWith('s') && have.slice(0, -1) === want);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The touches a write to `table` is audited under. Throws when any of the
|
|
30
|
+
* step's touches names an entity no registered definition matches.
|
|
31
|
+
*/
|
|
32
|
+
export function touchesForTable(table, touches) {
|
|
33
|
+
const all = [...definitions().values()];
|
|
34
|
+
for (const t of touches) {
|
|
35
|
+
if (touchMatchesTable(t.entity, table))
|
|
36
|
+
continue;
|
|
37
|
+
if (all.some(d => touchMatchesTable(t.entity, d)))
|
|
38
|
+
continue;
|
|
39
|
+
const near = closest(t.entity, all.map(d => d.$name));
|
|
40
|
+
throw new Error(`[pipework] @touches entity "${t.entity}" matches no defined table, so a write under it cannot be audited. ` +
|
|
41
|
+
(near.length > 0 ? `Closest table names: ${near.join(', ')}. ` : '') +
|
|
42
|
+
'Name the entity after the table (case-insensitive, underscores ignored, plural allowed) ' +
|
|
43
|
+
"or set define(name, fields, { auditEntity: '<Entity>' }) on the table.");
|
|
44
|
+
}
|
|
45
|
+
return touches.filter(t => touchMatchesTable(t.entity, table));
|
|
46
|
+
}
|
|
47
|
+
function closest(entity, names) {
|
|
48
|
+
const want = normalize(entity);
|
|
49
|
+
return names
|
|
50
|
+
.map(n => ({ n, d: editDistance(want, normalize(n)) }))
|
|
51
|
+
.sort((a, b) => a.d - b.d)
|
|
52
|
+
.slice(0, 3)
|
|
53
|
+
.map(x => x.n);
|
|
54
|
+
}
|
|
55
|
+
function editDistance(a, b) {
|
|
56
|
+
let prev = Array.from({ length: b.length + 1 }, (_, j) => j);
|
|
57
|
+
for (let i = 1; i <= a.length; i++) {
|
|
58
|
+
const cur = [i];
|
|
59
|
+
for (let j = 1; j <= b.length; j++) {
|
|
60
|
+
cur[j] = Math.min(prev[j] + 1, cur[j - 1] + 1, prev[j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1));
|
|
61
|
+
}
|
|
62
|
+
prev = cur;
|
|
63
|
+
}
|
|
64
|
+
return prev[b.length];
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=touch-match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touch-match.js","sourceRoot":"","sources":["../../../../src/data/write/audit/touch-match.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/data/write/execute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/data/write/execute.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,wBAAsB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAqCtE"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// Execution path for the write surface. Two branches: vanilla DML via drizzle
|
|
2
2
|
// when there is no active audit-emitting step, and a single statement with
|
|
3
3
|
// `before` / `updated|inserted|deleted|upserted` / `audit_inserts` CTEs
|
|
4
|
-
// when the current `flow_step` carries `@touches
|
|
5
|
-
// the same observable return
|
|
4
|
+
// when the current `flow_step` carries a `@touches` target for the written
|
|
5
|
+
// table. The two branches produce the same observable return (the CTE rows are
|
|
6
|
+
// decoded through the table's columns) — the difference is whether an audit_record
|
|
6
7
|
// row lands atomically with the write.
|
|
7
8
|
//
|
|
8
9
|
// Bulk-write chunking (Q8 / Phase 6c): when an insert/upsert under audit
|
|
@@ -15,19 +16,25 @@
|
|
|
15
16
|
import { pipe, pipeRaw } from '../db/db.js';
|
|
16
17
|
import { getContext } from '../../request/context/store.js';
|
|
17
18
|
import { compileAuditWrite } from './audit/cte-compile.js';
|
|
19
|
+
import { touchesForTable } from './audit/touch-match.js';
|
|
20
|
+
import { decodeReturning } from './audit/decode-returning.js';
|
|
18
21
|
import { resolveActorId } from './audit/actor.js';
|
|
19
22
|
export async function executeWrite(state) {
|
|
20
23
|
const db = pipe(state.table.$options.database);
|
|
21
24
|
const flow = getContext();
|
|
22
25
|
if (flow !== undefined && flow.trace !== null) {
|
|
23
26
|
const stepCtx = flow.trace.buffer.currentStep();
|
|
24
|
-
|
|
27
|
+
// Only the touches whose entity is this table audit the write; with none,
|
|
28
|
+
// the write takes the vanilla branch below.
|
|
29
|
+
const matched = stepCtx === null ? [] : touchesForTable(state.table, stepCtx.touches);
|
|
30
|
+
if (stepCtx !== null && matched.length > 0) {
|
|
25
31
|
const auditCtx = {
|
|
26
32
|
step: stepCtx,
|
|
33
|
+
touches: matched,
|
|
27
34
|
actorId: resolveActorId(flow),
|
|
28
35
|
tenantId: flow.tenant,
|
|
29
36
|
};
|
|
30
|
-
const chunkValueSize = computeChunkValueSize(flow, state,
|
|
37
|
+
const chunkValueSize = computeChunkValueSize(flow, state, matched.length);
|
|
31
38
|
if (chunkValueSize !== null) {
|
|
32
39
|
return executeChunkedAuditWrite(state, auditCtx, chunkValueSize);
|
|
33
40
|
}
|
|
@@ -39,8 +46,9 @@ export async function executeWrite(state) {
|
|
|
39
46
|
// its per-table filtering.
|
|
40
47
|
const rawDb = pipeRaw(state.table.$options.database);
|
|
41
48
|
const rows = await rawDb.execute(stmt);
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
for (const touch of matched)
|
|
50
|
+
stepCtx.markWrote(touch);
|
|
51
|
+
return decodeReturning(state, rows);
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
54
|
switch (state.verb) {
|
|
@@ -98,19 +106,9 @@ async function executeChunkedAuditWrite(state, ctx, chunkValueSize) {
|
|
|
98
106
|
else {
|
|
99
107
|
await pipe.transaction(dbName, runChunks);
|
|
100
108
|
}
|
|
101
|
-
ctx.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Match the vanilla-DML return shape from the CTE statement's result. Vanilla
|
|
106
|
-
* DML returns `void` when `returning` is null, otherwise an array of rows.
|
|
107
|
-
* `db.execute` always returns an array; we strip it to undefined when the
|
|
108
|
-
* caller asked for no `RETURNING`.
|
|
109
|
-
*/
|
|
110
|
-
function projectExecuteResult(state, rows) {
|
|
111
|
-
if (state.returning === undefined || state.returning === null)
|
|
112
|
-
return undefined;
|
|
113
|
-
return rows;
|
|
109
|
+
for (const touch of ctx.touches)
|
|
110
|
+
ctx.step.markWrote(touch);
|
|
111
|
+
return collectsRows ? decodeReturning(state, collected) : undefined;
|
|
114
112
|
}
|
|
115
113
|
async function executeUpdate(db, state) {
|
|
116
114
|
let q = db.update(state.table).set(state.set ?? {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/data/write/execute.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/data/write/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-plugin.d.ts","sourceRoot":"","sources":["../../src/test/vitest-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"vitest-plugin.d.ts","sourceRoot":"","sources":["../../src/test/vitest-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAI3C,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iLAAiL;IACjL,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C;AAkDD,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAmDhE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { sep } from 'node:path';
|
|
2
|
+
import { isAbsolute, sep } from 'node:path';
|
|
3
|
+
import { applyFlowStepTransform } from '../trace/transformer/apply.js';
|
|
3
4
|
function splitWorkspacePackages(workspacePackages) {
|
|
4
5
|
const exact = {};
|
|
5
6
|
const wildcard = [];
|
|
@@ -22,11 +23,21 @@ function splitWorkspacePackages(workspacePackages) {
|
|
|
22
23
|
}
|
|
23
24
|
return { exact, wildcard };
|
|
24
25
|
}
|
|
26
|
+
// Wraps `@flow_step` functions in consumer source so they run as trace steps
|
|
27
|
+
// under test. Runs before Vite strips types; the printer reflows the file, so
|
|
28
|
+
// stack-trace lines inside an annotated file can shift.
|
|
29
|
+
const flowStepTransform = function (code, id) {
|
|
30
|
+
const file = id.split('?')[0] ?? id;
|
|
31
|
+
if (!/\.tsx?$/.test(file) || file.includes('/node_modules/') || !isAbsolute(file))
|
|
32
|
+
return null;
|
|
33
|
+
const applied = applyFlowStepTransform(code, file);
|
|
34
|
+
return applied === null ? null : { code: applied.code, map: null };
|
|
35
|
+
};
|
|
25
36
|
export function pipework(options) {
|
|
26
37
|
const packageRoot = options?.packageRoot;
|
|
27
38
|
const workspacePackages = options?.workspacePackages;
|
|
28
39
|
if (packageRoot === undefined && workspacePackages === undefined) {
|
|
29
|
-
return { name: 'pipework' };
|
|
40
|
+
return { name: 'pipework', enforce: 'pre', transform: flowStepTransform };
|
|
30
41
|
}
|
|
31
42
|
const distPrefix = packageRoot !== undefined ? packageRoot + sep + 'dist' + sep : undefined;
|
|
32
43
|
const srcPrefix = packageRoot !== undefined ? packageRoot + sep + 'src' + sep : undefined;
|
|
@@ -36,6 +47,7 @@ export function pipework(options) {
|
|
|
36
47
|
return {
|
|
37
48
|
name: 'pipework',
|
|
38
49
|
enforce: 'pre',
|
|
50
|
+
transform: flowStepTransform,
|
|
39
51
|
async resolveId(source, importer) {
|
|
40
52
|
// Cross-package (#301): a bare workspace specifier resolves straight to src/.
|
|
41
53
|
if (workspacePackages !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-plugin.js","sourceRoot":"","sources":["../../src/test/vitest-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"vitest-plugin.js","sourceRoot":"","sources":["../../src/test/vitest-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,7 +124,7 @@ function recordUnsafe(input) {
|
|
|
124
124
|
const at = t.indexOf(':');
|
|
125
125
|
return { entity: t.slice(0, at), verb: t.slice(at + 1) };
|
|
126
126
|
}),
|
|
127
|
-
|
|
127
|
+
wroteTouches: new Set(),
|
|
128
128
|
};
|
|
129
129
|
// Sync like a sync flow step: fire and forget; the emitter logs its own failures.
|
|
130
130
|
void emitReadTouches(flow, begun);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../src/trace/external/record.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../src/trace/external/record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { FlowStepMeta } from './step-meta.js';
|
|
2
2
|
type AnyFunction = (...args: any[]) => any;
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Wraps `impl` so that, under an active traced Flow, each call records a `trace_step`.
|
|
5
|
+
*
|
|
6
|
+
* A function documented with `@flow_step` (and `@touches Entity:verb`) is wrapped automatically: under `pipework test` and the vitest preset, and under `pipework dev` and `pipework serve`. An app built with plain `tsc` gets no wrapping: run it through `pipework serve`, or call `__flowStep` by hand.
|
|
7
|
+
*
|
|
8
|
+
* A write under a step with `@touches` is audited only under the touches whose entity is the written table, one `audit_record` per affected row per matching touch. A touch's `Entity` matches a table when the definition declares `define(name, fields, { auditEntity })` equal to `Entity` exactly; otherwise when the names agree ignoring case and underscores, with the table name optionally plural (`Version` matches `version` and `versions`; `DocumentVersion` matches `document_versions`). A write to a table no touch matches is not audited. A touch that no write of the step was audited under gets a read row (`before` and `after` null) when the step completes. A write under a step with a touch whose entity matches no defined table throws, naming the closest table names. `.returning()` returns the same rows with or without an audited step.
|
|
9
|
+
*/
|
|
4
10
|
export declare function __flowStep<F extends AnyFunction>(meta: FlowStepMeta, impl: F): F;
|
|
5
11
|
export {};
|
|
6
12
|
//# sourceMappingURL=flow-step.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-step.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/flow-step.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKrE,KAAK,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AAE1C
|
|
1
|
+
{"version":3,"file":"flow-step.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/flow-step.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKrE,KAAK,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AAE1C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CA2DhF"}
|
|
@@ -26,7 +26,13 @@ import { serializeForTrace } from '../capture/bounded-serializer.js';
|
|
|
26
26
|
import { isThenable } from './thenable.js';
|
|
27
27
|
import { truncateTrace } from './truncate-trace.js';
|
|
28
28
|
import { emitReadTouches } from '../../data/write/audit/read-touches.js';
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Wraps `impl` so that, under an active traced Flow, each call records a `trace_step`.
|
|
31
|
+
*
|
|
32
|
+
* A function documented with `@flow_step` (and `@touches Entity:verb`) is wrapped automatically: under `pipework test` and the vitest preset, and under `pipework dev` and `pipework serve`. An app built with plain `tsc` gets no wrapping: run it through `pipework serve`, or call `__flowStep` by hand.
|
|
33
|
+
*
|
|
34
|
+
* A write under a step with `@touches` is audited only under the touches whose entity is the written table, one `audit_record` per affected row per matching touch. A touch's `Entity` matches a table when the definition declares `define(name, fields, { auditEntity })` equal to `Entity` exactly; otherwise when the names agree ignoring case and underscores, with the table name optionally plural (`Version` matches `version` and `versions`; `DocumentVersion` matches `document_versions`). A write to a table no touch matches is not audited. A touch that no write of the step was audited under gets a read row (`before` and `after` null) when the step completes. A write under a step with a touch whose entity matches no defined table throws, naming the closest table names. `.returning()` returns the same rows with or without an audited step.
|
|
35
|
+
*/
|
|
30
36
|
export function __flowStep(meta, impl) {
|
|
31
37
|
function traced(...args) {
|
|
32
38
|
const flow = getContext();
|
|
@@ -81,14 +87,14 @@ export function __flowStep(meta, impl) {
|
|
|
81
87
|
}
|
|
82
88
|
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
83
89
|
/**
|
|
84
|
-
* Read-touches gate. The CTE-form write path already covered the
|
|
85
|
-
* (
|
|
86
|
-
*
|
|
90
|
+
* Read-touches gate. The CTE-form write path already covered the touches it wrote
|
|
91
|
+
* (recorded via `markWrote(touch)`); this fires for the rest — touches
|
|
92
|
+
* no `pipe.*` write of the step was audited under. Empty
|
|
87
93
|
* `touches` means no audit projection at all and short-circuits earlier in
|
|
88
94
|
* the emitter.
|
|
89
95
|
*/
|
|
90
96
|
function emitReadTouchesIfNeeded(flow, begun) {
|
|
91
|
-
if (begun.touches.
|
|
97
|
+
if (begun.touches.every(t => begun.wroteTouches.has(t)))
|
|
92
98
|
return Promise.resolve();
|
|
93
99
|
return emitReadTouches(flow, begun);
|
|
94
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-step.js","sourceRoot":"","sources":["../../../src/trace/runtime/flow-step.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,4EAA4E;AAC5E,iFAAiF;AACjF,uEAAuE;AACvE,wEAAwE;AACxE,oDAAoD;AACpD,EAAE;AACF,8EAA8E;AAC9E,uBAAuB;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAQxE
|
|
1
|
+
{"version":3,"file":"flow-step.js","sourceRoot":"","sources":["../../../src/trace/runtime/flow-step.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,4EAA4E;AAC5E,iFAAiF;AACjF,uEAAuE;AACvE,wEAAwE;AACxE,oDAAoD;AACpD,EAAE;AACF,8EAA8E;AAC9E,uBAAuB;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAQxE;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAwB,IAAkB,EAAE,IAAO;IAC3E,SAAS,MAAM,CAAgB,GAAG,IAAmB;QACnD,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAkB,CAAA;QAChD,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QACzB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAkB,CAAA;QAChD,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YACvE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;YACjC,CAAC,CAAC,IAAI,CAAA;QAER,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;QACxE,yEAAyE;QACzE,+EAA+E;QAC/E,yEAAyE;QACzE,6CAA6C;QAC7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAkB,CAAA;QAChD,CAAC;QAED,IAAI,MAAe,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YACpC,MAAM,GAAG,CAAA;QACX,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,IAAI,CAChB,KAAK,EAAE,KAAc,EAAE,EAAE;gBACvB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;gBAClC,MAAM,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC1C,OAAO,KAAK,CAAA;YACd,CAAC,EACD,CAAC,GAAY,EAAE,EAAE;gBACf,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;gBACpC,MAAM,GAAG,CAAA;YACX,CAAC,CACe,CAAA;QACpB,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAClC,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,4DAA4D;QAC5D,KAAK,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACzC,OAAO,MAAuB,CAAA;IAChC,CAAC;IAED,OAAO,MAAW,CAAA;AACpB,CAAC;AACD,sDAAsD;AAEtD;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,IAAU,EAAE,KAAgB;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IACjF,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAClB,IAAwB,EACxB,WAAoD;IAEpD,MAAM,GAAG,GAAc,EAAE,CAAA;IACzB,0EAA0E;IAC1E,yEAAyE;IACzE,0EAA0E;IAC1E,mEAAmE;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,SAAS,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC7D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACd,SAAQ;QACV,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -37,12 +37,12 @@ export interface BegunStep {
|
|
|
37
37
|
*/
|
|
38
38
|
readonly touches: readonly MetaTouch[];
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
40
|
+
* The touches the executor audited with a `pipe.*` write under this step.
|
|
41
|
+
* `__flowStep` reads this at completion and emits a read-touches
|
|
42
|
+
* `audit_record` row for every touch not in it. The CTE branch handled the
|
|
43
|
+
* audit for the touches in it.
|
|
44
44
|
*/
|
|
45
|
-
|
|
45
|
+
readonly wroteTouches: Set<MetaTouch>;
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
48
|
* The active-step handle the write executor reads to compile its CTE. Captures
|
|
@@ -59,8 +59,8 @@ export interface ActiveAuditStep {
|
|
|
59
59
|
readonly stepId: string;
|
|
60
60
|
readonly touches: readonly MetaTouch[];
|
|
61
61
|
readonly capturedInputs: readonly unknown[] | null;
|
|
62
|
-
/** Called by the executor right before it returns —
|
|
63
|
-
markWrote(): void;
|
|
62
|
+
/** Called by the executor right before it returns — records on the underlying BegunStep that `touch` was audited by a write. */
|
|
63
|
+
markWrote(touch: MetaTouch): void;
|
|
64
64
|
}
|
|
65
65
|
export interface StepBufferParams {
|
|
66
66
|
readonly traceId: string;
|
|
@@ -150,8 +150,8 @@ export declare class StepBuffer {
|
|
|
150
150
|
* The active step's audit handle, or `null` when there is no open step or
|
|
151
151
|
* the open step has no `@touches`. The write executor uses this to decide:
|
|
152
152
|
* `null` → vanilla DML; non-null → compile the `audit_inserts` CTE. The
|
|
153
|
-
* returned handle's `markWrote()`
|
|
154
|
-
* suppresses
|
|
153
|
+
* returned handle's `markWrote(touch)` records the touch so `__flowStep`
|
|
154
|
+
* suppresses its read-touches emission at step completion.
|
|
155
155
|
*/
|
|
156
156
|
currentStep(): ActiveAuditStep | null;
|
|
157
157
|
/** Settles a begun step: stamps its outcome and timing, stages the row, unnests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-buffer.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/step-buffer.ts"],"names":[],"mappings":"AAaA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,gEAAgE;AAChE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAA;IAClD,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CACjC;AAED,qFAAqF;AACrF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,mFAAmF;IACnF,QAAQ,CAAC,cAAc,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAA;IAClD;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;IACtC;;;;;OAKG;IACH,
|
|
1
|
+
{"version":3,"file":"step-buffer.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/step-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,7 +92,7 @@ export class StepBuffer {
|
|
|
92
92
|
startHrTime: process.hrtime.bigint(),
|
|
93
93
|
capturedInputs,
|
|
94
94
|
touches,
|
|
95
|
-
|
|
95
|
+
wroteTouches: new Set(),
|
|
96
96
|
};
|
|
97
97
|
this.currentStepId = stepId;
|
|
98
98
|
this.active.push(begun);
|
|
@@ -102,8 +102,8 @@ export class StepBuffer {
|
|
|
102
102
|
* The active step's audit handle, or `null` when there is no open step or
|
|
103
103
|
* the open step has no `@touches`. The write executor uses this to decide:
|
|
104
104
|
* `null` → vanilla DML; non-null → compile the `audit_inserts` CTE. The
|
|
105
|
-
* returned handle's `markWrote()`
|
|
106
|
-
* suppresses
|
|
105
|
+
* returned handle's `markWrote(touch)` records the touch so `__flowStep`
|
|
106
|
+
* suppresses its read-touches emission at step completion.
|
|
107
107
|
*/
|
|
108
108
|
currentStep() {
|
|
109
109
|
const top = this.active[this.active.length - 1];
|
|
@@ -115,7 +115,7 @@ export class StepBuffer {
|
|
|
115
115
|
stepId: top.stepId,
|
|
116
116
|
touches: top.touches,
|
|
117
117
|
capturedInputs: top.capturedInputs,
|
|
118
|
-
markWrote: () => { top.
|
|
118
|
+
markWrote: (touch) => { top.wroteTouches.add(touch); },
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
121
|
/** Settles a begun step: stamps its outcome and timing, stages the row, unnests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-buffer.js","sourceRoot":"","sources":["../../../src/trace/runtime/step-buffer.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,yEAAyE;AACzE,mBAAmB;AACnB,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAkB,MAAM,iBAAiB,CAAA;AAwGlE,MAAM,OAAO,UAAU;IACJ,OAAO,CAAQ;IACf,QAAQ,CAAQ;IAChB,GAAG,CAAQ;IACnB,aAAa,CAAS;IACvB,GAAG,GAAG,CAAC,CAAA;IACf,uEAAuE;IAC/D,eAAe,GAAG,CAAC,CAAA;IACnB,aAAa,GAAG,CAAC,CAAA;IACR,gBAAgB,CAAQ;IACjC,aAAa,GAAkB,IAAI,CAAA;IAC3C;;;;;;;;OAQG;IACc,MAAM,GAAgB,EAAE,CAAA;IACjC,OAAO,GAAkB,EAAE,CAAA;IAC3B,mBAAmB,GAAkB,IAAI,CAAA;IACzC,mBAAmB,GAAyB,IAAI,CAAA;IAExD,YAAY,MAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC/B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;QACrB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;QACzC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAA;IACzD,CAAC;IAED,6EAA6E;IAC7E,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,kFAAkF;IAClF,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAA;IAC1C,CAAC;IAED,uEAAuE;IACvE,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAED;;;;OAIG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAED,+EAA+E;IAC/E,kBAAkB,CAAC,OAAsB;QACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAA;IACpC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CACH,WAAmB,EACnB,cAAyC,EACzC,UAAgC,EAAE;QAElC,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAA;QACtB,IAAI,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAA;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;QAC3B,MAAM,KAAK,GAAc;YACvB,GAAG;YACH,MAAM;YACN,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YACpC,cAAc;YACd,OAAO;YACP,
|
|
1
|
+
{"version":3,"file":"step-buffer.js","sourceRoot":"","sources":["../../../src/trace/runtime/step-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FlowStepTransformError } from './transform-error.js';
|
|
2
|
+
export interface AppliedFlowSteps {
|
|
3
|
+
readonly code: string;
|
|
4
|
+
readonly errors: readonly FlowStepTransformError[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The directory `ref` paths are relative to: the nearest ancestor holding
|
|
8
|
+
* `pipework.config.ts` (the directory `pipework check` runs from), else the
|
|
9
|
+
* nearest holding `package.json`, else the file's own directory.
|
|
10
|
+
*/
|
|
11
|
+
export declare function flowStepProjectRoot(fileName: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Wraps every `@flow_step` declaration in `source`. Returns null when there is
|
|
14
|
+
* nothing to wrap. Throws one error naming every hard transform error: an
|
|
15
|
+
* annotated function left unwrapped records no trace and no audit.
|
|
16
|
+
*/
|
|
17
|
+
export declare function applyFlowStepTransform(source: string, fileName: string, projectRoot?: string): AppliedFlowSteps | null;
|
|
18
|
+
//# sourceMappingURL=apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/trace/transformer/apply.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAElE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAA;CACnD;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO5D;AAYD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAsC,GAClD,gBAAgB,GAAG,IAAI,CAwBzB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Applies the flow-step transformer to one source file: the entry point both
|
|
2
|
+
// the vitest plugin and the Node dev/serve loader call. Returns null without
|
|
3
|
+
// parsing when the source carries no `@flow_step`, so unannotated files cost a
|
|
4
|
+
// substring search. Types are kept in the output; the caller's own TypeScript
|
|
5
|
+
// stripping still runs after this.
|
|
6
|
+
import { existsSync } from 'node:fs';
|
|
7
|
+
import { dirname, join, resolve } from 'node:path';
|
|
8
|
+
import ts from 'typescript';
|
|
9
|
+
import { createFlowStepTransformer } from './transform-flow-steps.js';
|
|
10
|
+
const rootCache = new Map();
|
|
11
|
+
/**
|
|
12
|
+
* The directory `ref` paths are relative to: the nearest ancestor holding
|
|
13
|
+
* `pipework.config.ts` (the directory `pipework check` runs from), else the
|
|
14
|
+
* nearest holding `package.json`, else the file's own directory.
|
|
15
|
+
*/
|
|
16
|
+
export function flowStepProjectRoot(fileName) {
|
|
17
|
+
const start = dirname(resolve(fileName));
|
|
18
|
+
const cached = rootCache.get(start);
|
|
19
|
+
if (cached !== undefined)
|
|
20
|
+
return cached;
|
|
21
|
+
const found = walkUp(start, 'pipework.config.ts') ?? walkUp(start, 'package.json') ?? start;
|
|
22
|
+
rootCache.set(start, found);
|
|
23
|
+
return found;
|
|
24
|
+
}
|
|
25
|
+
function walkUp(start, marker) {
|
|
26
|
+
let dir = start;
|
|
27
|
+
for (;;) {
|
|
28
|
+
if (existsSync(join(dir, marker)))
|
|
29
|
+
return dir;
|
|
30
|
+
const parent = dirname(dir);
|
|
31
|
+
if (parent === dir)
|
|
32
|
+
return null;
|
|
33
|
+
dir = parent;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Wraps every `@flow_step` declaration in `source`. Returns null when there is
|
|
38
|
+
* nothing to wrap. Throws one error naming every hard transform error: an
|
|
39
|
+
* annotated function left unwrapped records no trace and no audit.
|
|
40
|
+
*/
|
|
41
|
+
export function applyFlowStepTransform(source, fileName, projectRoot = flowStepProjectRoot(fileName)) {
|
|
42
|
+
if (!source.includes('@flow_step'))
|
|
43
|
+
return null;
|
|
44
|
+
const errors = [];
|
|
45
|
+
const sourceFile = ts.createSourceFile(fileName, source, ts.ScriptTarget.ESNext, true);
|
|
46
|
+
const transformer = createFlowStepTransformer({
|
|
47
|
+
projectRoot,
|
|
48
|
+
runtimeImport: 'pipework',
|
|
49
|
+
onError: e => errors.push(e),
|
|
50
|
+
});
|
|
51
|
+
const result = ts.transform(sourceFile, [transformer]);
|
|
52
|
+
try {
|
|
53
|
+
if (errors.length > 0) {
|
|
54
|
+
const lines = errors.map(e => ` ${e.file}:${String(e.line)} ${e.code}: ${e.message}`);
|
|
55
|
+
throw new Error(`[pipework] @flow_step could not be applied — the annotated function(s) would run unwrapped:\n${lines.join('\n')}`);
|
|
56
|
+
}
|
|
57
|
+
const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
|
|
58
|
+
const transformed = result.transformed[0];
|
|
59
|
+
if (transformed === undefined || transformed === sourceFile)
|
|
60
|
+
return null;
|
|
61
|
+
return { code: printer.printFile(transformed), errors };
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
result.dispose();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/trace/transformer/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
|
-
export
|
|
2
|
+
export interface MetaTouchTarget {
|
|
3
|
+
readonly entity: string;
|
|
4
|
+
readonly verb: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function buildMetaLiteral(factory: ts.NodeFactory, ref: string, touches?: readonly MetaTouchTarget[]): ts.ObjectLiteralExpression;
|
|
3
7
|
//# sourceMappingURL=build-meta-literal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-meta-literal.d.ts","sourceRoot":"","sources":["../../../src/trace/transformer/build-meta-literal.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"build-meta-literal.d.ts","sourceRoot":"","sources":["../../../src/trace/transformer/build-meta-literal.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAID,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,SAAS,eAAe,EAAO,GACvC,EAAE,CAAC,uBAAuB,CAY5B"}
|