@ontrails/core 1.0.0-beta.14 → 1.0.0-beta.15

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.
Files changed (280) hide show
  1. package/.turbo/turbo-lint.log +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/README.md +17 -13
  4. package/dist/branded.d.ts +1 -1
  5. package/dist/branded.d.ts.map +1 -1
  6. package/dist/branded.js +1 -1
  7. package/dist/branded.js.map +1 -1
  8. package/dist/context.d.ts +13 -1
  9. package/dist/context.d.ts.map +1 -1
  10. package/dist/context.js +19 -3
  11. package/dist/context.js.map +1 -1
  12. package/dist/contour.d.ts +81 -0
  13. package/dist/contour.d.ts.map +1 -0
  14. package/dist/contour.js +176 -0
  15. package/dist/contour.js.map +1 -0
  16. package/dist/cross-schema.d.ts +18 -0
  17. package/dist/cross-schema.d.ts.map +1 -0
  18. package/dist/cross-schema.js +29 -0
  19. package/dist/cross-schema.js.map +1 -0
  20. package/dist/draft.d.ts +5 -5
  21. package/dist/draft.d.ts.map +1 -1
  22. package/dist/draft.js +28 -27
  23. package/dist/draft.js.map +1 -1
  24. package/dist/errors.d.ts +62 -4
  25. package/dist/errors.d.ts.map +1 -1
  26. package/dist/errors.js +44 -1
  27. package/dist/errors.js.map +1 -1
  28. package/dist/execute.d.ts +26 -9
  29. package/dist/execute.d.ts.map +1 -1
  30. package/dist/execute.js +441 -20
  31. package/dist/execute.js.map +1 -1
  32. package/dist/fire.d.ts +43 -0
  33. package/dist/fire.d.ts.map +1 -0
  34. package/dist/fire.js +185 -0
  35. package/dist/fire.js.map +1 -0
  36. package/dist/index.d.ts +31 -20
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +23 -13
  39. package/dist/index.js.map +1 -1
  40. package/dist/internal/cross-batch.d.ts +44 -0
  41. package/dist/internal/cross-batch.d.ts.map +1 -0
  42. package/dist/internal/cross-batch.js +58 -0
  43. package/dist/internal/cross-batch.js.map +1 -0
  44. package/dist/internal/fork-ctx.d.ts +41 -0
  45. package/dist/internal/fork-ctx.d.ts.map +1 -0
  46. package/dist/internal/fork-ctx.js +47 -0
  47. package/dist/internal/fork-ctx.js.map +1 -0
  48. package/dist/internal/signal-ref.d.ts +15 -0
  49. package/dist/internal/signal-ref.d.ts.map +1 -0
  50. package/dist/internal/signal-ref.js +41 -0
  51. package/dist/internal/signal-ref.js.map +1 -0
  52. package/dist/internal/topo-saves.d.ts +8 -2
  53. package/dist/internal/topo-saves.d.ts.map +1 -1
  54. package/dist/internal/topo-saves.js +162 -23
  55. package/dist/internal/topo-saves.js.map +1 -1
  56. package/dist/internal/topo-snapshots.d.ts +57 -0
  57. package/dist/internal/topo-snapshots.d.ts.map +1 -0
  58. package/dist/internal/topo-snapshots.js +372 -0
  59. package/dist/internal/topo-snapshots.js.map +1 -0
  60. package/dist/internal/topo-store-read.d.ts +23 -20
  61. package/dist/internal/topo-store-read.d.ts.map +1 -1
  62. package/dist/internal/topo-store-read.js +82 -83
  63. package/dist/internal/topo-store-read.js.map +1 -1
  64. package/dist/internal/topo-store.d.ts +19 -5
  65. package/dist/internal/topo-store.d.ts.map +1 -1
  66. package/dist/internal/topo-store.js +174 -124
  67. package/dist/internal/topo-store.js.map +1 -1
  68. package/dist/internal/tracing.d.ts +98 -0
  69. package/dist/internal/tracing.d.ts.map +1 -0
  70. package/dist/internal/tracing.js +102 -0
  71. package/dist/internal/tracing.js.map +1 -0
  72. package/dist/internal/trails-db.d.ts +2 -2
  73. package/dist/internal/trails-db.d.ts.map +1 -1
  74. package/dist/internal/trails-db.js +8 -8
  75. package/dist/internal/trails-db.js.map +1 -1
  76. package/dist/internal/zod-wrappers.d.ts +40 -0
  77. package/dist/internal/zod-wrappers.d.ts.map +1 -0
  78. package/dist/internal/zod-wrappers.js +59 -0
  79. package/dist/internal/zod-wrappers.js.map +1 -0
  80. package/dist/layer.d.ts +22 -5
  81. package/dist/layer.d.ts.map +1 -1
  82. package/dist/layer.js +20 -3
  83. package/dist/layer.js.map +1 -1
  84. package/dist/path-security.d.ts +1 -1
  85. package/dist/path-security.d.ts.map +1 -1
  86. package/dist/path-security.js +1 -1
  87. package/dist/path-security.js.map +1 -1
  88. package/dist/resilience.d.ts +1 -1
  89. package/dist/resilience.d.ts.map +1 -1
  90. package/dist/resilience.js +3 -3
  91. package/dist/resilience.js.map +1 -1
  92. package/dist/resource-config.d.ts +22 -0
  93. package/dist/resource-config.d.ts.map +1 -0
  94. package/dist/resource-config.js +210 -0
  95. package/dist/resource-config.js.map +1 -0
  96. package/dist/resource.d.ts +74 -0
  97. package/dist/resource.d.ts.map +1 -0
  98. package/dist/resource.js +61 -0
  99. package/dist/resource.js.map +1 -0
  100. package/dist/run.d.ts +4 -3
  101. package/dist/run.d.ts.map +1 -1
  102. package/dist/run.js +5 -4
  103. package/dist/run.js.map +1 -1
  104. package/dist/serialization.d.ts.map +1 -1
  105. package/dist/serialization.js +2 -1
  106. package/dist/serialization.js.map +1 -1
  107. package/dist/store/accessor-protocol.d.ts +51 -0
  108. package/dist/store/accessor-protocol.d.ts.map +1 -0
  109. package/dist/store/accessor-protocol.js +2 -0
  110. package/dist/store/accessor-protocol.js.map +1 -0
  111. package/dist/store/index.d.ts +2 -0
  112. package/dist/store/index.d.ts.map +1 -0
  113. package/dist/store/index.js +2 -0
  114. package/dist/store/index.js.map +1 -0
  115. package/dist/surface-filter.d.ts +13 -0
  116. package/dist/surface-filter.d.ts.map +1 -0
  117. package/dist/surface-filter.js +76 -0
  118. package/dist/surface-filter.js.map +1 -0
  119. package/dist/topo-store.d.ts +36 -22
  120. package/dist/topo-store.d.ts.map +1 -1
  121. package/dist/topo-store.js +215 -71
  122. package/dist/topo-store.js.map +1 -1
  123. package/dist/topo.d.ts +23 -9
  124. package/dist/topo.d.ts.map +1 -1
  125. package/dist/topo.js +175 -46
  126. package/dist/topo.js.map +1 -1
  127. package/dist/trail.d.ts +86 -19
  128. package/dist/trail.d.ts.map +1 -1
  129. package/dist/trail.js +59 -4
  130. package/dist/trail.js.map +1 -1
  131. package/dist/trails/derive-trail.d.ts +66 -0
  132. package/dist/trails/derive-trail.d.ts.map +1 -0
  133. package/dist/trails/derive-trail.js +378 -0
  134. package/dist/trails/derive-trail.js.map +1 -0
  135. package/dist/trails/index.d.ts +5 -0
  136. package/dist/trails/index.d.ts.map +1 -0
  137. package/dist/trails/index.js +3 -0
  138. package/dist/trails/index.js.map +1 -0
  139. package/dist/trails/ingest.d.ts +24 -0
  140. package/dist/trails/ingest.d.ts.map +1 -0
  141. package/dist/trails/ingest.js +63 -0
  142. package/dist/trails/ingest.js.map +1 -0
  143. package/dist/transport-error-map.d.ts +106 -0
  144. package/dist/transport-error-map.d.ts.map +1 -0
  145. package/dist/transport-error-map.js +24 -0
  146. package/dist/transport-error-map.js.map +1 -0
  147. package/dist/type-checks.test-d.d.ts +71 -0
  148. package/dist/type-checks.test-d.d.ts.map +1 -0
  149. package/dist/type-checks.test-d.js +12 -0
  150. package/dist/type-checks.test-d.js.map +1 -0
  151. package/dist/type-utils.d.ts +11 -2
  152. package/dist/type-utils.d.ts.map +1 -1
  153. package/dist/type-utils.js.map +1 -1
  154. package/dist/types.d.ts +113 -7
  155. package/dist/types.d.ts.map +1 -1
  156. package/dist/types.js.map +1 -1
  157. package/dist/validate-established-topo.js +2 -2
  158. package/dist/validate-established-topo.js.map +1 -1
  159. package/dist/validate-topo.d.ts.map +1 -1
  160. package/dist/validate-topo.js +24 -7
  161. package/dist/validate-topo.js.map +1 -1
  162. package/dist/workspace.d.ts +1 -1
  163. package/dist/workspace.d.ts.map +1 -1
  164. package/dist/workspace.js +1 -1
  165. package/dist/workspace.js.map +1 -1
  166. package/package.json +8 -2
  167. package/src/__tests__/branded.test.ts +5 -5
  168. package/src/__tests__/context.test.ts +3 -3
  169. package/src/__tests__/contour.test.ts +263 -0
  170. package/src/__tests__/derive-trail.test.ts +668 -0
  171. package/src/__tests__/errors.test.ts +118 -0
  172. package/src/__tests__/execute.test.ts +1179 -141
  173. package/src/__tests__/fire.test.ts +1056 -0
  174. package/src/__tests__/fork-ctx.test.ts +83 -0
  175. package/src/__tests__/ingest.test.ts +191 -0
  176. package/src/__tests__/{gate.test.ts → layer.test.ts} +21 -21
  177. package/src/__tests__/path-security.test.ts +7 -7
  178. package/src/__tests__/resilience.test.ts +8 -8
  179. package/src/__tests__/resource.test.ts +204 -0
  180. package/src/__tests__/run.test.ts +13 -13
  181. package/src/__tests__/service-config.test.ts +28 -32
  182. package/src/__tests__/surface-filter.test.ts +196 -0
  183. package/src/__tests__/topo-store-read.test.ts +41 -36
  184. package/src/__tests__/topo-store.test.ts +493 -93
  185. package/src/__tests__/topo.test.ts +350 -54
  186. package/src/__tests__/trail.test.ts +189 -24
  187. package/src/__tests__/trails-db.test.ts +32 -25
  188. package/src/__tests__/transport-error-map.test.ts +82 -0
  189. package/src/__tests__/type-utils.test.ts +29 -1
  190. package/src/__tests__/validate-topo.test.ts +147 -25
  191. package/src/__tests__/workspace.test.ts +6 -6
  192. package/src/__tests__/zod-wrappers.test.ts +62 -0
  193. package/src/branded.ts +1 -1
  194. package/src/context.ts +24 -4
  195. package/src/contour.ts +344 -0
  196. package/src/cross-schema.ts +36 -0
  197. package/src/draft.ts +56 -52
  198. package/src/errors.ts +62 -18
  199. package/src/execute.ts +840 -29
  200. package/src/fire.ts +295 -0
  201. package/src/index.ts +116 -29
  202. package/src/internal/cross-batch.ts +77 -0
  203. package/src/internal/fork-ctx.ts +69 -0
  204. package/src/internal/signal-ref.ts +87 -0
  205. package/src/internal/topo-snapshots.ts +517 -0
  206. package/src/internal/topo-store-read.ts +140 -132
  207. package/src/internal/topo-store.ts +291 -186
  208. package/src/internal/tracing.ts +187 -0
  209. package/src/internal/trails-db.ts +9 -11
  210. package/src/internal/zod-wrappers.ts +78 -0
  211. package/src/layer.ts +50 -0
  212. package/src/path-security.ts +1 -1
  213. package/src/resilience.ts +3 -3
  214. package/src/{provision-config.ts → resource-config.ts} +109 -123
  215. package/src/resource.ts +155 -0
  216. package/src/run.ts +5 -4
  217. package/src/serialization.ts +2 -0
  218. package/src/store/accessor-protocol.ts +56 -0
  219. package/src/store/index.ts +4 -0
  220. package/src/surface-filter.ts +182 -0
  221. package/src/topo-store.ts +313 -104
  222. package/src/topo.ts +328 -57
  223. package/src/trail.ts +199 -31
  224. package/src/trails/derive-trail.ts +842 -0
  225. package/src/trails/index.ts +9 -0
  226. package/src/trails/ingest.ts +146 -0
  227. package/src/transport-error-map.ts +56 -0
  228. package/src/type-checks.test-d.ts +106 -0
  229. package/src/type-utils.ts +17 -2
  230. package/src/types.ts +148 -11
  231. package/src/validate-established-topo.ts +2 -2
  232. package/src/validate-topo.ts +32 -8
  233. package/src/workspace.ts +1 -1
  234. package/tsconfig.tests.json +10 -0
  235. package/tsconfig.tsbuildinfo +1 -1
  236. package/dist/adapters.d.ts +0 -39
  237. package/dist/adapters.d.ts.map +0 -1
  238. package/dist/adapters.js +0 -2
  239. package/dist/adapters.js.map +0 -1
  240. package/dist/dispatch.d.ts +0 -27
  241. package/dist/dispatch.d.ts.map +0 -1
  242. package/dist/dispatch.js +0 -34
  243. package/dist/dispatch.js.map +0 -1
  244. package/dist/event.d.ts +0 -8
  245. package/dist/event.d.ts.map +0 -1
  246. package/dist/event.js +0 -7
  247. package/dist/event.js.map +0 -1
  248. package/dist/gate.d.ts +0 -17
  249. package/dist/gate.d.ts.map +0 -1
  250. package/dist/gate.js +0 -21
  251. package/dist/gate.js.map +0 -1
  252. package/dist/health.d.ts +0 -18
  253. package/dist/health.d.ts.map +0 -1
  254. package/dist/health.js +0 -5
  255. package/dist/health.js.map +0 -1
  256. package/dist/job.d.ts +0 -24
  257. package/dist/job.d.ts.map +0 -1
  258. package/dist/job.js +0 -17
  259. package/dist/job.js.map +0 -1
  260. package/dist/provision-config.d.ts +0 -22
  261. package/dist/provision-config.d.ts.map +0 -1
  262. package/dist/provision-config.js +0 -210
  263. package/dist/provision-config.js.map +0 -1
  264. package/dist/provision.d.ts +0 -71
  265. package/dist/provision.d.ts.map +0 -1
  266. package/dist/provision.js +0 -56
  267. package/dist/provision.js.map +0 -1
  268. package/dist/service-config.d.ts +0 -22
  269. package/dist/service-config.d.ts.map +0 -1
  270. package/dist/service-config.js +0 -210
  271. package/dist/service-config.js.map +0 -1
  272. package/dist/service.d.ts +0 -71
  273. package/dist/service.d.ts.map +0 -1
  274. package/dist/service.js +0 -56
  275. package/dist/service.js.map +0 -1
  276. package/src/__tests__/service.test.ts +0 -197
  277. package/src/event.ts +0 -15
  278. package/src/gate.ts +0 -44
  279. package/src/internal/topo-saves.ts +0 -429
  280. package/src/provision.ts +0 -148
@@ -0,0 +1,41 @@
1
+ const LATE_BOUND_SIGNAL_REF = Symbol('trails.late-bound-signal-ref');
2
+ const LATE_BOUND_SIGNAL_MARKER_PREFIX = '@@trails:late-bound-signal-ref:';
3
+ const defineLateBoundSignalRef = (value, ref) => {
4
+ Object.defineProperty(value, LATE_BOUND_SIGNAL_REF, {
5
+ configurable: false,
6
+ enumerable: false,
7
+ value: ref,
8
+ writable: false,
9
+ });
10
+ return value;
11
+ };
12
+ export const getLateBoundSignalRef = (signal) => signal === undefined
13
+ ? undefined
14
+ : signal[LATE_BOUND_SIGNAL_REF];
15
+ export const attachLateBoundSignalRef = (signal, ref) => Object.freeze(defineLateBoundSignalRef({
16
+ ...signal,
17
+ }, ref));
18
+ export const cloneSignalWithId = (signal, id) => {
19
+ const clone = {
20
+ ...signal,
21
+ id,
22
+ };
23
+ const ref = getLateBoundSignalRef(signal);
24
+ return Object.freeze(ref ? defineLateBoundSignalRef(clone, ref) : clone);
25
+ };
26
+ export const createLateBoundSignalMarker = (ref, displayId) => `${LATE_BOUND_SIGNAL_MARKER_PREFIX}${ref.token}:${displayId}`;
27
+ export const parseLateBoundSignalMarker = (value) => {
28
+ if (!value.startsWith(LATE_BOUND_SIGNAL_MARKER_PREFIX)) {
29
+ return null;
30
+ }
31
+ const remainder = value.slice(LATE_BOUND_SIGNAL_MARKER_PREFIX.length);
32
+ const separator = remainder.indexOf(':');
33
+ if (separator <= 0 || separator === remainder.length - 1) {
34
+ return null;
35
+ }
36
+ return {
37
+ displayId: remainder.slice(separator + 1),
38
+ token: remainder.slice(0, separator),
39
+ };
40
+ };
41
+ //# sourceMappingURL=signal-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-ref.js","sourceRoot":"","sources":["../../src/internal/signal-ref.ts"],"names":[],"mappings":"AAYA,MAAM,qBAAqB,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACrE,MAAM,+BAA+B,GAAG,iCAAiC,CAAC;AAE1E,MAAM,wBAAwB,GAAG,CAC/B,KAAQ,EACR,GAAuB,EACpB,EAAE;IACL,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,qBAAqB,EAAE;QAClD,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAyC,EACT,EAAE,CAClC,MAAM,KAAK,SAAS;IAClB,CAAC,CAAC,SAAS;IACX,CAAC,CAAG,MAAuC,CAAC,qBAAqB,CAEjD,CAAC;AAErB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAiB,EACjB,GAAuB,EACZ,EAAE,CACb,MAAM,CAAC,MAAM,CACX,wBAAwB,CACtB;IACE,GAAG,MAAM;CACV,EACD,GAAG,CACJ,CACW,CAAC;AAEjB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAiB,EACjB,EAAU,EACC,EAAE;IACb,MAAM,KAAK,GAAG;QACZ,GAAG,MAAM;QACT,EAAE;KACH,CAAC;IACF,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,CAClB,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CACtC,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,GAAuB,EACvB,SAAiB,EACT,EAAE,CAAC,GAAG,+BAA+B,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;AAE3E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAa,EACiB,EAAE;IAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACzC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC"}
@@ -4,7 +4,7 @@ export interface TopoSaveRecord {
4
4
  readonly gitDirty: boolean;
5
5
  readonly gitSha?: string;
6
6
  readonly id: string;
7
- readonly provisionCount: number;
7
+ readonly resourceCount: number;
8
8
  readonly signalCount: number;
9
9
  readonly trailCount: number;
10
10
  }
@@ -13,7 +13,7 @@ export interface CreateTopoSaveInput {
13
13
  readonly gitDirty?: boolean;
14
14
  readonly gitSha?: string;
15
15
  readonly id?: string;
16
- readonly provisionCount?: number;
16
+ readonly resourceCount?: number;
17
17
  readonly signalCount?: number;
18
18
  readonly trailCount?: number;
19
19
  }
@@ -27,6 +27,12 @@ export interface CreateTopoPinInput {
27
27
  readonly name: string;
28
28
  readonly saveId: string;
29
29
  }
30
+ /**
31
+ * Current topo subsystem schema version. Exported so read-only callers can
32
+ * peek at `meta_schema_versions` and skip the write-mode migration escalation
33
+ * when the store is already current.
34
+ */
35
+ export declare const TOPO_SCHEMA_VERSION = 5;
30
36
  export declare const ensureTopoHistorySchema: (db: Database) => void;
31
37
  export declare const insertTopoSaveRecord: (db: Database, input?: CreateTopoSaveInput) => TopoSaveRecord;
32
38
  export declare const createTopoSave: (db: Database, input?: CreateTopoSaveInput) => TopoSaveRecord;
@@ -1 +1 @@
1
- {"version":3,"file":"topo-saves.d.ts","sourceRoot":"","sources":["../../src/internal/topo-saves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6I3C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAiCD,eAAO,MAAM,uBAAuB,GAAI,IAAI,QAAQ,KAAG,IAgBtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,IAAI,QAAQ,EACZ,QAAQ,mBAAmB,KAC1B,cA2BF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,IAAI,QAAQ,EACZ,QAAQ,mBAAmB,KAC1B,cAGF,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,IAAI,QAAQ,EACZ,OAAO,kBAAkB,KACxB,aAkBF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,KAAG,SAAS,cAAc,EAYnE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,SAAS,aAAa,EAYjE,CAAC;AASF,eAAO,MAAM,cAAc,GAAI,IAAI,QAAQ,KAAG,MAK7C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,KAAG,MAQ5C,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,IAAI,QAAQ,EACZ,IAAI,MAAM,KACT,cAAc,GAAG,SAYnB,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,IAAI,QAAQ,EACZ,MAAM,MAAM,KACX,aAAa,GAAG,SAYlB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAkBF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAyBF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,KAAG,OAI1D,CAAC"}
1
+ {"version":3,"file":"topo-saves.d.ts","sourceRoot":"","sources":["../../src/internal/topo-saves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6J3C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAiLD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,eAAO,MAAM,uBAAuB,GAAI,IAAI,QAAQ,KAAG,IAQtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,IAAI,QAAQ,EACZ,QAAQ,mBAAmB,KAC1B,cA2BF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,IAAI,QAAQ,EACZ,QAAQ,mBAAmB,KAC1B,cAGF,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,IAAI,QAAQ,EACZ,OAAO,kBAAkB,KACxB,aAkBF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,KAAG,SAAS,cAAc,EAYnE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,SAAS,aAAa,EAYjE,CAAC;AASF,eAAO,MAAM,cAAc,GAAI,IAAI,QAAQ,KAAG,MAK7C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,KAAG,MAQ5C,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,IAAI,QAAQ,EACZ,IAAI,MAAM,KACT,cAAc,GAAG,SAYnB,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,IAAI,QAAQ,EACZ,MAAM,MAAM,KACX,aAAa,GAAG,SAYlB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAkBF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAyBF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,KAAG,OAI1D,CAAC"}
@@ -7,7 +7,7 @@ const TOPO_TABLE_STATEMENTS = [
7
7
  git_dirty INTEGER NOT NULL DEFAULT 0,
8
8
  trail_count INTEGER NOT NULL DEFAULT 0,
9
9
  signal_count INTEGER NOT NULL DEFAULT 0,
10
- provision_count INTEGER NOT NULL DEFAULT 0,
10
+ resource_count INTEGER NOT NULL DEFAULT 0,
11
11
  created_at TEXT NOT NULL
12
12
  )`,
13
13
  `CREATE TABLE IF NOT EXISTS topo_pins (
@@ -36,14 +36,14 @@ const TOPO_TABLE_STATEMENTS = [
36
36
  PRIMARY KEY (source_id, target_id, save_id),
37
37
  FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
38
38
  )`,
39
- `CREATE TABLE IF NOT EXISTS topo_trail_provisions (
39
+ `CREATE TABLE IF NOT EXISTS topo_trail_resources (
40
40
  trail_id TEXT NOT NULL,
41
- provision_id TEXT NOT NULL,
41
+ resource_id TEXT NOT NULL,
42
42
  save_id TEXT NOT NULL,
43
- PRIMARY KEY (trail_id, provision_id, save_id),
43
+ PRIMARY KEY (trail_id, resource_id, save_id),
44
44
  FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
45
45
  )`,
46
- `CREATE TABLE IF NOT EXISTS topo_provisions (
46
+ `CREATE TABLE IF NOT EXISTS topo_resources (
47
47
  id TEXT NOT NULL,
48
48
  has_mock INTEGER NOT NULL DEFAULT 0,
49
49
  has_health INTEGER NOT NULL DEFAULT 0,
@@ -103,14 +103,28 @@ const TOPO_TABLE_STATEMENTS = [
103
103
  serialized_lock TEXT NOT NULL,
104
104
  FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
105
105
  )`,
106
+ `CREATE TABLE IF NOT EXISTS topo_trail_fires (
107
+ trail_id TEXT NOT NULL,
108
+ signal_id TEXT NOT NULL,
109
+ save_id TEXT NOT NULL,
110
+ PRIMARY KEY (trail_id, signal_id, save_id),
111
+ FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
112
+ )`,
113
+ `CREATE TABLE IF NOT EXISTS topo_trail_on (
114
+ trail_id TEXT NOT NULL,
115
+ signal_id TEXT NOT NULL,
116
+ save_id TEXT NOT NULL,
117
+ PRIMARY KEY (trail_id, signal_id, save_id),
118
+ FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
119
+ )`,
106
120
  ];
107
121
  const TOPO_INDEX_STATEMENTS = [
108
122
  'CREATE INDEX IF NOT EXISTS idx_topo_saves_created_at ON topo_saves(created_at DESC)',
109
123
  'CREATE INDEX IF NOT EXISTS idx_topo_pins_save_id ON topo_pins(save_id)',
110
124
  'CREATE INDEX IF NOT EXISTS idx_topo_trails_save_id ON topo_trails(save_id)',
111
125
  'CREATE INDEX IF NOT EXISTS idx_topo_crossings_save_id ON topo_crossings(save_id)',
112
- 'CREATE INDEX IF NOT EXISTS idx_topo_trail_provisions_save_id ON topo_trail_provisions(save_id)',
113
- 'CREATE INDEX IF NOT EXISTS idx_topo_provisions_save_id ON topo_provisions(save_id)',
126
+ 'CREATE INDEX IF NOT EXISTS idx_topo_trail_resources_save_id ON topo_trail_resources(save_id)',
127
+ 'CREATE INDEX IF NOT EXISTS idx_topo_resources_save_id ON topo_resources(save_id)',
114
128
  'CREATE INDEX IF NOT EXISTS idx_topo_signals_save_id ON topo_signals(save_id)',
115
129
  'CREATE INDEX IF NOT EXISTS idx_topo_trail_signals_save_id ON topo_trail_signals(save_id)',
116
130
  'CREATE INDEX IF NOT EXISTS idx_topo_trailheads_save_id ON topo_trailheads(save_id)',
@@ -118,12 +132,14 @@ const TOPO_INDEX_STATEMENTS = [
118
132
  'CREATE INDEX IF NOT EXISTS idx_topo_schemas_save_id ON topo_schemas(save_id)',
119
133
  `CREATE INDEX IF NOT EXISTS idx_topo_schemas_lookup
120
134
  ON topo_schemas(owner_id, owner_kind, schema_kind, zod_hash)`,
135
+ 'CREATE INDEX IF NOT EXISTS idx_topo_trail_fires_save_id ON topo_trail_fires(save_id)',
136
+ 'CREATE INDEX IF NOT EXISTS idx_topo_trail_on_save_id ON topo_trail_on(save_id)',
121
137
  ];
122
138
  const rowToSave = (row) => ({
123
139
  createdAt: row.created_at,
124
140
  gitDirty: row.git_dirty === 1,
125
141
  id: row.id,
126
- provisionCount: row.provision_count,
142
+ resourceCount: row.resource_count,
127
143
  signalCount: row.signal_count,
128
144
  trailCount: row.trail_count,
129
145
  ...(row.git_sha === null ? {} : { gitSha: row.git_sha }),
@@ -144,21 +160,144 @@ const runStatements = (db, statements) => {
144
160
  db.run(statement);
145
161
  }
146
162
  };
163
+ const LEGACY_PROVISION_TABLES = [
164
+ 'topo_provisions',
165
+ 'topo_trail_provisions',
166
+ ];
167
+ const ALL_TOPO_TABLES = [
168
+ 'topo_exports',
169
+ 'topo_schemas',
170
+ 'topo_examples',
171
+ 'topo_trailheads',
172
+ 'topo_trail_signals',
173
+ 'topo_signals',
174
+ 'topo_trail_on',
175
+ 'topo_trail_fires',
176
+ 'topo_resources',
177
+ 'topo_trail_resources',
178
+ 'topo_crossings',
179
+ 'topo_trails',
180
+ 'topo_pins',
181
+ 'topo_saves',
182
+ ];
183
+ const notifyLegacyDrop = (savesCleared) => {
184
+ // biome-ignore lint/suspicious/noConsole: one-shot migration notice
185
+ console.info(savesCleared
186
+ ? 'topo store schema updated per ADR-0023; previous topo saves cleared'
187
+ : 'topo store schema updated per ADR-0023; legacy provision tables removed');
188
+ };
189
+ const topoSavesHasLegacyProvisionColumn = (db) => {
190
+ if (!tableExists(db, 'topo_saves')) {
191
+ return false;
192
+ }
193
+ const columns = db
194
+ .query('PRAGMA table_info(topo_saves)')
195
+ .all();
196
+ return columns.some((column) => column.name === 'provision_count');
197
+ };
198
+ const dropAllTopoTables = (db) => {
199
+ for (const table of ALL_TOPO_TABLES) {
200
+ db.run(`DROP TABLE IF EXISTS ${table}`);
201
+ }
202
+ };
203
+ const dropLegacyProvisionTables = (db) => {
204
+ let dropped = false;
205
+ for (const table of LEGACY_PROVISION_TABLES) {
206
+ if (tableExists(db, table)) {
207
+ db.run(`DROP TABLE IF EXISTS ${table}`);
208
+ dropped = true;
209
+ }
210
+ }
211
+ return dropped;
212
+ };
213
+ /**
214
+ * Drop legacy provision schema per ADR-0023.
215
+ *
216
+ * Returns `true` when anything legacy was dropped — either the orphan
217
+ * `topo_provisions` / `topo_trail_provisions` tables, or the full topo
218
+ * table set (because `topo_saves` still carried the legacy `provision_count`
219
+ * column). In either case the caller MUST recreate every table from scratch,
220
+ * regardless of the recorded subsystem version. The version-delta migration
221
+ * branches only add incremental tables and cannot be trusted to rebuild
222
+ * missing base tables.
223
+ *
224
+ * Pure-rename stores (v4 with `resource_count` already in place) return
225
+ * `false` and skip the rebuild path.
226
+ */
227
+ const dropLegacyProvisionSchema = (db) => {
228
+ const droppedLegacyTables = dropLegacyProvisionTables(db);
229
+ const hasLegacyColumn = topoSavesHasLegacyProvisionColumn(db);
230
+ if (hasLegacyColumn) {
231
+ dropAllTopoTables(db);
232
+ }
233
+ const anyDropHappened = droppedLegacyTables || hasLegacyColumn;
234
+ if (anyDropHappened) {
235
+ notifyLegacyDrop(hasLegacyColumn);
236
+ }
237
+ return anyDropHappened;
238
+ };
239
+ const createAllTopoTables = (db) => {
240
+ runStatements(db, TOPO_TABLE_STATEMENTS);
241
+ runStatements(db, TOPO_INDEX_STATEMENTS);
242
+ };
243
+ const createSchemaCacheAndExportTables = (db) => {
244
+ // v2→v3: add schema cache and export tables
245
+ runStatements(db, TOPO_TABLE_STATEMENTS.slice(10, 12));
246
+ runStatements(db, TOPO_INDEX_STATEMENTS.slice(10, 12));
247
+ };
248
+ const createSignalEdgeTables = (db) => {
249
+ // v3→v4: add persisted signal edges (fires/on)
250
+ runStatements(db, TOPO_TABLE_STATEMENTS.slice(12));
251
+ runStatements(db, TOPO_INDEX_STATEMENTS.slice(12));
252
+ };
253
+ const runVersionDeltaMigration = (db, currentVersion) => {
254
+ if (currentVersion < 2) {
255
+ createAllTopoTables(db);
256
+ return;
257
+ }
258
+ if (currentVersion === 2) {
259
+ createSchemaCacheAndExportTables(db);
260
+ }
261
+ if (currentVersion < 4) {
262
+ createSignalEdgeTables(db);
263
+ return;
264
+ }
265
+ // currentVersion >= 4: (re)create all tables with the new resource*
266
+ // names. IF NOT EXISTS guards keep this safe when the store was already
267
+ // consistent.
268
+ createAllTopoTables(db);
269
+ };
270
+ const runTopoMigration = (db, currentVersion) => {
271
+ // v4→v5 (ADR-0023): drop any legacy `provision*` tables and rebuild
272
+ // `topo_saves` when it still carries the legacy `provision_count`
273
+ // column. Runs before the create-if-not-exists statements below so
274
+ // the new schema lands cleanly. Rows are not migrated.
275
+ const legacyDropHappened = dropLegacyProvisionSchema(db);
276
+ // When any legacy artifact was dropped — orphan provision tables OR the
277
+ // full topo table set — the version-delta branches can't be trusted to
278
+ // recreate the base tables (v2/v3 deltas only add incremental tables and
279
+ // would leave the store permanently missing `topo_resources`,
280
+ // `topo_trail_resources`, etc.). Rebuild everything from scratch and skip
281
+ // the old deltas.
282
+ if (legacyDropHappened) {
283
+ createAllTopoTables(db);
284
+ return;
285
+ }
286
+ runVersionDeltaMigration(db, currentVersion);
287
+ };
288
+ /**
289
+ * Current topo subsystem schema version. Exported so read-only callers can
290
+ * peek at `meta_schema_versions` and skip the write-mode migration escalation
291
+ * when the store is already current.
292
+ */
293
+ export const TOPO_SCHEMA_VERSION = 5;
147
294
  export const ensureTopoHistorySchema = (db) => {
148
295
  ensureSubsystemSchema(db, {
149
296
  migrate: (currentVersion) => {
150
- if (currentVersion < 2) {
151
- runStatements(db, TOPO_TABLE_STATEMENTS);
152
- runStatements(db, TOPO_INDEX_STATEMENTS);
153
- }
154
- if (currentVersion === 2) {
155
- // v2→v3: add schema cache and export tables
156
- runStatements(db, TOPO_TABLE_STATEMENTS.slice(10));
157
- runStatements(db, TOPO_INDEX_STATEMENTS.slice(10));
158
- }
297
+ runTopoMigration(db, currentVersion);
159
298
  },
160
299
  subsystem: TOPO_SUBSYSTEM,
161
- version: 3,
300
+ version: TOPO_SCHEMA_VERSION,
162
301
  });
163
302
  };
164
303
  export const insertTopoSaveRecord = (db, input) => {
@@ -166,20 +305,20 @@ export const insertTopoSaveRecord = (db, input) => {
166
305
  createdAt: input?.createdAt ?? new Date().toISOString(),
167
306
  gitDirty: input?.gitDirty ?? false,
168
307
  id: input?.id ?? Bun.randomUUIDv7(),
169
- provisionCount: input?.provisionCount ?? 0,
308
+ resourceCount: input?.resourceCount ?? 0,
170
309
  signalCount: input?.signalCount ?? 0,
171
310
  trailCount: input?.trailCount ?? 0,
172
311
  ...(input?.gitSha === undefined ? {} : { gitSha: input.gitSha }),
173
312
  };
174
313
  db.run(`INSERT INTO topo_saves (
175
- id, git_sha, git_dirty, trail_count, signal_count, provision_count, created_at
314
+ id, git_sha, git_dirty, trail_count, signal_count, resource_count, created_at
176
315
  ) VALUES (?, ?, ?, ?, ?, ?, ?)`, [
177
316
  record.id,
178
317
  record.gitSha ?? null,
179
318
  record.gitDirty ? 1 : 0,
180
319
  record.trailCount,
181
320
  record.signalCount,
182
- record.provisionCount,
321
+ record.resourceCount,
183
322
  record.createdAt,
184
323
  ]);
185
324
  return record;
@@ -206,7 +345,7 @@ export const listTopoSaves = (db) => {
206
345
  return [];
207
346
  }
208
347
  const rows = db
209
- .query(`SELECT id, git_sha, git_dirty, trail_count, signal_count, provision_count, created_at
348
+ .query(`SELECT id, git_sha, git_dirty, trail_count, signal_count, resource_count, created_at
210
349
  FROM topo_saves
211
350
  ORDER BY created_at DESC, id DESC`)
212
351
  .all();
@@ -249,7 +388,7 @@ export const getTopoSave = (db, id) => {
249
388
  return undefined;
250
389
  }
251
390
  const row = db
252
- .query(`SELECT id, git_sha, git_dirty, trail_count, signal_count, provision_count, created_at
391
+ .query(`SELECT id, git_sha, git_dirty, trail_count, signal_count, resource_count, created_at
253
392
  FROM topo_saves
254
393
  WHERE id = ?`)
255
394
  .get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"topo-saves.js","sourceRoot":"","sources":["../../src/internal/topo-saves.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topo-saves.js","sourceRoot":"","sources":["../../src/internal/topo-saves.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { Database } from 'bun:sqlite';
2
+ export interface TopoSnapshot {
3
+ readonly createdAt: string;
4
+ readonly gitDirty: boolean;
5
+ readonly gitSha?: string;
6
+ readonly id: string;
7
+ readonly pinnedAs?: string;
8
+ readonly resourceCount: number;
9
+ readonly signalCount: number;
10
+ readonly trailCount: number;
11
+ }
12
+ export interface CreateTopoSnapshotInput {
13
+ readonly createdAt?: string;
14
+ readonly gitDirty?: boolean;
15
+ readonly gitSha?: string;
16
+ readonly id?: string;
17
+ readonly resourceCount?: number;
18
+ readonly signalCount?: number;
19
+ readonly trailCount?: number;
20
+ }
21
+ export interface ListTopoSnapshotsOptions {
22
+ readonly before?: string;
23
+ readonly limit?: number;
24
+ readonly pinned?: boolean;
25
+ }
26
+ /**
27
+ * Current topo subsystem schema version.
28
+ *
29
+ * Version 8 adds `pattern TEXT` column to `topo_trails`.
30
+ *
31
+ * Version 7 defined the snapshot-first topo tables (`topo_snapshots`,
32
+ * `topo_surfaces`, and `snapshot_id` foreign keys) as the only supported
33
+ * schema. Older pre-release tables are ignored in place; we create the current
34
+ * tables and advance the subsystem version without translating or deleting
35
+ * legacy rows.
36
+ */
37
+ export declare const TOPO_SCHEMA_VERSION = 8;
38
+ export declare const ensureTopoSnapshotSchema: (db: Database) => void;
39
+ export declare const insertTopoSnapshotRecord: (db: Database, input?: CreateTopoSnapshotInput) => TopoSnapshot;
40
+ export declare const readTopoSnapshot: (db: Database, id: string) => TopoSnapshot | undefined;
41
+ export declare const readPinnedTopoSnapshot: (db: Database, name: string) => TopoSnapshot | undefined;
42
+ export declare const listTopoSnapshots: (db: Database, options?: ListTopoSnapshotsOptions) => readonly TopoSnapshot[];
43
+ export declare const countTopoSnapshots: (db: Database) => number;
44
+ export declare const countPinnedSnapshots: (db: Database) => number;
45
+ export declare const countPrunableSnapshots: (db: Database, options: {
46
+ readonly keep: number;
47
+ }) => number;
48
+ export declare const createTopoSnapshot: (db: Database, input?: CreateTopoSnapshotInput) => TopoSnapshot;
49
+ export declare const pinTopoSnapshot: (db: Database, input: {
50
+ readonly id: string;
51
+ readonly name: string;
52
+ }) => TopoSnapshot | undefined;
53
+ export declare const unpinTopoSnapshot: (db: Database, nameOrId: string) => TopoSnapshot | undefined;
54
+ export declare const pruneUnpinnedSnapshots: (db: Database, options: {
55
+ readonly keep: number;
56
+ }) => number;
57
+ //# sourceMappingURL=topo-snapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topo-snapshots.d.ts","sourceRoot":"","sources":["../../src/internal/topo-snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAoJ7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAiCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,eAAO,MAAM,wBAAwB,GAAI,IAAI,QAAQ,KAAG,IAWvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,IAAI,QAAQ,EACZ,QAAQ,uBAAuB,KAC9B,YA4BF,CAAC;AASF,eAAO,MAAM,gBAAgB,GAC3B,IAAI,QAAQ,EACZ,IAAI,MAAM,KACT,YAAY,GAAG,SAYjB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,MAAM,MAAM,KACX,YAAY,GAAG,SAajB,CAAC;AAiFF,eAAO,MAAM,iBAAiB,GAC5B,IAAI,QAAQ,EACZ,UAAU,wBAAwB,KACjC,SAAS,YAAY,EAAsD,CAAC;AAW/E,eAAO,MAAM,kBAAkB,GAAI,IAAI,QAAQ,KAAG,MAKjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,IAAI,QAAQ,KAAG,MAKnD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAiBF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,IAAI,QAAQ,EACZ,QAAQ,uBAAuB,KAC9B,YAGF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,IAAI,QAAQ,EACZ,OAAO;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACpD,YAAY,GAAG,SAmBjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,IAAI,QAAQ,EACZ,UAAU,MAAM,KACf,YAAY,GAAG,SAgBjB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAwBF,CAAC"}