@ontrails/core 1.0.0-beta.14 → 1.0.0-beta.16
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 +74 -0
- package/README.md +73 -24
- package/package.json +11 -4
- package/src/activation-provenance.ts +111 -0
- package/src/activation-source-compatibility.ts +430 -0
- package/src/activation-source-projection.ts +221 -0
- package/src/activation-source.ts +91 -0
- package/src/blob-ref.ts +51 -0
- package/src/branded.ts +1 -1
- package/src/context.ts +28 -4
- package/src/contour.ts +344 -0
- package/src/cross-batch.ts +69 -0
- package/src/cross-schema.ts +36 -0
- package/src/detours.ts +8 -0
- package/src/draft.ts +60 -52
- package/src/error-projection.ts +51 -0
- package/src/errors.ts +245 -48
- package/src/execute.ts +1250 -40
- package/src/fire.ts +1169 -0
- package/src/index.ts +383 -49
- package/src/internal/fork-ctx.ts +69 -0
- package/src/layer-projection.ts +192 -0
- package/src/layer.ts +81 -0
- package/src/observe.ts +361 -0
- package/src/path-security.ts +1 -1
- package/src/permits.ts +12 -0
- package/src/redaction/patterns.ts +6 -3
- package/src/resilience.ts +11 -11
- package/src/resource-config.ts +792 -0
- package/src/resource.ts +175 -0
- package/src/result.ts +18 -0
- package/src/run.ts +7 -6
- package/src/schedule-runtime.ts +689 -0
- package/src/schedule.ts +324 -0
- package/src/serialization.ts +90 -55
- package/src/signal-diagnostics.ts +633 -0
- package/src/signal-ref.ts +87 -0
- package/src/signal.ts +37 -0
- package/src/store/accessor-protocol.ts +56 -0
- package/src/store/index.ts +4 -0
- package/src/structured-examples.ts +245 -0
- package/src/surface-derivation.ts +91 -0
- package/src/surface-filter.ts +176 -0
- package/src/topo.ts +710 -59
- package/src/tracing.ts +345 -0
- package/src/trail.ts +347 -33
- package/src/trails/derive-trail.ts +842 -0
- package/src/trails/index.ts +9 -0
- package/src/trails/ingest.ts +138 -0
- package/src/{internal/trails-db.ts → trails-db.ts} +50 -31
- package/src/transport-error-map.ts +174 -0
- package/src/type-utils.ts +17 -2
- package/src/types.ts +208 -17
- package/src/validate-established-topo.ts +8 -2
- package/src/validate-topo.ts +244 -13
- package/src/validation.ts +58 -1
- package/src/webhook.ts +276 -0
- package/src/workspace.ts +1 -1
- package/src/zod-wrappers.ts +72 -0
- package/.turbo/turbo-build.log +0 -1
- package/.turbo/turbo-lint.log +0 -3
- package/.turbo/turbo-typecheck.log +0 -1
- package/dist/adapters.d.ts +0 -39
- package/dist/adapters.d.ts.map +0 -1
- package/dist/adapters.js +0 -2
- package/dist/adapters.js.map +0 -1
- package/dist/blob-ref.d.ts +0 -20
- package/dist/blob-ref.d.ts.map +0 -1
- package/dist/blob-ref.js +0 -22
- package/dist/blob-ref.js.map +0 -1
- package/dist/branded.d.ts +0 -36
- package/dist/branded.d.ts.map +0 -1
- package/dist/branded.js +0 -89
- package/dist/branded.js.map +0 -1
- package/dist/collections.d.ts +0 -31
- package/dist/collections.d.ts.map +0 -1
- package/dist/collections.js +0 -60
- package/dist/collections.js.map +0 -1
- package/dist/context.d.ts +0 -10
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -21
- package/dist/context.js.map +0 -1
- package/dist/derive.d.ts +0 -44
- package/dist/derive.d.ts.map +0 -1
- package/dist/derive.js +0 -149
- package/dist/derive.js.map +0 -1
- package/dist/dispatch.d.ts +0 -27
- package/dist/dispatch.d.ts.map +0 -1
- package/dist/dispatch.js +0 -34
- package/dist/dispatch.js.map +0 -1
- package/dist/draft.d.ts +0 -28
- package/dist/draft.d.ts.map +0 -1
- package/dist/draft.js +0 -156
- package/dist/draft.js.map +0 -1
- package/dist/errors.d.ts +0 -83
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -142
- package/dist/errors.js.map +0 -1
- package/dist/event.d.ts +0 -8
- package/dist/event.d.ts.map +0 -1
- package/dist/event.js +0 -7
- package/dist/event.js.map +0 -1
- package/dist/execute.d.ts +0 -35
- package/dist/execute.d.ts.map +0 -1
- package/dist/execute.js +0 -90
- package/dist/execute.js.map +0 -1
- package/dist/fetch.d.ts +0 -15
- package/dist/fetch.d.ts.map +0 -1
- package/dist/fetch.js +0 -102
- package/dist/fetch.js.map +0 -1
- package/dist/gate.d.ts +0 -17
- package/dist/gate.d.ts.map +0 -1
- package/dist/gate.js +0 -21
- package/dist/gate.js.map +0 -1
- package/dist/guards.d.ts +0 -17
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -25
- package/dist/guards.js.map +0 -1
- package/dist/health.d.ts +0 -18
- package/dist/health.d.ts.map +0 -1
- package/dist/health.js +0 -5
- package/dist/health.js.map +0 -1
- package/dist/index.d.ts +0 -48
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -51
- package/dist/index.js.map +0 -1
- package/dist/internal/topo-saves.d.ts +0 -47
- package/dist/internal/topo-saves.d.ts.map +0 -1
- package/dist/internal/topo-saves.js +0 -310
- package/dist/internal/topo-saves.js.map +0 -1
- package/dist/internal/topo-store-read.d.ts +0 -67
- package/dist/internal/topo-store-read.d.ts.map +0 -1
- package/dist/internal/topo-store-read.js +0 -222
- package/dist/internal/topo-store-read.js.map +0 -1
- package/dist/internal/topo-store.d.ts +0 -12
- package/dist/internal/topo-store.d.ts.map +0 -1
- package/dist/internal/topo-store.js +0 -571
- package/dist/internal/topo-store.js.map +0 -1
- package/dist/internal/trails-db.d.ts +0 -16
- package/dist/internal/trails-db.d.ts.map +0 -1
- package/dist/internal/trails-db.js +0 -118
- package/dist/internal/trails-db.js.map +0 -1
- package/dist/job.d.ts +0 -24
- package/dist/job.d.ts.map +0 -1
- package/dist/job.js +0 -17
- package/dist/job.js.map +0 -1
- package/dist/layer.d.ts +0 -6
- package/dist/layer.d.ts.map +0 -1
- package/dist/layer.js +0 -4
- package/dist/layer.js.map +0 -1
- package/dist/path-security.d.ts +0 -28
- package/dist/path-security.d.ts.map +0 -1
- package/dist/path-security.js +0 -63
- package/dist/path-security.js.map +0 -1
- package/dist/patterns/bulk.d.ts +0 -15
- package/dist/patterns/bulk.d.ts.map +0 -1
- package/dist/patterns/bulk.js +0 -14
- package/dist/patterns/bulk.js.map +0 -1
- package/dist/patterns/change.d.ts +0 -10
- package/dist/patterns/change.d.ts.map +0 -1
- package/dist/patterns/change.js +0 -10
- package/dist/patterns/change.js.map +0 -1
- package/dist/patterns/date-range.d.ts +0 -10
- package/dist/patterns/date-range.d.ts.map +0 -1
- package/dist/patterns/date-range.js +0 -10
- package/dist/patterns/date-range.js.map +0 -1
- package/dist/patterns/index.d.ts +0 -9
- package/dist/patterns/index.d.ts.map +0 -1
- package/dist/patterns/index.js +0 -9
- package/dist/patterns/index.js.map +0 -1
- package/dist/patterns/pagination.d.ts +0 -18
- package/dist/patterns/pagination.d.ts.map +0 -1
- package/dist/patterns/pagination.js +0 -18
- package/dist/patterns/pagination.js.map +0 -1
- package/dist/patterns/progress.d.ts +0 -11
- package/dist/patterns/progress.d.ts.map +0 -1
- package/dist/patterns/progress.js +0 -11
- package/dist/patterns/progress.js.map +0 -1
- package/dist/patterns/sorting.d.ts +0 -13
- package/dist/patterns/sorting.d.ts.map +0 -1
- package/dist/patterns/sorting.js +0 -10
- package/dist/patterns/sorting.js.map +0 -1
- package/dist/patterns/status.d.ts +0 -15
- package/dist/patterns/status.d.ts.map +0 -1
- package/dist/patterns/status.js +0 -9
- package/dist/patterns/status.js.map +0 -1
- package/dist/patterns/timestamps.d.ts +0 -10
- package/dist/patterns/timestamps.d.ts.map +0 -1
- package/dist/patterns/timestamps.js +0 -10
- package/dist/patterns/timestamps.js.map +0 -1
- package/dist/provision-config.d.ts +0 -22
- package/dist/provision-config.d.ts.map +0 -1
- package/dist/provision-config.js +0 -210
- package/dist/provision-config.js.map +0 -1
- package/dist/provision.d.ts +0 -71
- package/dist/provision.d.ts.map +0 -1
- package/dist/provision.js +0 -56
- package/dist/provision.js.map +0 -1
- package/dist/redaction/index.d.ts +0 -4
- package/dist/redaction/index.d.ts.map +0 -1
- package/dist/redaction/index.js +0 -3
- package/dist/redaction/index.js.map +0 -1
- package/dist/redaction/patterns.d.ts +0 -9
- package/dist/redaction/patterns.d.ts.map +0 -1
- package/dist/redaction/patterns.js +0 -39
- package/dist/redaction/patterns.js.map +0 -1
- package/dist/redaction/redactor.d.ts +0 -27
- package/dist/redaction/redactor.d.ts.map +0 -1
- package/dist/redaction/redactor.js +0 -89
- package/dist/redaction/redactor.js.map +0 -1
- package/dist/resilience.d.ts +0 -34
- package/dist/resilience.d.ts.map +0 -1
- package/dist/resilience.js +0 -164
- package/dist/resilience.js.map +0 -1
- package/dist/result.d.ts +0 -57
- package/dist/result.d.ts.map +0 -1
- package/dist/result.js +0 -156
- package/dist/result.js.map +0 -1
- package/dist/run.d.ts +0 -27
- package/dist/run.d.ts.map +0 -1
- package/dist/run.js +0 -34
- package/dist/run.js.map +0 -1
- package/dist/serialization.d.ts +0 -27
- package/dist/serialization.d.ts.map +0 -1
- package/dist/serialization.js +0 -153
- package/dist/serialization.js.map +0 -1
- package/dist/service-config.d.ts +0 -22
- package/dist/service-config.d.ts.map +0 -1
- package/dist/service-config.js +0 -210
- package/dist/service-config.js.map +0 -1
- package/dist/service.d.ts +0 -71
- package/dist/service.d.ts.map +0 -1
- package/dist/service.js +0 -56
- package/dist/service.js.map +0 -1
- package/dist/signal.d.ts +0 -33
- package/dist/signal.d.ts.map +0 -1
- package/dist/signal.js +0 -17
- package/dist/signal.js.map +0 -1
- package/dist/topo-store.d.ts +0 -48
- package/dist/topo-store.d.ts.map +0 -1
- package/dist/topo-store.js +0 -175
- package/dist/topo-store.js.map +0 -1
- package/dist/topo.d.ts +0 -25
- package/dist/topo.d.ts.map +0 -1
- package/dist/topo.js +0 -112
- package/dist/topo.js.map +0 -1
- package/dist/trail.d.ts +0 -96
- package/dist/trail.d.ts.map +0 -1
- package/dist/trail.js +0 -20
- package/dist/trail.js.map +0 -1
- package/dist/type-utils.d.ts +0 -24
- package/dist/type-utils.d.ts.map +0 -1
- package/dist/type-utils.js +0 -12
- package/dist/type-utils.js.map +0 -1
- package/dist/types.d.ts +0 -71
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/validate-established-topo.d.ts +0 -76
- package/dist/validate-established-topo.d.ts.map +0 -1
- package/dist/validate-established-topo.js +0 -43
- package/dist/validate-established-topo.js.map +0 -1
- package/dist/validate-topo.d.ts +0 -24
- package/dist/validate-topo.d.ts.map +0 -1
- package/dist/validate-topo.js +0 -176
- package/dist/validate-topo.js.map +0 -1
- package/dist/validation.d.ts +0 -27
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -165
- package/dist/validation.js.map +0 -1
- package/dist/workspace.d.ts +0 -25
- package/dist/workspace.d.ts.map +0 -1
- package/dist/workspace.js +0 -57
- package/dist/workspace.js.map +0 -1
- package/src/__tests__/blob-ref.test.ts +0 -103
- package/src/__tests__/branded.test.ts +0 -148
- package/src/__tests__/collections.test.ts +0 -126
- package/src/__tests__/context.test.ts +0 -77
- package/src/__tests__/derive.test.ts +0 -260
- package/src/__tests__/errors.test.ts +0 -309
- package/src/__tests__/execute.test.ts +0 -525
- package/src/__tests__/fetch.test.ts +0 -217
- package/src/__tests__/gate.test.ts +0 -125
- package/src/__tests__/guards.test.ts +0 -102
- package/src/__tests__/path-security.test.ts +0 -114
- package/src/__tests__/patterns.test.ts +0 -273
- package/src/__tests__/redaction.test.ts +0 -244
- package/src/__tests__/resilience.test.ts +0 -246
- package/src/__tests__/result.test.ts +0 -155
- package/src/__tests__/run.test.ts +0 -181
- package/src/__tests__/serialization.test.ts +0 -401
- package/src/__tests__/service-config.test.ts +0 -228
- package/src/__tests__/service.test.ts +0 -197
- package/src/__tests__/signal.test.ts +0 -82
- package/src/__tests__/topo-store-read.test.ts +0 -251
- package/src/__tests__/topo-store.test.ts +0 -469
- package/src/__tests__/topo.test.ts +0 -277
- package/src/__tests__/trail-permit.test.ts +0 -60
- package/src/__tests__/trail.test.ts +0 -261
- package/src/__tests__/trails-db.test.ts +0 -191
- package/src/__tests__/type-utils.test.ts +0 -90
- package/src/__tests__/validate-topo.test.ts +0 -489
- package/src/__tests__/validation.test.ts +0 -336
- package/src/__tests__/workspace.test.ts +0 -183
- package/src/event.ts +0 -15
- package/src/gate.ts +0 -44
- package/src/internal/topo-saves.ts +0 -429
- package/src/internal/topo-store-read.ts +0 -473
- package/src/internal/topo-store.ts +0 -1087
- package/src/provision-config.ts +0 -373
- package/src/provision.ts +0 -148
- package/src/topo-store.ts +0 -301
- package/tsconfig.json +0 -9
- package/tsconfig.tsbuildinfo +0 -1
package/dist/collections.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Collection utilities and type helpers for @ontrails/core.
|
|
3
|
-
*/
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
// Guards
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
7
|
-
/** Narrows a readonly array to a NonEmptyArray. */
|
|
8
|
-
export const isNonEmptyArray = (array) => array.length > 0;
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
10
|
-
// Collection functions
|
|
11
|
-
// ---------------------------------------------------------------------------
|
|
12
|
-
/** Split an array into chunks of at most `size` elements. */
|
|
13
|
-
export const chunk = (array, size) => {
|
|
14
|
-
if (size < 1) {
|
|
15
|
-
throw new RangeError('chunk size must be >= 1');
|
|
16
|
-
}
|
|
17
|
-
const result = [];
|
|
18
|
-
for (let i = 0; i < array.length; i += size) {
|
|
19
|
-
result.push(array.slice(i, i + size));
|
|
20
|
-
}
|
|
21
|
-
return result;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Remove duplicate items. When `key` is provided, uniqueness is determined
|
|
25
|
-
* by the return value of the key function; otherwise strict equality is used.
|
|
26
|
-
*/
|
|
27
|
-
export const dedupe = (array, key) => {
|
|
28
|
-
if (!key) {
|
|
29
|
-
return [...new Set(array)];
|
|
30
|
-
}
|
|
31
|
-
const seen = new Set();
|
|
32
|
-
const result = [];
|
|
33
|
-
for (const item of array) {
|
|
34
|
-
const k = key(item);
|
|
35
|
-
if (!seen.has(k)) {
|
|
36
|
-
seen.add(k);
|
|
37
|
-
result.push(item);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return result;
|
|
41
|
-
};
|
|
42
|
-
/** Group items by a string key. */
|
|
43
|
-
export const groupBy = (array, key) => {
|
|
44
|
-
const groups = {};
|
|
45
|
-
for (const item of array) {
|
|
46
|
-
const k = key(item);
|
|
47
|
-
(groups[k] ??= []).push(item);
|
|
48
|
-
}
|
|
49
|
-
return groups;
|
|
50
|
-
};
|
|
51
|
-
/** Return a new sorted array based on a key function (ascending). */
|
|
52
|
-
export const sortBy = (array, key) => [...array].toSorted((a, b) => {
|
|
53
|
-
const ka = key(a);
|
|
54
|
-
const kb = key(b);
|
|
55
|
-
if (typeof ka === 'number' && typeof kb === 'number') {
|
|
56
|
-
return ka - kb;
|
|
57
|
-
}
|
|
58
|
-
return String(ka).localeCompare(String(kb));
|
|
59
|
-
});
|
|
60
|
-
//# sourceMappingURL=collections.js.map
|
package/dist/collections.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../src/collections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuBH,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,mDAAmD;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAmB,EACQ,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAEjD,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,KAAmB,EAAE,IAAY,EAAS,EAAE;IACnE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,yBAAyB,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,KAAmB,EACnB,GAA0B,EACrB,EAAE;IACP,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,mCAAmC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAmB,EACnB,GAAwB,EACH,EAAE;IACvB,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,KAAmB,EACnB,GAAiC,EAC5B,EAAE,CACP,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC"}
|
package/dist/context.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { TrailContext, TrailContextInit } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Create a TrailContext with sensible defaults.
|
|
4
|
-
*
|
|
5
|
-
* - `requestId` defaults to `Bun.randomUUIDv7()` (sortable v7 UUID)
|
|
6
|
-
* - `abortSignal` defaults to a fresh, non-aborted `AbortSignal`
|
|
7
|
-
* - All other fields come from `overrides`
|
|
8
|
-
*/
|
|
9
|
-
export declare const createTrailContext: (overrides?: Partial<TrailContextInit>) => TrailContext;
|
|
10
|
-
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMjE;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,OAAO,CAAC,gBAAgB,CAAC,KACpC,YAWF,CAAC"}
|
package/dist/context.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { createProvisionLookup } from './provision.js';
|
|
2
|
-
/**
|
|
3
|
-
* Create a TrailContext with sensible defaults.
|
|
4
|
-
*
|
|
5
|
-
* - `requestId` defaults to `Bun.randomUUIDv7()` (sortable v7 UUID)
|
|
6
|
-
* - `abortSignal` defaults to a fresh, non-aborted `AbortSignal`
|
|
7
|
-
* - All other fields come from `overrides`
|
|
8
|
-
*/
|
|
9
|
-
export const createTrailContext = (overrides) => {
|
|
10
|
-
const ctx = {
|
|
11
|
-
abortSignal: new AbortController().signal,
|
|
12
|
-
cwd: process.cwd(),
|
|
13
|
-
env: process.env,
|
|
14
|
-
requestId: Bun.randomUUIDv7(),
|
|
15
|
-
...overrides,
|
|
16
|
-
};
|
|
17
|
-
const lookup = overrides?.provision ?? createProvisionLookup(() => ctx);
|
|
18
|
-
ctx.provision = lookup;
|
|
19
|
-
return ctx;
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAOvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,SAAqC,EACvB,EAAE;IAChB,MAAM,GAAG,GAAG;QACV,WAAW,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM;QACzC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAyC;QACtD,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE;QAC7B,GAAG,SAAS;KACU,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,SAAS,IAAI,qBAAqB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACxE,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;IACvB,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
package/dist/derive.d.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema-driven field derivation for @ontrails/core
|
|
3
|
-
*
|
|
4
|
-
* Introspects Zod v4 schemas to produce a runtime-agnostic Field[] descriptor
|
|
5
|
-
* that UI consumers (CLI prompts, web forms, etc.) can consume.
|
|
6
|
-
*/
|
|
7
|
-
import type { z } from 'zod';
|
|
8
|
-
/** A runtime-agnostic field descriptor derived from a Zod schema. */
|
|
9
|
-
export interface Field {
|
|
10
|
-
readonly name: string;
|
|
11
|
-
readonly type: 'string' | 'number' | 'boolean' | 'enum' | 'multiselect' | 'string[]' | 'number[]';
|
|
12
|
-
readonly label: string;
|
|
13
|
-
readonly required: boolean;
|
|
14
|
-
readonly default?: unknown | undefined;
|
|
15
|
-
readonly options?: readonly {
|
|
16
|
-
value: string;
|
|
17
|
-
label?: string | undefined;
|
|
18
|
-
hint?: string | undefined;
|
|
19
|
-
}[] | undefined;
|
|
20
|
-
}
|
|
21
|
-
/** Per-field overrides supplied by trail authors. */
|
|
22
|
-
export interface FieldOverride {
|
|
23
|
-
readonly label?: string | undefined;
|
|
24
|
-
readonly message?: string | undefined;
|
|
25
|
-
readonly hint?: string | undefined;
|
|
26
|
-
readonly options?: readonly {
|
|
27
|
-
value: string;
|
|
28
|
-
label: string;
|
|
29
|
-
hint?: string | undefined;
|
|
30
|
-
}[] | undefined;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Derive the canonical ordered CLI path from a trail ID.
|
|
34
|
-
*
|
|
35
|
-
* @throws {ValidationError} if the trail ID contains empty segments (e.g. consecutive dots).
|
|
36
|
-
*/
|
|
37
|
-
export declare const deriveCliPath: (trailId: string) => string[];
|
|
38
|
-
/**
|
|
39
|
-
* Derive a runtime-agnostic Field[] from a Zod object schema.
|
|
40
|
-
*
|
|
41
|
-
* Uses Zod v4's `_zod.def` for introspection. Returns fields sorted by name.
|
|
42
|
-
*/
|
|
43
|
-
export declare const deriveFields: (schema: z.ZodType, overrides?: Record<string, FieldOverride>) => Field[];
|
|
44
|
-
//# sourceMappingURL=derive.d.ts.map
|
package/dist/derive.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../src/derive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQ7B,qEAAqE;AACrE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,aAAa,GACb,UAAU,GACV,UAAU,CAAC;IACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EACb,SAAS;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B,EAAE,GACH,SAAS,CAAC;CACf;AAED,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EACb,SAAS;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B,EAAE,GACH,SAAS,CAAC;CACf;AAsJD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,KAAG,MAAM,EASrD,CAAC;AAwBF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,CAAC,CAAC,OAAO,EACjB,YAAY,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KACxC,KAAK,EAiBP,CAAC"}
|
package/dist/derive.js
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema-driven field derivation for @ontrails/core
|
|
3
|
-
*
|
|
4
|
-
* Introspects Zod v4 schemas to produce a runtime-agnostic Field[] descriptor
|
|
5
|
-
* that UI consumers (CLI prompts, web forms, etc.) can consume.
|
|
6
|
-
*/
|
|
7
|
-
import { ValidationError } from './errors.js';
|
|
8
|
-
// ---------------------------------------------------------------------------
|
|
9
|
-
// Helpers
|
|
10
|
-
// ---------------------------------------------------------------------------
|
|
11
|
-
/** Convert camelCase / PascalCase to "Title Case" label. */
|
|
12
|
-
const humanize = (str) => str
|
|
13
|
-
.replaceAll(/([a-z])([A-Z])/g, '$1 $2')
|
|
14
|
-
.replaceAll(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
|
|
15
|
-
.replace(/^./, (ch) => ch.toUpperCase());
|
|
16
|
-
/** Get the inner type from an optional or default wrapper. */
|
|
17
|
-
const getInnerType = (current) => current._zod.def['innerType'];
|
|
18
|
-
/** Propagate description from inner to state if present. */
|
|
19
|
-
const propagateDescription = (inner, state) => {
|
|
20
|
-
if (inner.description) {
|
|
21
|
-
state.description = inner.description;
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
/** Step one level of optional/default unwrapping. Returns null if not a wrapper type. */
|
|
25
|
-
const unwrapStep = (current, state) => {
|
|
26
|
-
const defType = current._zod.def['type'];
|
|
27
|
-
if (defType !== 'optional' && defType !== 'default') {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
state.required = false;
|
|
31
|
-
if (defType === 'default') {
|
|
32
|
-
state.defaultValue = current._zod.def['defaultValue'];
|
|
33
|
-
}
|
|
34
|
-
const inner = getInnerType(current);
|
|
35
|
-
propagateDescription(inner, state);
|
|
36
|
-
return inner;
|
|
37
|
-
};
|
|
38
|
-
/** Unwrap optional / default wrappers, collecting metadata. */
|
|
39
|
-
const unwrap = (s) => {
|
|
40
|
-
const state = {
|
|
41
|
-
defaultValue: undefined,
|
|
42
|
-
description: s.description,
|
|
43
|
-
required: true,
|
|
44
|
-
};
|
|
45
|
-
let current = s;
|
|
46
|
-
// eslint-disable-next-line no-constant-condition
|
|
47
|
-
while (true) {
|
|
48
|
-
const next = unwrapStep(current, state);
|
|
49
|
-
if (next === null) {
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
current = next;
|
|
53
|
-
}
|
|
54
|
-
return { ...state, inner: current };
|
|
55
|
-
};
|
|
56
|
-
const fieldTypeByDef = {
|
|
57
|
-
array: (s) => {
|
|
58
|
-
const element = s._zod.def['element'];
|
|
59
|
-
const { inner } = unwrap(element);
|
|
60
|
-
const elementType = inner._zod.def['type'];
|
|
61
|
-
if (elementType === 'enum') {
|
|
62
|
-
const entries = inner._zod.def['entries'];
|
|
63
|
-
return { options: Object.values(entries), type: 'multiselect' };
|
|
64
|
-
}
|
|
65
|
-
if (elementType !== 'number' && elementType !== 'string') {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
return {
|
|
69
|
-
options: undefined,
|
|
70
|
-
type: elementType === 'number' ? 'number[]' : 'string[]',
|
|
71
|
-
};
|
|
72
|
-
},
|
|
73
|
-
boolean: () => ({ options: undefined, type: 'boolean' }),
|
|
74
|
-
enum: (s) => {
|
|
75
|
-
const entries = s._zod.def['entries'];
|
|
76
|
-
return { options: Object.values(entries), type: 'enum' };
|
|
77
|
-
},
|
|
78
|
-
number: () => ({ options: undefined, type: 'number' }),
|
|
79
|
-
string: () => ({ options: undefined, type: 'string' }),
|
|
80
|
-
};
|
|
81
|
-
/** Derive field type and raw options from the unwrapped Zod def. */
|
|
82
|
-
const deriveFieldType = (s) => {
|
|
83
|
-
const defType = s._zod.def['type'];
|
|
84
|
-
const derive = fieldTypeByDef[defType];
|
|
85
|
-
return derive ? derive(s) : null;
|
|
86
|
-
};
|
|
87
|
-
/** Build options array, merging with overrides when present. */
|
|
88
|
-
const buildOptions = (rawOptions, overrideOptions) => {
|
|
89
|
-
if (!rawOptions) {
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
92
|
-
if (!overrideOptions) {
|
|
93
|
-
return rawOptions.map((v) => ({ value: v }));
|
|
94
|
-
}
|
|
95
|
-
const overrideMap = new Map(overrideOptions.map((o) => [o.value, o]));
|
|
96
|
-
return rawOptions.map((v) => {
|
|
97
|
-
const ov = overrideMap.get(v);
|
|
98
|
-
return ov ? { hint: ov.hint, label: ov.label, value: v } : { value: v };
|
|
99
|
-
});
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Derive the canonical ordered CLI path from a trail ID.
|
|
103
|
-
*
|
|
104
|
-
* @throws {ValidationError} if the trail ID contains empty segments (e.g. consecutive dots).
|
|
105
|
-
*/
|
|
106
|
-
export const deriveCliPath = (trailId) => {
|
|
107
|
-
const segments = trailId.split('.');
|
|
108
|
-
const emptyIndex = segments.findIndex((s) => s.length === 0);
|
|
109
|
-
if (emptyIndex !== -1) {
|
|
110
|
-
throw new ValidationError(`Trail ID "${trailId}" contains an empty segment at position ${emptyIndex}`);
|
|
111
|
-
}
|
|
112
|
-
return segments;
|
|
113
|
-
};
|
|
114
|
-
// ---------------------------------------------------------------------------
|
|
115
|
-
// Public API
|
|
116
|
-
// ---------------------------------------------------------------------------
|
|
117
|
-
/** Derive a single field from a shape entry. */
|
|
118
|
-
const deriveField = (key, value, overrides) => {
|
|
119
|
-
const { inner, required, defaultValue, description } = unwrap(value);
|
|
120
|
-
const derived = deriveFieldType(inner);
|
|
121
|
-
if (!derived) {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
const { type, options: rawOptions } = derived;
|
|
125
|
-
const override = overrides?.[key];
|
|
126
|
-
const label = override?.label ?? description ?? humanize(key);
|
|
127
|
-
const options = buildOptions(rawOptions, override?.options);
|
|
128
|
-
return { default: defaultValue, label, name: key, options, required, type };
|
|
129
|
-
};
|
|
130
|
-
/**
|
|
131
|
-
* Derive a runtime-agnostic Field[] from a Zod object schema.
|
|
132
|
-
*
|
|
133
|
-
* Uses Zod v4's `_zod.def` for introspection. Returns fields sorted by name.
|
|
134
|
-
*/
|
|
135
|
-
export const deriveFields = (schema, overrides) => {
|
|
136
|
-
const s = schema;
|
|
137
|
-
if (s._zod.def['type'] !== 'object') {
|
|
138
|
-
return [];
|
|
139
|
-
}
|
|
140
|
-
const shape = s._zod.def['shape'];
|
|
141
|
-
if (!shape) {
|
|
142
|
-
return [];
|
|
143
|
-
}
|
|
144
|
-
const fields = Object.entries(shape).map(([key, value]) => deriveField(key, value, overrides));
|
|
145
|
-
return fields
|
|
146
|
-
.filter((field) => field !== null)
|
|
147
|
-
.toSorted((a, b) => a.name.localeCompare(b.name));
|
|
148
|
-
};
|
|
149
|
-
//# sourceMappingURL=derive.js.map
|
package/dist/derive.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../src/derive.ts"],"names":[],"mappings":"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"}
|
package/dist/dispatch.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Headless trail execution — the "no-surface" surface.
|
|
3
|
-
*
|
|
4
|
-
* Looks up a trail by ID in a topo, then delegates to `executeTrail`.
|
|
5
|
-
* Returns a `Result` and never throws.
|
|
6
|
-
*/
|
|
7
|
-
import type { Topo } from './topo.js';
|
|
8
|
-
import type { ExecuteTrailOptions } from './execute.js';
|
|
9
|
-
import { Result } from './result.js';
|
|
10
|
-
/** Options forwarded to `executeTrail` from `dispatch`. */
|
|
11
|
-
export type DispatchOptions = ExecuteTrailOptions;
|
|
12
|
-
/**
|
|
13
|
-
* Execute a trail by ID from a topo without mounting a surface.
|
|
14
|
-
*
|
|
15
|
-
* Resolves the trail from the topo, then runs it through the standard
|
|
16
|
-
* `executeTrail` pipeline. Returns `Result.err(NotFoundError)` if the
|
|
17
|
-
* trail ID is not registered. Never throws — unexpected exceptions are
|
|
18
|
-
* returned as `Result.err(InternalError)`.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const result = await dispatch(myTopo, 'greet', { name: 'Alice' });
|
|
23
|
-
* if (result.isOk()) console.log(result.value);
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export declare const dispatch: (topo: Topo, id: string, input: unknown, options?: DispatchOptions) => Promise<Result<unknown, Error>>;
|
|
27
|
-
//# sourceMappingURL=dispatch.d.ts.map
|
package/dist/dispatch.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAMrC,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAMlD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,GACnB,MAAM,IAAI,EACV,IAAI,MAAM,EACV,OAAO,OAAO,EACd,UAAU,eAAe,KACxB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAUhC,CAAC"}
|
package/dist/dispatch.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Headless trail execution — the "no-surface" surface.
|
|
3
|
-
*
|
|
4
|
-
* Looks up a trail by ID in a topo, then delegates to `executeTrail`.
|
|
5
|
-
* Returns a `Result` and never throws.
|
|
6
|
-
*/
|
|
7
|
-
import { executeTrail } from './execute.js';
|
|
8
|
-
import { NotFoundError } from './errors.js';
|
|
9
|
-
import { Result } from './result.js';
|
|
10
|
-
// ---------------------------------------------------------------------------
|
|
11
|
-
// dispatch()
|
|
12
|
-
// ---------------------------------------------------------------------------
|
|
13
|
-
/**
|
|
14
|
-
* Execute a trail by ID from a topo without mounting a surface.
|
|
15
|
-
*
|
|
16
|
-
* Resolves the trail from the topo, then runs it through the standard
|
|
17
|
-
* `executeTrail` pipeline. Returns `Result.err(NotFoundError)` if the
|
|
18
|
-
* trail ID is not registered. Never throws — unexpected exceptions are
|
|
19
|
-
* returned as `Result.err(InternalError)`.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const result = await dispatch(myTopo, 'greet', { name: 'Alice' });
|
|
24
|
-
* if (result.isOk()) console.log(result.value);
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export const dispatch = (topo, id, input, options) => {
|
|
28
|
-
const trail = topo.get(id);
|
|
29
|
-
if (trail === undefined) {
|
|
30
|
-
return Promise.resolve(Result.err(new NotFoundError(`Trail "${id}" not found in topo "${topo.name}"`)));
|
|
31
|
-
}
|
|
32
|
-
return executeTrail(trail, input, options);
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=dispatch.js.map
|
package/dist/dispatch.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAAU,EACV,EAAU,EACV,KAAc,EACd,OAAyB,EACQ,EAAE;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,OAAO,CACpB,MAAM,CAAC,GAAG,CACR,IAAI,aAAa,CAAC,UAAU,EAAE,wBAAwB,IAAI,CAAC,IAAI,GAAG,CAAC,CACpE,CACF,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC"}
|
package/dist/draft.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ValidationError } from './errors.js';
|
|
2
|
-
import { Result } from './result.js';
|
|
3
|
-
import type { Topo } from './topo.js';
|
|
4
|
-
export declare const DRAFT_ID_PREFIX = "_draft.";
|
|
5
|
-
export type DraftDependencyKind = 'cross' | 'detour' | 'provision' | 'replaced-by' | 'signal-from';
|
|
6
|
-
export interface DraftDependency {
|
|
7
|
-
readonly fromId: string;
|
|
8
|
-
readonly kind: DraftDependencyKind;
|
|
9
|
-
readonly toId: string;
|
|
10
|
-
}
|
|
11
|
-
export interface DraftFinding {
|
|
12
|
-
readonly id: string;
|
|
13
|
-
readonly kind: 'provision' | 'signal' | 'trail' | 'unknown';
|
|
14
|
-
readonly message: string;
|
|
15
|
-
readonly rule: 'draft-contamination' | 'draft-id';
|
|
16
|
-
readonly via?: DraftDependencyKind | undefined;
|
|
17
|
-
readonly dependsOn?: string | undefined;
|
|
18
|
-
}
|
|
19
|
-
export interface DraftStateAnalysis {
|
|
20
|
-
readonly contaminatedIds: ReadonlySet<string>;
|
|
21
|
-
readonly declaredDraftIds: ReadonlySet<string>;
|
|
22
|
-
readonly dependencies: readonly DraftDependency[];
|
|
23
|
-
readonly findings: readonly DraftFinding[];
|
|
24
|
-
}
|
|
25
|
-
export declare const isDraftId: (id: string) => boolean;
|
|
26
|
-
export declare const analyzeDraftState: (topo: Topo) => DraftStateAnalysis;
|
|
27
|
-
export declare const validateEstablishedTopo: (topo: Topo) => Result<void, ValidationError>;
|
|
28
|
-
//# sourceMappingURL=draft.d.ts.map
|
package/dist/draft.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../src/draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,QAAQ,GACR,WAAW,GACX,aAAa,GACb,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,UAAU,CAAC;IAClD,QAAQ,CAAC,GAAG,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,eAAe,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAcD,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,KAAG,OACP,CAAC;AAiPjC,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,KAAG,kBAsB9C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,MAAM,IAAI,KACT,MAAM,CAAC,IAAI,EAAE,eAAe,CAe9B,CAAC"}
|
package/dist/draft.js
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { ValidationError } from './errors.js';
|
|
2
|
-
import { Result } from './result.js';
|
|
3
|
-
export const DRAFT_ID_PREFIX = '_draft.';
|
|
4
|
-
const replacedByTarget = (value) => {
|
|
5
|
-
const raw = value;
|
|
6
|
-
return typeof raw.replacedBy === 'string' ? raw.replacedBy : undefined;
|
|
7
|
-
};
|
|
8
|
-
export const isDraftId = (id) => id.startsWith(DRAFT_ID_PREFIX);
|
|
9
|
-
const dependenciesFromIds = (fromId, toIds, kind) => toIds.map((toId) => ({
|
|
10
|
-
fromId,
|
|
11
|
-
kind,
|
|
12
|
-
toId,
|
|
13
|
-
}));
|
|
14
|
-
const dependencyFromTarget = (fromId, toId, kind) => toId === undefined
|
|
15
|
-
? []
|
|
16
|
-
: [
|
|
17
|
-
{
|
|
18
|
-
fromId,
|
|
19
|
-
kind,
|
|
20
|
-
toId,
|
|
21
|
-
},
|
|
22
|
-
];
|
|
23
|
-
const dependenciesFromDetours = (fromId, detours) => Object.values(detours).flatMap((targets) => dependenciesFromIds(fromId, targets, 'detour'));
|
|
24
|
-
const trailDependencies = (trail) => {
|
|
25
|
-
const { detours } = trail;
|
|
26
|
-
return [
|
|
27
|
-
...dependenciesFromIds(trail.id, trail.crosses, 'cross'),
|
|
28
|
-
...dependenciesFromIds(trail.id, trail.provisions.map(({ id }) => id), 'provision'),
|
|
29
|
-
...(detours === undefined
|
|
30
|
-
? []
|
|
31
|
-
: dependenciesFromDetours(trail.id, detours)),
|
|
32
|
-
...dependencyFromTarget(trail.id, replacedByTarget(trail), 'replaced-by'),
|
|
33
|
-
];
|
|
34
|
-
};
|
|
35
|
-
const signalDependencies = (signal) => [
|
|
36
|
-
...dependenciesFromIds(signal.id, signal.from ?? [], 'signal-from'),
|
|
37
|
-
...dependencyFromTarget(signal.id, replacedByTarget(signal), 'replaced-by'),
|
|
38
|
-
];
|
|
39
|
-
const provisionDependencies = (provision) => dependencyFromTarget(provision.id, replacedByTarget(provision), 'replaced-by');
|
|
40
|
-
const nodeKind = (id, trails, signals, provisions) => {
|
|
41
|
-
if (trails.has(id)) {
|
|
42
|
-
return 'trail';
|
|
43
|
-
}
|
|
44
|
-
if (signals.has(id)) {
|
|
45
|
-
return 'signal';
|
|
46
|
-
}
|
|
47
|
-
if (provisions.has(id)) {
|
|
48
|
-
return 'provision';
|
|
49
|
-
}
|
|
50
|
-
return 'unknown';
|
|
51
|
-
};
|
|
52
|
-
const displayKind = (kind) => kind === 'unknown' ? 'Node' : kind[0]?.toUpperCase() + kind.slice(1);
|
|
53
|
-
const draftIdsFromKeys = (keys) => [...keys].filter(isDraftId);
|
|
54
|
-
const collectDeclaredDraftIds = (topo) => new Set([
|
|
55
|
-
...draftIdsFromKeys(topo.trails.keys()),
|
|
56
|
-
...draftIdsFromKeys(topo.signals.keys()),
|
|
57
|
-
...draftIdsFromKeys(topo.provisions.keys()),
|
|
58
|
-
]);
|
|
59
|
-
const findingForDraftId = (id, kind) => ({
|
|
60
|
-
id,
|
|
61
|
-
kind,
|
|
62
|
-
message: `${displayKind(id ? kind : 'unknown')} "${id}" is draft and cannot appear in the established graph.`,
|
|
63
|
-
rule: 'draft-id',
|
|
64
|
-
});
|
|
65
|
-
const findingForContamination = (id, kind, reason) => {
|
|
66
|
-
const dependencyLabel = isDraftId(reason.dependsOn)
|
|
67
|
-
? `draft "${reason.dependsOn}"`
|
|
68
|
-
: `draft-contaminated "${reason.dependsOn}"`;
|
|
69
|
-
return {
|
|
70
|
-
dependsOn: reason.dependsOn,
|
|
71
|
-
id,
|
|
72
|
-
kind,
|
|
73
|
-
message: `Established ${kind} "${id}" depends on ${dependencyLabel} ` +
|
|
74
|
-
`via ${reason.via} and cannot appear in the established graph.`,
|
|
75
|
-
rule: 'draft-contamination',
|
|
76
|
-
via: reason.via,
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
const contaminationReason = (dependency, contaminatedIds) => {
|
|
80
|
-
if (contaminatedIds.has(dependency.fromId)) {
|
|
81
|
-
return undefined;
|
|
82
|
-
}
|
|
83
|
-
if (!isDraftId(dependency.toId) && !contaminatedIds.has(dependency.toId)) {
|
|
84
|
-
return undefined;
|
|
85
|
-
}
|
|
86
|
-
return {
|
|
87
|
-
dependsOn: dependency.toId,
|
|
88
|
-
via: dependency.kind,
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
const markContaminatedDependency = (dependency, contaminatedIds, reasons) => {
|
|
92
|
-
const reason = contaminationReason(dependency, contaminatedIds);
|
|
93
|
-
if (reason === undefined) {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
contaminatedIds.add(dependency.fromId);
|
|
97
|
-
reasons.set(dependency.fromId, reason);
|
|
98
|
-
return true;
|
|
99
|
-
};
|
|
100
|
-
const propagateContaminatedIds = (declaredDraftIds, dependencies) => {
|
|
101
|
-
const contaminatedIds = new Set(declaredDraftIds);
|
|
102
|
-
const reasons = new Map();
|
|
103
|
-
const visit = () => {
|
|
104
|
-
if (dependencies.some((dependency) => markContaminatedDependency(dependency, contaminatedIds, reasons))) {
|
|
105
|
-
visit();
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
visit();
|
|
109
|
-
return { contaminatedIds, reasons };
|
|
110
|
-
};
|
|
111
|
-
const contaminationFindingForId = (id, declaredDraftIds, reasons, trails, signals, provisions) => {
|
|
112
|
-
if (declaredDraftIds.has(id)) {
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
const reason = reasons.get(id);
|
|
116
|
-
if (reason === undefined) {
|
|
117
|
-
return undefined;
|
|
118
|
-
}
|
|
119
|
-
return findingForContamination(id, nodeKind(id, trails, signals, provisions), reason);
|
|
120
|
-
};
|
|
121
|
-
const collectFindings = (declaredDraftIds, contaminatedIds, reasons, trails, signals, provisions) => [
|
|
122
|
-
...[...declaredDraftIds]
|
|
123
|
-
.toSorted()
|
|
124
|
-
.map((id) => findingForDraftId(id, nodeKind(id, trails, signals, provisions))),
|
|
125
|
-
...[...contaminatedIds].toSorted().flatMap((id) => {
|
|
126
|
-
const finding = contaminationFindingForId(id, declaredDraftIds, reasons, trails, signals, provisions);
|
|
127
|
-
return finding === undefined ? [] : [finding];
|
|
128
|
-
}),
|
|
129
|
-
];
|
|
130
|
-
const collectDependencies = (topo) => [
|
|
131
|
-
...[...topo.trails.values()].flatMap(trailDependencies),
|
|
132
|
-
...[...topo.signals.values()].flatMap(signalDependencies),
|
|
133
|
-
...[...topo.provisions.values()].flatMap(provisionDependencies),
|
|
134
|
-
];
|
|
135
|
-
export const analyzeDraftState = (topo) => {
|
|
136
|
-
const declaredDraftIds = collectDeclaredDraftIds(topo);
|
|
137
|
-
const dependencies = collectDependencies(topo);
|
|
138
|
-
const { contaminatedIds, reasons } = propagateContaminatedIds(declaredDraftIds, dependencies);
|
|
139
|
-
const findings = collectFindings(declaredDraftIds, contaminatedIds, reasons, topo.trails, topo.signals, topo.provisions);
|
|
140
|
-
return {
|
|
141
|
-
contaminatedIds,
|
|
142
|
-
declaredDraftIds,
|
|
143
|
-
dependencies,
|
|
144
|
-
findings,
|
|
145
|
-
};
|
|
146
|
-
};
|
|
147
|
-
export const validateEstablishedTopo = (topo) => {
|
|
148
|
-
const analysis = analyzeDraftState(topo);
|
|
149
|
-
if (analysis.findings.length === 0) {
|
|
150
|
-
return Result.ok();
|
|
151
|
-
}
|
|
152
|
-
return Result.err(new ValidationError(`Established topo validation failed with ${analysis.findings.length} draft issue(s)`, {
|
|
153
|
-
context: { issues: analysis.findings },
|
|
154
|
-
}));
|
|
155
|
-
};
|
|
156
|
-
//# sourceMappingURL=draft.js.map
|
package/dist/draft.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../src/draft.ts"],"names":[],"mappings":"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"}
|