@ontrails/trails 1.0.0-beta.15 → 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.
Files changed (201) hide show
  1. package/CHANGELOG.md +197 -2
  2. package/README.md +27 -0
  3. package/package.json +19 -8
  4. package/src/app.ts +15 -5
  5. package/src/cli.ts +303 -10
  6. package/src/completions.ts +240 -0
  7. package/src/load-app-mirror.ts +160 -0
  8. package/src/local-state-io.ts +153 -0
  9. package/src/project-writes.ts +320 -0
  10. package/src/run-collision.ts +125 -0
  11. package/src/run-completions-install.ts +179 -0
  12. package/src/run-example.ts +149 -0
  13. package/src/run-examples.ts +148 -0
  14. package/src/run-quiet.ts +75 -0
  15. package/src/run-trace.ts +273 -0
  16. package/src/run-warden.ts +39 -0
  17. package/src/run-watch.ts +432 -0
  18. package/src/scaffold-versions.generated.ts +12 -0
  19. package/src/trails/add-surface.ts +45 -23
  20. package/src/trails/add-trail.ts +27 -17
  21. package/src/trails/add-verify.ts +57 -17
  22. package/src/trails/completions-complete.ts +165 -0
  23. package/src/trails/completions.ts +47 -0
  24. package/src/trails/create-scaffold.ts +86 -33
  25. package/src/trails/create.ts +11 -3
  26. package/src/trails/dev-clean.ts +6 -1
  27. package/src/trails/dev-reset.ts +6 -1
  28. package/src/trails/dev-stats.ts +6 -1
  29. package/src/trails/dev-support.ts +29 -17
  30. package/src/trails/draft-promote.ts +289 -80
  31. package/src/trails/guide.ts +54 -34
  32. package/src/trails/load-app.ts +251 -56
  33. package/src/trails/root-dir.ts +21 -0
  34. package/src/trails/run-example.ts +482 -0
  35. package/src/trails/run-examples.ts +141 -0
  36. package/src/trails/run.ts +403 -0
  37. package/src/trails/survey.ts +506 -200
  38. package/src/trails/topo-activation.ts +385 -0
  39. package/src/trails/topo-compile.ts +55 -0
  40. package/src/trails/topo-history.ts +6 -1
  41. package/src/trails/topo-output-schemas.ts +175 -0
  42. package/src/trails/topo-pin.ts +19 -6
  43. package/src/trails/topo-read-support.ts +171 -228
  44. package/src/trails/topo-reports.ts +400 -25
  45. package/src/trails/topo-store-support.ts +43 -19
  46. package/src/trails/topo-support.ts +18 -28
  47. package/src/trails/topo-unpin.ts +6 -1
  48. package/src/trails/topo-verify.ts +18 -5
  49. package/src/trails/topo.ts +60 -23
  50. package/src/trails/warden-guide.ts +121 -0
  51. package/src/trails/warden.ts +137 -56
  52. package/src/versions.ts +3 -18
  53. package/.turbo/turbo-build.log +0 -1
  54. package/.turbo/turbo-lint.log +0 -3
  55. package/.turbo/turbo-typecheck.log +0 -1
  56. package/__tests__/examples.test.ts +0 -45
  57. package/dist/bin/trails.d.ts +0 -3
  58. package/dist/bin/trails.d.ts.map +0 -1
  59. package/dist/bin/trails.js +0 -4
  60. package/dist/bin/trails.js.map +0 -1
  61. package/dist/src/app.d.ts +0 -2
  62. package/dist/src/app.d.ts.map +0 -1
  63. package/dist/src/app.js +0 -22
  64. package/dist/src/app.js.map +0 -1
  65. package/dist/src/clack.d.ts +0 -9
  66. package/dist/src/clack.d.ts.map +0 -1
  67. package/dist/src/clack.js +0 -84
  68. package/dist/src/clack.js.map +0 -1
  69. package/dist/src/cli.d.ts +0 -2
  70. package/dist/src/cli.d.ts.map +0 -1
  71. package/dist/src/cli.js +0 -14
  72. package/dist/src/cli.js.map +0 -1
  73. package/dist/src/trails/add-surface.d.ts +0 -13
  74. package/dist/src/trails/add-surface.d.ts.map +0 -1
  75. package/dist/src/trails/add-surface.js +0 -110
  76. package/dist/src/trails/add-surface.js.map +0 -1
  77. package/dist/src/trails/add-trail.d.ts +0 -12
  78. package/dist/src/trails/add-trail.d.ts.map +0 -1
  79. package/dist/src/trails/add-trail.js +0 -104
  80. package/dist/src/trails/add-trail.js.map +0 -1
  81. package/dist/src/trails/add-trailhead.d.ts +0 -13
  82. package/dist/src/trails/add-trailhead.d.ts.map +0 -1
  83. package/dist/src/trails/add-trailhead.js +0 -88
  84. package/dist/src/trails/add-trailhead.js.map +0 -1
  85. package/dist/src/trails/add-verify.d.ts +0 -10
  86. package/dist/src/trails/add-verify.d.ts.map +0 -1
  87. package/dist/src/trails/add-verify.js +0 -68
  88. package/dist/src/trails/add-verify.js.map +0 -1
  89. package/dist/src/trails/create-scaffold.d.ts +0 -15
  90. package/dist/src/trails/create-scaffold.d.ts.map +0 -1
  91. package/dist/src/trails/create-scaffold.js +0 -295
  92. package/dist/src/trails/create-scaffold.js.map +0 -1
  93. package/dist/src/trails/create.d.ts +0 -18
  94. package/dist/src/trails/create.d.ts.map +0 -1
  95. package/dist/src/trails/create.js +0 -126
  96. package/dist/src/trails/create.js.map +0 -1
  97. package/dist/src/trails/dev-clean.d.ts +0 -9
  98. package/dist/src/trails/dev-clean.d.ts.map +0 -1
  99. package/dist/src/trails/dev-clean.js +0 -66
  100. package/dist/src/trails/dev-clean.js.map +0 -1
  101. package/dist/src/trails/dev-reset.d.ts +0 -6
  102. package/dist/src/trails/dev-reset.d.ts.map +0 -1
  103. package/dist/src/trails/dev-reset.js +0 -39
  104. package/dist/src/trails/dev-reset.js.map +0 -1
  105. package/dist/src/trails/dev-stats.d.ts +0 -7
  106. package/dist/src/trails/dev-stats.d.ts.map +0 -1
  107. package/dist/src/trails/dev-stats.js +0 -61
  108. package/dist/src/trails/dev-stats.js.map +0 -1
  109. package/dist/src/trails/dev-support.d.ts +0 -64
  110. package/dist/src/trails/dev-support.d.ts.map +0 -1
  111. package/dist/src/trails/dev-support.js +0 -181
  112. package/dist/src/trails/dev-support.js.map +0 -1
  113. package/dist/src/trails/draft-promote.d.ts +0 -18
  114. package/dist/src/trails/draft-promote.d.ts.map +0 -1
  115. package/dist/src/trails/draft-promote.js +0 -400
  116. package/dist/src/trails/draft-promote.js.map +0 -1
  117. package/dist/src/trails/guide.d.ts +0 -21
  118. package/dist/src/trails/guide.d.ts.map +0 -1
  119. package/dist/src/trails/guide.js +0 -61
  120. package/dist/src/trails/guide.js.map +0 -1
  121. package/dist/src/trails/load-app.d.ts +0 -12
  122. package/dist/src/trails/load-app.d.ts.map +0 -1
  123. package/dist/src/trails/load-app.js +0 -415
  124. package/dist/src/trails/load-app.js.map +0 -1
  125. package/dist/src/trails/project.d.ts +0 -8
  126. package/dist/src/trails/project.d.ts.map +0 -1
  127. package/dist/src/trails/project.js +0 -54
  128. package/dist/src/trails/project.js.map +0 -1
  129. package/dist/src/trails/survey.d.ts +0 -18
  130. package/dist/src/trails/survey.d.ts.map +0 -1
  131. package/dist/src/trails/survey.js +0 -234
  132. package/dist/src/trails/survey.js.map +0 -1
  133. package/dist/src/trails/topo-constants.d.ts +0 -3
  134. package/dist/src/trails/topo-constants.d.ts.map +0 -1
  135. package/dist/src/trails/topo-constants.js +0 -3
  136. package/dist/src/trails/topo-constants.js.map +0 -1
  137. package/dist/src/trails/topo-export.d.ts +0 -19
  138. package/dist/src/trails/topo-export.d.ts.map +0 -1
  139. package/dist/src/trails/topo-export.js +0 -31
  140. package/dist/src/trails/topo-export.js.map +0 -1
  141. package/dist/src/trails/topo-history.d.ts +0 -20
  142. package/dist/src/trails/topo-history.d.ts.map +0 -1
  143. package/dist/src/trails/topo-history.js +0 -32
  144. package/dist/src/trails/topo-history.js.map +0 -1
  145. package/dist/src/trails/topo-pin.d.ts +0 -17
  146. package/dist/src/trails/topo-pin.d.ts.map +0 -1
  147. package/dist/src/trails/topo-pin.js +0 -31
  148. package/dist/src/trails/topo-pin.js.map +0 -1
  149. package/dist/src/trails/topo-read-support.d.ts +0 -58
  150. package/dist/src/trails/topo-read-support.d.ts.map +0 -1
  151. package/dist/src/trails/topo-read-support.js +0 -167
  152. package/dist/src/trails/topo-read-support.js.map +0 -1
  153. package/dist/src/trails/topo-reports.d.ts +0 -54
  154. package/dist/src/trails/topo-reports.d.ts.map +0 -1
  155. package/dist/src/trails/topo-reports.js +0 -128
  156. package/dist/src/trails/topo-reports.js.map +0 -1
  157. package/dist/src/trails/topo-show.d.ts +0 -23
  158. package/dist/src/trails/topo-show.d.ts.map +0 -1
  159. package/dist/src/trails/topo-show.js +0 -49
  160. package/dist/src/trails/topo-show.js.map +0 -1
  161. package/dist/src/trails/topo-store-support.d.ts +0 -13
  162. package/dist/src/trails/topo-store-support.d.ts.map +0 -1
  163. package/dist/src/trails/topo-store-support.js +0 -55
  164. package/dist/src/trails/topo-store-support.js.map +0 -1
  165. package/dist/src/trails/topo-support.d.ts +0 -76
  166. package/dist/src/trails/topo-support.d.ts.map +0 -1
  167. package/dist/src/trails/topo-support.js +0 -132
  168. package/dist/src/trails/topo-support.js.map +0 -1
  169. package/dist/src/trails/topo-unpin.d.ts +0 -20
  170. package/dist/src/trails/topo-unpin.d.ts.map +0 -1
  171. package/dist/src/trails/topo-unpin.js +0 -44
  172. package/dist/src/trails/topo-unpin.js.map +0 -1
  173. package/dist/src/trails/topo-verify.d.ts +0 -5
  174. package/dist/src/trails/topo-verify.d.ts.map +0 -1
  175. package/dist/src/trails/topo-verify.js +0 -24
  176. package/dist/src/trails/topo-verify.js.map +0 -1
  177. package/dist/src/trails/topo.d.ts +0 -5
  178. package/dist/src/trails/topo.d.ts.map +0 -1
  179. package/dist/src/trails/topo.js +0 -63
  180. package/dist/src/trails/topo.js.map +0 -1
  181. package/dist/src/trails/warden.d.ts +0 -20
  182. package/dist/src/trails/warden.d.ts.map +0 -1
  183. package/dist/src/trails/warden.js +0 -98
  184. package/dist/src/trails/warden.js.map +0 -1
  185. package/dist/src/versions.d.ts +0 -12
  186. package/dist/src/versions.d.ts.map +0 -1
  187. package/dist/src/versions.js +0 -23
  188. package/dist/src/versions.js.map +0 -1
  189. package/dist/tsconfig.tsbuildinfo +0 -1
  190. package/src/__tests__/add-trail.test.ts +0 -97
  191. package/src/__tests__/create.test.ts +0 -415
  192. package/src/__tests__/draft-promote.test.ts +0 -144
  193. package/src/__tests__/guide.test.ts +0 -96
  194. package/src/__tests__/load-app.test.ts +0 -419
  195. package/src/__tests__/survey.test.ts +0 -377
  196. package/src/__tests__/topo-dev.test.ts +0 -426
  197. package/src/__tests__/warden.test.ts +0 -74
  198. package/src/trails/topo-export.ts +0 -35
  199. package/src/trails/topo-show.ts +0 -54
  200. package/tsconfig.json +0 -9
  201. package/tsconfig.tests.json +0 -10
@@ -1,61 +0,0 @@
1
- import { Result, trail } from '@ontrails/core';
2
- import { z } from 'zod';
3
- import { buildDevStats, DEFAULT_TOPO_SNAPSHOT_RETENTION, } from './dev-support.js';
4
- import { createIsolatedExampleInput } from './topo-support.js';
5
- export const devStatsTrail = trail('dev.stats', {
6
- blaze: (input, ctx) => {
7
- const rootDir = input.rootDir ?? ctx.cwd ?? process.cwd();
8
- return Result.ok(buildDevStats({
9
- maxAge: input.traceAgeMs,
10
- maxRecords: input.traces,
11
- rootDir,
12
- snapshotRetention: input.snapshots,
13
- }));
14
- },
15
- description: 'Show local Trails workspace state and retention',
16
- examples: [
17
- {
18
- input: { rootDir: createIsolatedExampleInput('dev-stats').rootDir },
19
- name: 'Show local dev state',
20
- },
21
- ],
22
- input: z.object({
23
- rootDir: z.string().optional().describe('Workspace root directory'),
24
- snapshots: z
25
- .number()
26
- .default(DEFAULT_TOPO_SNAPSHOT_RETENTION)
27
- .describe('Unpinned topo snapshots to retain'),
28
- traceAgeMs: z
29
- .number()
30
- .default(7 * 24 * 60 * 60 * 1000)
31
- .describe('Maximum retained trace age in milliseconds'),
32
- traces: z.number().default(10_000).describe('Maximum retained trace count'),
33
- }),
34
- intent: 'read',
35
- output: z.object({
36
- db: z.object({
37
- exists: z.boolean(),
38
- fileSizeBytes: z.number(),
39
- path: z.string(),
40
- }),
41
- lock: z.object({
42
- exists: z.boolean(),
43
- fileSizeBytes: z.number(),
44
- path: z.string(),
45
- }),
46
- retention: z.object({
47
- snapshots: z.number(),
48
- traceAgeMs: z.number(),
49
- traces: z.number(),
50
- }),
51
- topo: z.object({
52
- pinnedCount: z.number(),
53
- prunableSnapshotCount: z.number(),
54
- snapshotCount: z.number(),
55
- }),
56
- tracing: z.object({
57
- recordCount: z.number(),
58
- }),
59
- }),
60
- });
61
- //# sourceMappingURL=dev-stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev-stats.js","sourceRoot":"","sources":["../../../src/trails/dev-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,EAAE;IAC9C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,EAAE,CACd,aAAa,CAAC;YACZ,MAAM,EAAE,KAAK,CAAC,UAAU;YACxB,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,OAAO;YACP,iBAAiB,EAAE,KAAK,CAAC,SAAS;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,WAAW,EAAE,iDAAiD;IAC9D,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;YACnE,IAAI,EAAE,sBAAsB;SAC7B;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACnE,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,OAAO,CAAC,+BAA+B,CAAC;aACxC,QAAQ,CAAC,mCAAmC,CAAC;QAChD,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;aAChC,QAAQ,CAAC,4CAA4C,CAAC;QACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KAC5E,CAAC;IACF,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;YACX,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;YACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;YACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACnB,CAAC;QACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;YACjC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;SACxB,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
@@ -1,64 +0,0 @@
1
- export declare const DEFAULT_TOPO_SNAPSHOT_RETENTION = 50;
2
- export interface DevStatsReport {
3
- readonly db: {
4
- readonly exists: boolean;
5
- readonly fileSizeBytes: number;
6
- readonly path: string;
7
- };
8
- readonly lock: {
9
- readonly exists: boolean;
10
- readonly fileSizeBytes: number;
11
- readonly path: string;
12
- };
13
- readonly retention: {
14
- readonly snapshots: number;
15
- readonly traceAgeMs: number;
16
- readonly traces: number;
17
- };
18
- readonly topo: {
19
- readonly pinnedCount: number;
20
- readonly prunableSnapshotCount: number;
21
- readonly snapshotCount: number;
22
- };
23
- readonly tracing: {
24
- readonly recordCount: number;
25
- };
26
- }
27
- export interface DevCleanReport {
28
- readonly dryRun: boolean;
29
- readonly remaining: {
30
- readonly pinnedCount: number;
31
- readonly snapshotCount: number;
32
- readonly traceCount: number;
33
- };
34
- readonly removed: {
35
- readonly topoSnapshots: number;
36
- readonly traceRecords: number;
37
- };
38
- readonly retention: {
39
- readonly snapshots: number;
40
- readonly traceAgeMs: number;
41
- readonly traces: number;
42
- };
43
- }
44
- export interface DevResetReport {
45
- readonly dryRun: boolean;
46
- readonly removedCount: number;
47
- readonly removedFiles: readonly string[];
48
- }
49
- interface DevRetentionOptions {
50
- readonly maxAge?: number;
51
- readonly maxRecords?: number;
52
- readonly rootDir?: string;
53
- readonly snapshotRetention?: number;
54
- }
55
- export declare const buildDevStats: (options?: DevRetentionOptions) => DevStatsReport;
56
- export declare const cleanDevState: (options?: DevRetentionOptions & {
57
- readonly dryRun?: boolean;
58
- }) => DevCleanReport;
59
- export declare const resetDevState: (options?: {
60
- readonly dryRun?: boolean;
61
- readonly rootDir?: string;
62
- }) => DevResetReport;
63
- export {};
64
- //# sourceMappingURL=dev-support.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev-support.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-support.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAYlD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE;QACX,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AA+KD,eAAO,MAAM,aAAa,GACxB,UAAU,mBAAmB,KAC5B,cAeF,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,UAAU,mBAAmB,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,KAC5D,cAeF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,KAAG,cAqBH,CAAC"}
@@ -1,181 +0,0 @@
1
- import { existsSync, rmSync, statSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { countPinnedSnapshots, countPrunableSnapshots, countTopoSnapshots, pruneUnpinnedSnapshots, } from '@ontrails/core/internal/topo-snapshots';
4
- import { openReadTrailsDb, openWriteTrailsDb, deriveTrailsDbPath, deriveTrailsDir, } from '@ontrails/core/internal/trails-db';
5
- import { DEFAULT_MAX_AGE, DEFAULT_MAX_RECORDS, applyTraceCleanup, countTraceRecords, previewTraceCleanup, } from '@ontrails/tracing/internal/dev-state';
6
- export const DEFAULT_TOPO_SNAPSHOT_RETENTION = 50;
7
- const deriveRootDir = (cwd) => cwd ?? process.cwd();
8
- const removeIfPresent = (filePath) => {
9
- if (!existsSync(filePath)) {
10
- return false;
11
- }
12
- rmSync(filePath, { force: true });
13
- return true;
14
- };
15
- const buildRetention = (options) => ({
16
- snapshots: options?.snapshotRetention ?? DEFAULT_TOPO_SNAPSHOT_RETENTION,
17
- traceAgeMs: options?.maxAge ?? DEFAULT_MAX_AGE,
18
- traces: options?.maxRecords ?? DEFAULT_MAX_RECORDS,
19
- });
20
- const emptyDevClean = (retention, dryRun) => ({
21
- dryRun,
22
- remaining: {
23
- pinnedCount: 0,
24
- snapshotCount: 0,
25
- traceCount: 0,
26
- },
27
- removed: {
28
- topoSnapshots: 0,
29
- traceRecords: 0,
30
- },
31
- retention,
32
- });
33
- const buildLockStats = (lockPath) => ({
34
- exists: existsSync(lockPath),
35
- fileSizeBytes: existsSync(lockPath) ? statSync(lockPath).size : 0,
36
- path: lockPath,
37
- });
38
- const buildDbStats = (dbPath, exists) => ({
39
- exists,
40
- fileSizeBytes: exists ? statSync(dbPath).size : 0,
41
- path: '.trails/trails.db',
42
- });
43
- const emptyDevStats = (dbPath, lockPath, retention) => ({
44
- db: buildDbStats(dbPath, false),
45
- lock: buildLockStats(lockPath),
46
- retention,
47
- topo: {
48
- pinnedCount: 0,
49
- prunableSnapshotCount: 0,
50
- snapshotCount: 0,
51
- },
52
- tracing: {
53
- recordCount: 0,
54
- },
55
- });
56
- const liveDevStats = (db, dbPath, lockPath, retention) => ({
57
- db: buildDbStats(dbPath, true),
58
- lock: buildLockStats(lockPath),
59
- retention,
60
- topo: {
61
- pinnedCount: countPinnedSnapshots(db),
62
- prunableSnapshotCount: countPrunableSnapshots(db, {
63
- keep: retention.snapshots,
64
- }),
65
- snapshotCount: countTopoSnapshots(db),
66
- },
67
- tracing: {
68
- recordCount: countTraceRecords(db),
69
- },
70
- });
71
- const deriveDevStatsContext = (options) => {
72
- const rootDir = deriveRootDir(options?.rootDir);
73
- const dbPath = deriveTrailsDbPath({ rootDir });
74
- const trailsDir = deriveTrailsDir({ rootDir });
75
- const lockPath = join(trailsDir, 'trails.lock');
76
- return {
77
- dbExists: existsSync(dbPath),
78
- dbPath,
79
- lockPath,
80
- retention: buildRetention(options),
81
- rootDir,
82
- };
83
- };
84
- const deriveDevCleanupContext = (options) => {
85
- const rootDir = deriveRootDir(options?.rootDir);
86
- return {
87
- dbPath: deriveTrailsDbPath({ rootDir }),
88
- dryRun: options?.dryRun ?? false,
89
- retention: buildRetention(options),
90
- rootDir,
91
- };
92
- };
93
- const cleanupTraces = (db, context) => context.dryRun
94
- ? previewTraceCleanup(db, {
95
- maxAge: context.retention.traceAgeMs,
96
- maxRecords: context.retention.traces,
97
- })
98
- : applyTraceCleanup(db, {
99
- maxAge: context.retention.traceAgeMs,
100
- maxRecords: context.retention.traces,
101
- });
102
- const cleanupTopoSnapshots = (db, context) => context.dryRun
103
- ? countPrunableSnapshots(db, { keep: context.retention.snapshots })
104
- : pruneUnpinnedSnapshots(db, { keep: context.retention.snapshots });
105
- const buildCleanReport = (db, context) => {
106
- const traceReport = cleanupTraces(db, context);
107
- const topoRemoved = cleanupTopoSnapshots(db, context);
108
- const snapshotCount = countTopoSnapshots(db);
109
- return {
110
- dryRun: context.dryRun,
111
- remaining: {
112
- pinnedCount: countPinnedSnapshots(db),
113
- snapshotCount: context.dryRun
114
- ? snapshotCount - topoRemoved
115
- : snapshotCount,
116
- traceCount: context.dryRun
117
- ? traceReport.remaining - traceReport.removedTotal
118
- : traceReport.remaining,
119
- },
120
- removed: {
121
- topoSnapshots: topoRemoved,
122
- traceRecords: traceReport.removedTotal,
123
- },
124
- retention: context.retention,
125
- };
126
- };
127
- const RESET_FILES = [
128
- '.trails/trails.db',
129
- '.trails/trails.db-shm',
130
- '.trails/trails.db-wal',
131
- '.trails/dev/tracing.db',
132
- '.trails/dev/tracing.db-shm',
133
- '.trails/dev/tracing.db-wal',
134
- ];
135
- const presentResetFiles = (rootDir) => RESET_FILES.filter((relativePath) => existsSync(join(rootDir, relativePath)));
136
- export const buildDevStats = (options) => {
137
- const { dbExists, dbPath, lockPath, retention, rootDir } = deriveDevStatsContext(options);
138
- if (!dbExists) {
139
- return emptyDevStats(dbPath, lockPath, retention);
140
- }
141
- const db = openReadTrailsDb({ rootDir });
142
- try {
143
- return liveDevStats(db, dbPath, lockPath, retention);
144
- }
145
- finally {
146
- db.close();
147
- }
148
- };
149
- export const cleanDevState = (options) => {
150
- const context = deriveDevCleanupContext(options);
151
- if (!existsSync(context.dbPath)) {
152
- return emptyDevClean(context.retention, context.dryRun);
153
- }
154
- const db = context.dryRun
155
- ? openReadTrailsDb({ rootDir: context.rootDir })
156
- : openWriteTrailsDb({ rootDir: context.rootDir });
157
- try {
158
- return buildCleanReport(db, context);
159
- }
160
- finally {
161
- db.close();
162
- }
163
- };
164
- export const resetDevState = (options) => {
165
- const rootDir = deriveRootDir(options?.rootDir);
166
- const files = presentResetFiles(rootDir);
167
- if (options?.dryRun === true) {
168
- return {
169
- dryRun: true,
170
- removedCount: files.length,
171
- removedFiles: files,
172
- };
173
- }
174
- const removedFiles = files.filter((relativePath) => removeIfPresent(join(rootDir, relativePath)));
175
- return {
176
- dryRun: false,
177
- removedCount: removedFiles.length,
178
- removedFiles,
179
- };
180
- };
181
- //# sourceMappingURL=dev-support.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev-support.js","sourceRoot":"","sources":["../../../src/trails/dev-support.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- export declare const draftPromoteTrail: import("@ontrails/core").Trail<{
2
- fromId: string;
3
- renameFiles: boolean;
4
- toId: string;
5
- appModule?: string | undefined;
6
- rootDir?: string | undefined;
7
- }, {
8
- appModule: string | null;
9
- message: string;
10
- promotedEstablished: boolean;
11
- remainingDraftIds: string[];
12
- renamedFiles: {
13
- from: string;
14
- to: string;
15
- }[];
16
- updatedFiles: string[];
17
- }, never>;
18
- //# sourceMappingURL=draft-promote.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"draft-promote.d.ts","sourceRoot":"","sources":["../../../src/trails/draft-promote.ts"],"names":[],"mappings":"AAorBA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;SA8C5B,CAAC"}