@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/topo-store.js
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
2
|
-
import { NotFoundError } from './errors.js';
|
|
3
|
-
import { provision } from './provision.js';
|
|
4
|
-
import { Result } from './result.js';
|
|
5
|
-
import { getTopoPin } from './internal/topo-saves.js';
|
|
6
|
-
import { getTopoStoreExport, getTopoStoreProvision, getTopoStoreTrail, listTopoStorePins, listTopoStoreProvisions, listTopoStoreSaves, listTopoStoreTrails, queryTopoStore, resolveTopoStoreSave, } from './internal/topo-store-read.js';
|
|
7
|
-
import { openReadTrailsDb, resolveTrailsDbPath } from './internal/trails-db.js';
|
|
8
|
-
const missingStoreMessage = 'No saved topo state found. Populate trails.db first or run a topo-backed surface.';
|
|
9
|
-
const resolveStoreRootDir = (options) => options?.rootDir ?? process.cwd();
|
|
10
|
-
const requireReadDb = (options) => {
|
|
11
|
-
const dbPath = resolveTrailsDbPath(options);
|
|
12
|
-
if (!existsSync(dbPath)) {
|
|
13
|
-
throw new NotFoundError(missingStoreMessage);
|
|
14
|
-
}
|
|
15
|
-
return openReadTrailsDb(options);
|
|
16
|
-
};
|
|
17
|
-
const requireSavedTopoState = (db) => {
|
|
18
|
-
if (resolveTopoStoreSave(db) === undefined) {
|
|
19
|
-
throw new NotFoundError(missingStoreMessage);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
const withStoredTopoState = (options, run) => {
|
|
23
|
-
const db = requireReadDb(options);
|
|
24
|
-
try {
|
|
25
|
-
requireSavedTopoState(db);
|
|
26
|
-
return run(db);
|
|
27
|
-
}
|
|
28
|
-
finally {
|
|
29
|
-
db.close();
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
const createSeedResolver = (seed) => {
|
|
33
|
-
const saves = [...(seed?.saves ?? [])];
|
|
34
|
-
const pins = [...(seed?.pins ?? [])];
|
|
35
|
-
const trails = [...(seed?.trails ?? [])];
|
|
36
|
-
const provisions = [...(seed?.provisions ?? [])];
|
|
37
|
-
const exports = [...(seed?.exports ?? [])];
|
|
38
|
-
const resolveSave = (ref) => {
|
|
39
|
-
if (ref?.saveId !== undefined) {
|
|
40
|
-
return saves.find((save) => save.id === ref.saveId);
|
|
41
|
-
}
|
|
42
|
-
if (ref?.pin !== undefined) {
|
|
43
|
-
const pin = pins.find((candidate) => candidate.name === ref.pin);
|
|
44
|
-
return pin === undefined
|
|
45
|
-
? undefined
|
|
46
|
-
: saves.find((save) => save.id === pin.saveId);
|
|
47
|
-
}
|
|
48
|
-
return saves[0];
|
|
49
|
-
};
|
|
50
|
-
return {
|
|
51
|
-
exports,
|
|
52
|
-
pins,
|
|
53
|
-
provisions,
|
|
54
|
-
resolveSave,
|
|
55
|
-
saves,
|
|
56
|
-
trails,
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
export const createMockTopoStore = (seed) => {
|
|
60
|
-
const resolved = createSeedResolver(seed);
|
|
61
|
-
return {
|
|
62
|
-
exports: {
|
|
63
|
-
get(ref) {
|
|
64
|
-
const save = resolved.resolveSave(ref);
|
|
65
|
-
return save === undefined
|
|
66
|
-
? undefined
|
|
67
|
-
: resolved.exports.find((entry) => entry.save.id === save.id);
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
pins: {
|
|
71
|
-
get(name) {
|
|
72
|
-
return resolved.pins.find((pin) => pin.name === name);
|
|
73
|
-
},
|
|
74
|
-
list() {
|
|
75
|
-
return resolved.pins;
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
provisions: {
|
|
79
|
-
get(id, options) {
|
|
80
|
-
const save = resolved.resolveSave(options?.save);
|
|
81
|
-
return resolved.provisions.find((item) => item.id === id && (save === undefined || item.saveId === save.id));
|
|
82
|
-
},
|
|
83
|
-
list(options) {
|
|
84
|
-
const save = resolved.resolveSave(options?.save);
|
|
85
|
-
return save === undefined
|
|
86
|
-
? []
|
|
87
|
-
: resolved.provisions.filter((item) => item.saveId === save.id);
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
query() {
|
|
91
|
-
throw new NotFoundError('Mock topoStore.query() is unsupported. Seed typed accessors instead.');
|
|
92
|
-
},
|
|
93
|
-
saves: {
|
|
94
|
-
get(ref) {
|
|
95
|
-
return resolved.resolveSave(ref);
|
|
96
|
-
},
|
|
97
|
-
latest() {
|
|
98
|
-
return resolved.saves[0];
|
|
99
|
-
},
|
|
100
|
-
list() {
|
|
101
|
-
return resolved.saves;
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
trails: {
|
|
105
|
-
get(id, options) {
|
|
106
|
-
const save = resolved.resolveSave(options?.save);
|
|
107
|
-
if (save === undefined) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
return resolved.trails.find((trail) => trail.id === id && trail.saveId === save.id);
|
|
111
|
-
},
|
|
112
|
-
list(options) {
|
|
113
|
-
const save = resolved.resolveSave(options?.save);
|
|
114
|
-
if (save === undefined) {
|
|
115
|
-
return [];
|
|
116
|
-
}
|
|
117
|
-
return resolved.trails.filter((trail) => trail.saveId === save.id &&
|
|
118
|
-
(options?.intent === undefined || trail.intent === options.intent));
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
};
|
|
122
|
-
};
|
|
123
|
-
export const createTopoStore = (options) => ({
|
|
124
|
-
exports: {
|
|
125
|
-
get(ref) {
|
|
126
|
-
return withStoredTopoState(options, (db) => getTopoStoreExport(db, ref));
|
|
127
|
-
},
|
|
128
|
-
},
|
|
129
|
-
pins: {
|
|
130
|
-
get(name) {
|
|
131
|
-
return withStoredTopoState(options, (db) => getTopoPin(db, name));
|
|
132
|
-
},
|
|
133
|
-
list() {
|
|
134
|
-
return withStoredTopoState(options, (db) => listTopoStorePins(db));
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
provisions: {
|
|
138
|
-
get(id, queryOptions) {
|
|
139
|
-
return withStoredTopoState(options, (db) => getTopoStoreProvision(db, id, queryOptions));
|
|
140
|
-
},
|
|
141
|
-
list(queryOptions) {
|
|
142
|
-
return withStoredTopoState(options, (db) => listTopoStoreProvisions(db, queryOptions));
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
query(sql, bindings) {
|
|
146
|
-
return withStoredTopoState(options, (db) => queryTopoStore(db, sql, bindings));
|
|
147
|
-
},
|
|
148
|
-
saves: {
|
|
149
|
-
get(ref) {
|
|
150
|
-
return withStoredTopoState(options, (db) => resolveTopoStoreSave(db, ref));
|
|
151
|
-
},
|
|
152
|
-
latest() {
|
|
153
|
-
return withStoredTopoState(options, (db) => resolveTopoStoreSave(db));
|
|
154
|
-
},
|
|
155
|
-
list() {
|
|
156
|
-
return withStoredTopoState(options, (db) => listTopoStoreSaves(db));
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
trails: {
|
|
160
|
-
get(id, queryOptions) {
|
|
161
|
-
return withStoredTopoState(options, (db) => getTopoStoreTrail(db, id, queryOptions));
|
|
162
|
-
},
|
|
163
|
-
list(queryOptions) {
|
|
164
|
-
return withStoredTopoState(options, (db) => listTopoStoreTrails(db, queryOptions));
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
});
|
|
168
|
-
export const topoStore = provision('topo.store', {
|
|
169
|
-
create: (svc) => Result.ok(createTopoStore({
|
|
170
|
-
rootDir: svc.workspaceRoot ?? svc.cwd ?? resolveStoreRootDir(),
|
|
171
|
-
})),
|
|
172
|
-
description: 'Read-only query access to saved topo state in trails.db',
|
|
173
|
-
mock: () => createMockTopoStore(),
|
|
174
|
-
});
|
|
175
|
-
//# sourceMappingURL=topo-store.js.map
|
package/dist/topo-store.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"topo-store.js","sourceRoot":"","sources":["../src/topo-store.ts"],"names":[],"mappings":"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"}
|
package/dist/topo.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Application entry point — scans module exports to build a topology graph.
|
|
3
|
-
*/
|
|
4
|
-
import type { AnySignal } from './event.js';
|
|
5
|
-
import type { AnyProvision } from './provision.js';
|
|
6
|
-
import type { AnyTrail } from './trail.js';
|
|
7
|
-
export interface Topo {
|
|
8
|
-
readonly name: string;
|
|
9
|
-
readonly trails: ReadonlyMap<string, AnyTrail>;
|
|
10
|
-
readonly signals: ReadonlyMap<string, AnySignal>;
|
|
11
|
-
readonly provisions: ReadonlyMap<string, AnyProvision>;
|
|
12
|
-
readonly count: number;
|
|
13
|
-
readonly provisionCount: number;
|
|
14
|
-
get(id: string): AnyTrail | undefined;
|
|
15
|
-
getProvision(id: string): AnyProvision | undefined;
|
|
16
|
-
has(id: string): boolean;
|
|
17
|
-
hasProvision(id: string): boolean;
|
|
18
|
-
ids(): string[];
|
|
19
|
-
provisionIds(): string[];
|
|
20
|
-
list(): AnyTrail[];
|
|
21
|
-
listSignals(): AnySignal[];
|
|
22
|
-
listProvisions(): AnyProvision[];
|
|
23
|
-
}
|
|
24
|
-
export declare const topo: (name: string, ...modules: Record<string, unknown>[]) => Topo;
|
|
25
|
-
//# sourceMappingURL=topo.d.ts.map
|
package/dist/topo.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"topo.d.ts","sourceRoot":"","sources":["../src/topo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,GAAG,IAAI,MAAM,EAAE,CAAC;IAChB,YAAY,IAAI,MAAM,EAAE,CAAC;IACzB,IAAI,IAAI,QAAQ,EAAE,CAAC;IACnB,WAAW,IAAI,SAAS,EAAE,CAAC;IAC3B,cAAc,IAAI,YAAY,EAAE,CAAC;CAClC;AA4ID,eAAO,MAAM,IAAI,GACf,MAAM,MAAM,EACZ,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KACpC,IAUF,CAAC"}
|
package/dist/topo.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Application entry point — scans module exports to build a topology graph.
|
|
3
|
-
*/
|
|
4
|
-
import { ValidationError } from './errors.js';
|
|
5
|
-
import { isProvision } from './provision.js';
|
|
6
|
-
const isRegistrable = (value) => {
|
|
7
|
-
if (typeof value !== 'object' || value === null) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
const { kind } = value;
|
|
11
|
-
return kind === 'trail' || kind === 'signal';
|
|
12
|
-
};
|
|
13
|
-
// ---------------------------------------------------------------------------
|
|
14
|
-
// Topo implementation
|
|
15
|
-
// ---------------------------------------------------------------------------
|
|
16
|
-
const createTopo = (name, trails, signals, provisions) => ({
|
|
17
|
-
count: trails.size,
|
|
18
|
-
get(id) {
|
|
19
|
-
return trails.get(id);
|
|
20
|
-
},
|
|
21
|
-
getProvision(id) {
|
|
22
|
-
return provisions.get(id);
|
|
23
|
-
},
|
|
24
|
-
has(id) {
|
|
25
|
-
return trails.has(id);
|
|
26
|
-
},
|
|
27
|
-
hasProvision(id) {
|
|
28
|
-
return provisions.has(id);
|
|
29
|
-
},
|
|
30
|
-
ids() {
|
|
31
|
-
return [...trails.keys()];
|
|
32
|
-
},
|
|
33
|
-
list() {
|
|
34
|
-
return [...trails.values()];
|
|
35
|
-
},
|
|
36
|
-
listProvisions() {
|
|
37
|
-
return [...provisions.values()];
|
|
38
|
-
},
|
|
39
|
-
listSignals() {
|
|
40
|
-
return [...signals.values()];
|
|
41
|
-
},
|
|
42
|
-
name,
|
|
43
|
-
provisionCount: provisions.size,
|
|
44
|
-
provisionIds() {
|
|
45
|
-
return [...provisions.keys()];
|
|
46
|
-
},
|
|
47
|
-
provisions,
|
|
48
|
-
signals,
|
|
49
|
-
trails,
|
|
50
|
-
});
|
|
51
|
-
// ---------------------------------------------------------------------------
|
|
52
|
-
// topo()
|
|
53
|
-
// ---------------------------------------------------------------------------
|
|
54
|
-
/** Register a single registrable value into the appropriate map. */
|
|
55
|
-
const register = (value, trails, signals, provisions) => {
|
|
56
|
-
const { id } = value;
|
|
57
|
-
const registrars = {
|
|
58
|
-
provision: () => {
|
|
59
|
-
if (provisions.has(id)) {
|
|
60
|
-
throw new ValidationError(`Duplicate provision ID: "${id}"`);
|
|
61
|
-
}
|
|
62
|
-
provisions.set(id, value);
|
|
63
|
-
},
|
|
64
|
-
signal: () => {
|
|
65
|
-
if (signals.has(id)) {
|
|
66
|
-
throw new ValidationError(`Duplicate signal ID: "${id}"`);
|
|
67
|
-
}
|
|
68
|
-
signals.set(id, value);
|
|
69
|
-
},
|
|
70
|
-
trail: () => {
|
|
71
|
-
if (trails.has(id)) {
|
|
72
|
-
throw new ValidationError(`Duplicate trail ID: "${id}"`);
|
|
73
|
-
}
|
|
74
|
-
trails.set(id, value);
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
registrars[value.kind]?.();
|
|
78
|
-
};
|
|
79
|
-
const markUniqueObject = (value, seenValues) => {
|
|
80
|
-
if (typeof value !== 'object' || value === null) {
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
if (seenValues.has(value)) {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
seenValues.add(value);
|
|
87
|
-
return true;
|
|
88
|
-
};
|
|
89
|
-
const registerModuleValue = (value, trails, signals, provisions) => {
|
|
90
|
-
if (isProvision(value) || isRegistrable(value)) {
|
|
91
|
-
register(value, trails, signals, provisions);
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
const registerModuleValues = (mod, trails, signals, provisions) => {
|
|
95
|
-
const seenValues = new WeakSet();
|
|
96
|
-
for (const value of Object.values(mod)) {
|
|
97
|
-
if (!markUniqueObject(value, seenValues)) {
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
registerModuleValue(value, trails, signals, provisions);
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
export const topo = (name, ...modules) => {
|
|
104
|
-
const trails = new Map();
|
|
105
|
-
const signals = new Map();
|
|
106
|
-
const provisions = new Map();
|
|
107
|
-
for (const mod of modules) {
|
|
108
|
-
registerModuleValues(mod, trails, signals, provisions);
|
|
109
|
-
}
|
|
110
|
-
return createTopo(name, trails, signals, provisions);
|
|
111
|
-
};
|
|
112
|
-
//# sourceMappingURL=topo.js.map
|
package/dist/topo.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"topo.js","sourceRoot":"","sources":["../src/topo.ts"],"names":[],"mappings":"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"}
|
package/dist/trail.d.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import type { z } from 'zod';
|
|
2
|
-
import type { FieldOverride } from './derive.js';
|
|
3
|
-
import type { Result } from './result.js';
|
|
4
|
-
import type { AnyProvision } from './provision.js';
|
|
5
|
-
import type { Implementation, PermitRequirement, TrailContext } from './types.js';
|
|
6
|
-
/**
|
|
7
|
-
* A named example for documentation and testing.
|
|
8
|
-
*
|
|
9
|
-
* The `input` field accepts `Partial<I>` so that fields with schema defaults
|
|
10
|
-
* (e.g. `z.number().default(20)`) can be omitted from examples. The schema
|
|
11
|
-
* fills in defaults at validation time.
|
|
12
|
-
*/
|
|
13
|
-
export interface TrailExample<I, O> {
|
|
14
|
-
/** Human-readable name */
|
|
15
|
-
readonly name: string;
|
|
16
|
-
/** Optional description of what this example demonstrates */
|
|
17
|
-
readonly description?: string | undefined;
|
|
18
|
-
/** The input value — fields with schema defaults may be omitted */
|
|
19
|
-
readonly input: Partial<I>;
|
|
20
|
-
/** Expected output for success-path examples */
|
|
21
|
-
readonly expected?: O | undefined;
|
|
22
|
-
/** Error class name for error-path examples */
|
|
23
|
-
readonly error?: string | undefined;
|
|
24
|
-
}
|
|
25
|
-
/** Everything needed to define a trail (minus the id) */
|
|
26
|
-
export interface TrailSpec<I, O> {
|
|
27
|
-
/** Zod schema for validating input */
|
|
28
|
-
readonly input: z.ZodType<I>;
|
|
29
|
-
/** Zod schema for validating output (optional — some trails are fire-and-forget) */
|
|
30
|
-
readonly output?: z.ZodType<O> | undefined;
|
|
31
|
-
/** The pure function that does the work (sync or async authoring) */
|
|
32
|
-
readonly blaze: Implementation<I, O>;
|
|
33
|
-
/** Human-readable description */
|
|
34
|
-
readonly description?: string | undefined;
|
|
35
|
-
/** Named examples for docs and testing */
|
|
36
|
-
readonly examples?: readonly TrailExample<I, O>[] | undefined;
|
|
37
|
-
/** What this trail does to the world: read, write (default), or destroy */
|
|
38
|
-
readonly intent?: 'read' | 'write' | 'destroy' | undefined;
|
|
39
|
-
/** Trail is idempotent (safe to retry) */
|
|
40
|
-
readonly idempotent?: boolean | undefined;
|
|
41
|
-
/** Arbitrary meta for tooling and filtering */
|
|
42
|
-
readonly meta?: Readonly<Record<string, unknown>> | undefined;
|
|
43
|
-
/** Named sets of downstream trail IDs that may be invoked */
|
|
44
|
-
readonly detours?: Readonly<Record<string, readonly string[]>> | undefined;
|
|
45
|
-
/** Per-field overrides for deriveFields() (labels, hints, options) */
|
|
46
|
-
readonly fields?: Readonly<Record<string, FieldOverride>> | undefined;
|
|
47
|
-
/** IDs of downstream trails this trail may invoke via ctx.cross() */
|
|
48
|
-
readonly crosses?: readonly string[] | undefined;
|
|
49
|
-
/** Provisions this trail may access via provision.from(ctx) */
|
|
50
|
-
readonly provisions?: readonly AnyProvision[] | undefined;
|
|
51
|
-
/** Auth requirement: scopes object, 'public', or omitted (undeclared) */
|
|
52
|
-
readonly permit?: PermitRequirement | undefined;
|
|
53
|
-
}
|
|
54
|
-
/** Intent describes what a trail does to the world */
|
|
55
|
-
export type Intent = 'read' | 'write' | 'destroy';
|
|
56
|
-
/** A fully-defined trail — the unit of work in the Trails system */
|
|
57
|
-
export interface Trail<I, O> extends Omit<TrailSpec<I, O>, 'blaze' | 'crosses' | 'intent' | 'provisions'> {
|
|
58
|
-
readonly kind: 'trail';
|
|
59
|
-
readonly id: string;
|
|
60
|
-
readonly blaze: Implementation<I, O>;
|
|
61
|
-
/** IDs of downstream trails this trail may invoke via ctx.cross() (always present, default []) */
|
|
62
|
-
readonly crosses: readonly string[];
|
|
63
|
-
/** Provisions this trail may access via provision.from(ctx) (always present, default []) */
|
|
64
|
-
readonly provisions: readonly AnyProvision[];
|
|
65
|
-
/** What this trail does to the world (always present, default 'write') */
|
|
66
|
-
readonly intent: Intent;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Create a trail definition.
|
|
70
|
-
*
|
|
71
|
-
* Returns a frozen object with `kind: "trail"` and all spec fields.
|
|
72
|
-
* The trail is inert until handed to a runner.
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* ```typescript
|
|
76
|
-
* // ID as first argument (recommended for human authoring)
|
|
77
|
-
* const show = trail("entity.show", {
|
|
78
|
-
* input: z.object({ name: z.string() }),
|
|
79
|
-
* blaze: (input) => Result.ok(entity),
|
|
80
|
-
* });
|
|
81
|
-
*
|
|
82
|
-
* // Full spec object (for programmatic generation)
|
|
83
|
-
* const show = trail({
|
|
84
|
-
* id: "entity.show",
|
|
85
|
-
* input: z.object({ name: z.string() }),
|
|
86
|
-
* blaze: (input) => Result.ok(entity),
|
|
87
|
-
* });
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
export declare function trail<I, O>(id: string, spec: TrailSpec<I, O>): Trail<I, O>;
|
|
91
|
-
export declare function trail<I, O>(spec: TrailSpec<I, O> & {
|
|
92
|
-
readonly id: string;
|
|
93
|
-
}): Trail<I, O>;
|
|
94
|
-
export type AnyTrail = Trail<any, any>;
|
|
95
|
-
export type { Implementation, TrailContext, Result };
|
|
96
|
-
//# sourceMappingURL=trail.d.ts.map
|
package/dist/trail.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trail.d.ts","sourceRoot":"","sources":["../src/trail.ts"],"names":[],"mappings":"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"}
|
package/dist/trail.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export function trail(idOrSpec, maybeSpec) {
|
|
2
|
-
const resolved = typeof idOrSpec === 'string'
|
|
3
|
-
? { id: idOrSpec, spec: maybeSpec }
|
|
4
|
-
: { id: idOrSpec.id, spec: idOrSpec };
|
|
5
|
-
if (!resolved.spec) {
|
|
6
|
-
throw new TypeError('trail() requires a spec when an id is provided');
|
|
7
|
-
}
|
|
8
|
-
const { blaze, crosses: rawCrosses, intent: rawIntent, provisions: rawProvisions, ...spec } = resolved.spec;
|
|
9
|
-
const provisions = Object.freeze([...(rawProvisions ?? [])]);
|
|
10
|
-
return Object.freeze({
|
|
11
|
-
...spec,
|
|
12
|
-
blaze: async (input, ctx) => await blaze(input, ctx),
|
|
13
|
-
crosses: Object.freeze([...(rawCrosses ?? [])]),
|
|
14
|
-
id: resolved.id,
|
|
15
|
-
intent: rawIntent ?? 'write',
|
|
16
|
-
kind: 'trail',
|
|
17
|
-
provisions,
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=trail.js.map
|
package/dist/trail.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trail.js","sourceRoot":"","sources":["../src/trail.ts"],"names":[],"mappings":"AA0HA,MAAM,UAAU,KAAK,CACnB,QAA8D,EAC9D,SAA2B;IAE3B,MAAM,QAAQ,GACZ,OAAO,QAAQ,KAAK,QAAQ;QAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAE1C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,EACJ,KAAK,EACL,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,aAAa,EACzB,GAAG,IAAI,EACR,GAAG,QAAQ,CAAC,IAAI,CAAC;IAClB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,IAAI;QACP,KAAK,EAAE,KAAK,EAAE,KAAQ,EAAE,GAAiB,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;QACrE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,MAAM,EAAE,SAAS,IAAI,OAAO;QAC5B,IAAI,EAAE,OAAgB;QACtB,UAAU;KACX,CAAC,CAAC;AACL,CAAC"}
|
package/dist/type-utils.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type utilities for extracting input/output types from trails.
|
|
3
|
-
*/
|
|
4
|
-
import type { Result } from './result.js';
|
|
5
|
-
import type { AnyTrail, Trail } from './trail.js';
|
|
6
|
-
/** Extract the input type from a Trail. */
|
|
7
|
-
export type TrailInput<T extends AnyTrail> = T extends Trail<infer I, any> ? I : never;
|
|
8
|
-
/** Extract the output type from a Trail. */
|
|
9
|
-
export type TrailOutput<T extends AnyTrail> = T extends Trail<any, infer O> ? O : never;
|
|
10
|
-
/**
|
|
11
|
-
* Extracts the full `Result<Output, Error>` type from a trail definition.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```typescript
|
|
15
|
-
* type SearchResult = TrailResult<typeof searchTrail>;
|
|
16
|
-
* // Result<{ results: Item[]; count: number }, Error>
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export type TrailResult<T extends AnyTrail> = Result<TrailOutput<T>, Error>;
|
|
20
|
-
/** Get the input Zod schema from a trail, preserving the specific schema type. */
|
|
21
|
-
export declare const inputOf: <T extends AnyTrail>(trail: T) => T["input"];
|
|
22
|
-
/** Get the output Zod schema from a trail, if defined, preserving the specific schema type. */
|
|
23
|
-
export declare const outputOf: <T extends AnyTrail>(trail: T) => T["output"];
|
|
24
|
-
//# sourceMappingURL=type-utils.d.ts.map
|
package/dist/type-utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAQlD,2CAA2C;AAC3C,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,QAAQ,IACvC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,QAAQ,IACxC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAQ5E,kFAAkF;AAClF,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,QAAQ,EAAE,OAAO,CAAC,KAAG,CAAC,CAAC,OAAO,CACnD,CAAC;AAEd,+FAA+F;AAC/F,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,QAAQ,EAAE,OAAO,CAAC,KAAG,CAAC,CAAC,QAAQ,CACpD,CAAC"}
|
package/dist/type-utils.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type utilities for extracting input/output types from trails.
|
|
3
|
-
*/
|
|
4
|
-
/* oxlint-enable no-explicit-any */
|
|
5
|
-
// ---------------------------------------------------------------------------
|
|
6
|
-
// Runtime schema accessors
|
|
7
|
-
// ---------------------------------------------------------------------------
|
|
8
|
-
/** Get the input Zod schema from a trail, preserving the specific schema type. */
|
|
9
|
-
export const inputOf = (trail) => trail.input;
|
|
10
|
-
/** Get the output Zod schema from a trail, if defined, preserving the specific schema type. */
|
|
11
|
-
export const outputOf = (trail) => trail.output;
|
|
12
|
-
//# sourceMappingURL=type-utils.js.map
|
package/dist/type-utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8BH,mCAAmC;AAEnC,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,kFAAkF;AAClF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAqB,KAAQ,EAAc,EAAE,CAClE,KAAK,CAAC,KAAK,CAAC;AAEd,+FAA+F;AAC/F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAqB,KAAQ,EAAe,EAAE,CACpE,KAAK,CAAC,MAAM,CAAC"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { Result } from './result.js';
|
|
2
|
-
/**
|
|
3
|
-
* Trail implementation — sync or async.
|
|
4
|
-
*
|
|
5
|
-
* Authors can return `Result` directly or wrap it in a `Promise`. The framework
|
|
6
|
-
* normalizes with `await` at every call site, so both forms work transparently.
|
|
7
|
-
*/
|
|
8
|
-
export type Implementation<I, O> = (input: I, ctx: TrailContext) => Result<O, Error> | Promise<Result<O, Error>>;
|
|
9
|
-
/** Invoke another trail by id — used for trail composition */
|
|
10
|
-
export type CrossFn = <O>(id: string, input: unknown) => Promise<Result<O, Error>>;
|
|
11
|
-
/** Resolve a provision instance from the current trail context. */
|
|
12
|
-
export type ProvisionLookup = <T = unknown>(provisionOrId: {
|
|
13
|
-
readonly id: string;
|
|
14
|
-
} | string) => T;
|
|
15
|
-
/** Callback for reporting progress from long-running trails */
|
|
16
|
-
export type ProgressCallback = (event: ProgressEvent) => void;
|
|
17
|
-
/** Structured progress event emitted during trail execution */
|
|
18
|
-
export interface ProgressEvent {
|
|
19
|
-
readonly type: 'start' | 'progress' | 'complete' | 'error';
|
|
20
|
-
readonly current?: number | undefined;
|
|
21
|
-
readonly total?: number | undefined;
|
|
22
|
-
readonly message?: string | undefined;
|
|
23
|
-
readonly ts: string;
|
|
24
|
-
}
|
|
25
|
-
/** Minimal logger interface — implementations can bridge to any logging library */
|
|
26
|
-
export interface Logger {
|
|
27
|
-
readonly name?: string | undefined;
|
|
28
|
-
trace(message: string, data?: Record<string, unknown>): void;
|
|
29
|
-
debug(message: string, data?: Record<string, unknown>): void;
|
|
30
|
-
info(message: string, data?: Record<string, unknown>): void;
|
|
31
|
-
warn(message: string, data?: Record<string, unknown>): void;
|
|
32
|
-
error(message: string, data?: Record<string, unknown>): void;
|
|
33
|
-
fatal(message: string, data?: Record<string, unknown>): void;
|
|
34
|
-
child(context: Record<string, unknown>): Logger;
|
|
35
|
-
}
|
|
36
|
-
/** Context extension key for the invoking trailhead name. */
|
|
37
|
-
export declare const TRAILHEAD_KEY: "__trails_trailhead";
|
|
38
|
-
/** Minimal permit shape available on TrailContext. Permits extends this. */
|
|
39
|
-
export interface BasePermit {
|
|
40
|
-
readonly id: string;
|
|
41
|
-
readonly scopes: readonly string[];
|
|
42
|
-
}
|
|
43
|
-
/** Runtime context threaded through every trail execution */
|
|
44
|
-
export interface TrailContext {
|
|
45
|
-
readonly requestId: string;
|
|
46
|
-
readonly abortSignal: AbortSignal;
|
|
47
|
-
readonly cross?: CrossFn | undefined;
|
|
48
|
-
readonly permit?: BasePermit;
|
|
49
|
-
readonly workspaceRoot?: string | undefined;
|
|
50
|
-
readonly logger?: Logger | undefined;
|
|
51
|
-
readonly progress?: ProgressCallback | undefined;
|
|
52
|
-
readonly cwd?: string | undefined;
|
|
53
|
-
readonly env?: Record<string, string | undefined> | undefined;
|
|
54
|
-
readonly extensions?: Readonly<Record<string, unknown>> | undefined;
|
|
55
|
-
readonly provision?: ProvisionLookup | undefined;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Permit requirement declared on a trail spec.
|
|
59
|
-
*
|
|
60
|
-
* A scopes object means the trail requires a permit with those scopes.
|
|
61
|
-
* `'public'` means the trail has explicitly opted out of auth.
|
|
62
|
-
* Omitting the field entirely means the trail hasn't declared an auth posture.
|
|
63
|
-
*/
|
|
64
|
-
export type PermitRequirement = {
|
|
65
|
-
readonly scopes: readonly string[];
|
|
66
|
-
} | 'public';
|
|
67
|
-
/** Input shape used to seed a runtime TrailContext before resolution. */
|
|
68
|
-
export type TrailContextInit = Omit<TrailContext, 'provision'> & {
|
|
69
|
-
readonly provision?: ProvisionLookup | undefined;
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgDA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,oBAA6B,CAAC"}
|