@ontrails/warden 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.
Files changed (351) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/README.md +77 -34
  3. package/bin/warden.ts +22 -0
  4. package/package.json +26 -6
  5. package/src/ast.ts +28 -0
  6. package/src/cli.ts +1169 -116
  7. package/src/command.ts +927 -0
  8. package/src/config.ts +184 -0
  9. package/src/drift.ts +76 -34
  10. package/src/formatters.ts +54 -7
  11. package/src/guide.ts +234 -0
  12. package/src/index.ts +151 -38
  13. package/src/project-context.ts +163 -0
  14. package/src/resolve.ts +530 -0
  15. package/src/rules/activation-orphan.ts +97 -0
  16. package/src/rules/ast.ts +2884 -124
  17. package/src/rules/circular-refs.ts +154 -0
  18. package/src/rules/{context-no-trailhead-types.ts → context-no-surface-types.ts} +72 -12
  19. package/src/rules/contour-exists.ts +251 -0
  20. package/src/rules/contour-ids.ts +15 -0
  21. package/src/rules/cross-declarations.ts +277 -69
  22. package/src/rules/dead-internal-trail.ts +141 -0
  23. package/src/rules/draft-file-marking.ts +51 -3
  24. package/src/rules/draft-visible-debt.ts +40 -15
  25. package/src/rules/error-mapping-completeness.ts +288 -0
  26. package/src/rules/example-valid.ts +401 -0
  27. package/src/rules/fires-declarations.ts +758 -0
  28. package/src/rules/implementation-returns-result.ts +1042 -122
  29. package/src/rules/incomplete-accessor-for-standard-op.ts +272 -0
  30. package/src/rules/incomplete-crud.ts +580 -0
  31. package/src/rules/index.ts +156 -19
  32. package/src/rules/intent-propagation.ts +127 -0
  33. package/src/rules/layer-field-name-drift.ts +96 -0
  34. package/src/rules/metadata.ts +508 -0
  35. package/src/rules/missing-reconcile.ts +98 -0
  36. package/src/rules/missing-visibility.ts +110 -0
  37. package/src/rules/no-dev-permit-in-source.ts +99 -0
  38. package/src/rules/no-direct-implementation-call.ts +1 -1
  39. package/src/rules/no-legacy-layer-imports.ts +193 -0
  40. package/src/rules/no-native-error-result.ts +111 -0
  41. package/src/rules/no-sync-result-assumption.ts +1131 -96
  42. package/src/rules/no-throw-in-detour-recover.ts +225 -0
  43. package/src/rules/no-throw-in-implementation.ts +6 -4
  44. package/src/rules/on-references-exist.ts +194 -0
  45. package/src/rules/orphaned-signal.ts +150 -0
  46. package/src/rules/owner-projection-parity.ts +146 -0
  47. package/src/rules/permit-governance.ts +25 -0
  48. package/src/rules/public-internal-deep-imports.ts +517 -0
  49. package/src/rules/public-output-schema.ts +29 -0
  50. package/src/rules/public-union-output-discriminants.ts +150 -0
  51. package/src/rules/read-intent-fires.ts +187 -0
  52. package/src/rules/reference-exists.ts +98 -0
  53. package/src/rules/registry-names.ts +113 -0
  54. package/src/rules/resolved-import-boundary.ts +146 -0
  55. package/src/rules/{provision-declarations.ts → resource-declarations.ts} +208 -138
  56. package/src/rules/{provision-exists.ts → resource-exists.ts} +46 -51
  57. package/src/rules/resource-id-grammar.ts +65 -0
  58. package/src/rules/scan.ts +0 -26
  59. package/src/rules/scheduled-destroy-intent.ts +44 -0
  60. package/src/rules/signal-graph-coaching.ts +191 -0
  61. package/src/rules/specs.ts +5 -1
  62. package/src/rules/static-resource-accessor-preference.ts +657 -0
  63. package/src/rules/types.ts +187 -7
  64. package/src/rules/unmaterialized-activation-source.ts +84 -0
  65. package/src/rules/unreachable-detour-shadowing.ts +344 -0
  66. package/src/rules/valid-describe-refs.ts +160 -32
  67. package/src/rules/valid-detour-contract.ts +78 -0
  68. package/src/rules/warden-export-symmetry.ts +533 -0
  69. package/src/rules/warden-rules-use-ast.ts +996 -0
  70. package/src/rules/webhook-route-collision.ts +243 -0
  71. package/src/trails/activation-orphan.trail.ts +81 -0
  72. package/src/trails/circular-refs.trail.ts +29 -0
  73. package/src/trails/{context-no-trailhead-types.trail.ts → context-no-surface-types.trail.ts} +4 -4
  74. package/src/trails/contour-exists.trail.ts +21 -0
  75. package/src/trails/dead-internal-trail.trail.ts +26 -0
  76. package/src/trails/draft-file-marking.trail.ts +16 -0
  77. package/src/trails/draft-visible-debt.trail.ts +16 -0
  78. package/src/trails/error-mapping-completeness.trail.ts +29 -0
  79. package/src/trails/example-valid.trail.ts +25 -0
  80. package/src/trails/fires-declarations.trail.ts +23 -0
  81. package/src/trails/incomplete-accessor-for-standard-op.trail.ts +76 -0
  82. package/src/trails/incomplete-crud.trail.ts +39 -0
  83. package/src/trails/index.ts +56 -8
  84. package/src/trails/intent-propagation.trail.ts +30 -0
  85. package/src/trails/layer-field-name-drift.trail.ts +39 -0
  86. package/src/trails/missing-reconcile.trail.ts +33 -0
  87. package/src/trails/missing-visibility.trail.ts +22 -0
  88. package/src/trails/no-dev-permit-in-source.trail.ts +16 -0
  89. package/src/trails/no-legacy-layer-imports.trail.ts +35 -0
  90. package/src/trails/no-native-error-result.trail.ts +18 -0
  91. package/src/trails/no-throw-in-detour-recover.trail.ts +24 -0
  92. package/src/trails/on-references-exist.trail.ts +21 -0
  93. package/src/trails/orphaned-signal.trail.ts +36 -0
  94. package/src/trails/owner-projection-parity.trail.ts +26 -0
  95. package/src/trails/permit-governance.trail.ts +51 -0
  96. package/src/trails/public-internal-deep-imports.trail.ts +94 -0
  97. package/src/trails/public-output-schema.trail.ts +55 -0
  98. package/src/trails/public-union-output-discriminants.trail.ts +33 -0
  99. package/src/trails/read-intent-fires.trail.ts +20 -0
  100. package/src/trails/reference-exists.trail.ts +25 -0
  101. package/src/trails/resolved-import-boundary.trail.ts +109 -0
  102. package/src/trails/{provision-declarations.trail.ts → resource-declarations.trail.ts} +6 -6
  103. package/src/trails/{provision-exists.trail.ts → resource-exists.trail.ts} +7 -7
  104. package/src/trails/resource-id-grammar.trail.ts +39 -0
  105. package/src/trails/run.ts +133 -24
  106. package/src/trails/scheduled-destroy-intent.trail.ts +56 -0
  107. package/src/trails/schema.ts +122 -4
  108. package/src/trails/signal-graph-coaching.trail.ts +74 -0
  109. package/src/trails/static-resource-accessor-preference.trail.ts +25 -0
  110. package/src/trails/unmaterialized-activation-source.trail.ts +69 -0
  111. package/src/trails/unreachable-detour-shadowing.trail.ts +45 -0
  112. package/src/trails/valid-detour-contract.trail.ts +71 -0
  113. package/src/trails/warden-export-symmetry.trail.ts +16 -0
  114. package/src/trails/warden-rules-use-ast.trail.ts +45 -0
  115. package/src/trails/webhook-route-collision.trail.ts +50 -0
  116. package/src/trails/wrap-rule.ts +133 -14
  117. package/src/workspaces.ts +238 -0
  118. package/.turbo/turbo-build.log +0 -1
  119. package/.turbo/turbo-lint.log +0 -3
  120. package/.turbo/turbo-typecheck.log +0 -1
  121. package/dist/cli.d.ts +0 -46
  122. package/dist/cli.d.ts.map +0 -1
  123. package/dist/cli.js +0 -247
  124. package/dist/cli.js.map +0 -1
  125. package/dist/draft.d.ts +0 -5
  126. package/dist/draft.d.ts.map +0 -1
  127. package/dist/draft.js +0 -16
  128. package/dist/draft.js.map +0 -1
  129. package/dist/drift.d.ts +0 -29
  130. package/dist/drift.d.ts.map +0 -1
  131. package/dist/drift.js +0 -61
  132. package/dist/drift.js.map +0 -1
  133. package/dist/formatters.d.ts +0 -30
  134. package/dist/formatters.d.ts.map +0 -1
  135. package/dist/formatters.js +0 -98
  136. package/dist/formatters.js.map +0 -1
  137. package/dist/index.d.ts +0 -37
  138. package/dist/index.d.ts.map +0 -1
  139. package/dist/index.js +0 -38
  140. package/dist/index.js.map +0 -1
  141. package/dist/rules/ast.d.ts +0 -82
  142. package/dist/rules/ast.d.ts.map +0 -1
  143. package/dist/rules/ast.js +0 -363
  144. package/dist/rules/ast.js.map +0 -1
  145. package/dist/rules/context-no-surface-types.d.ts +0 -12
  146. package/dist/rules/context-no-surface-types.d.ts.map +0 -1
  147. package/dist/rules/context-no-surface-types.js +0 -96
  148. package/dist/rules/context-no-surface-types.js.map +0 -1
  149. package/dist/rules/context-no-trailhead-types.d.ts +0 -12
  150. package/dist/rules/context-no-trailhead-types.d.ts.map +0 -1
  151. package/dist/rules/context-no-trailhead-types.js +0 -96
  152. package/dist/rules/context-no-trailhead-types.js.map +0 -1
  153. package/dist/rules/cross-declarations.d.ts +0 -13
  154. package/dist/rules/cross-declarations.d.ts.map +0 -1
  155. package/dist/rules/cross-declarations.js +0 -264
  156. package/dist/rules/cross-declarations.js.map +0 -1
  157. package/dist/rules/draft-file-marking.d.ts +0 -6
  158. package/dist/rules/draft-file-marking.d.ts.map +0 -1
  159. package/dist/rules/draft-file-marking.js +0 -65
  160. package/dist/rules/draft-file-marking.js.map +0 -1
  161. package/dist/rules/draft-visible-debt.d.ts +0 -12
  162. package/dist/rules/draft-visible-debt.d.ts.map +0 -1
  163. package/dist/rules/draft-visible-debt.js +0 -45
  164. package/dist/rules/draft-visible-debt.js.map +0 -1
  165. package/dist/rules/follow-declarations.d.ts +0 -13
  166. package/dist/rules/follow-declarations.d.ts.map +0 -1
  167. package/dist/rules/follow-declarations.js +0 -264
  168. package/dist/rules/follow-declarations.js.map +0 -1
  169. package/dist/rules/implementation-returns-result.d.ts +0 -13
  170. package/dist/rules/implementation-returns-result.d.ts.map +0 -1
  171. package/dist/rules/implementation-returns-result.js +0 -277
  172. package/dist/rules/implementation-returns-result.js.map +0 -1
  173. package/dist/rules/index.d.ts +0 -20
  174. package/dist/rules/index.d.ts.map +0 -1
  175. package/dist/rules/index.js +0 -49
  176. package/dist/rules/index.js.map +0 -1
  177. package/dist/rules/no-direct-impl-in-route.d.ts +0 -12
  178. package/dist/rules/no-direct-impl-in-route.d.ts.map +0 -1
  179. package/dist/rules/no-direct-impl-in-route.js +0 -47
  180. package/dist/rules/no-direct-impl-in-route.js.map +0 -1
  181. package/dist/rules/no-direct-implementation-call.d.ts +0 -12
  182. package/dist/rules/no-direct-implementation-call.d.ts.map +0 -1
  183. package/dist/rules/no-direct-implementation-call.js +0 -39
  184. package/dist/rules/no-direct-implementation-call.js.map +0 -1
  185. package/dist/rules/no-sync-result-assumption.d.ts +0 -6
  186. package/dist/rules/no-sync-result-assumption.d.ts.map +0 -1
  187. package/dist/rules/no-sync-result-assumption.js +0 -98
  188. package/dist/rules/no-sync-result-assumption.js.map +0 -1
  189. package/dist/rules/no-throw-in-detour-target.d.ts +0 -12
  190. package/dist/rules/no-throw-in-detour-target.d.ts.map +0 -1
  191. package/dist/rules/no-throw-in-detour-target.js +0 -87
  192. package/dist/rules/no-throw-in-detour-target.js.map +0 -1
  193. package/dist/rules/no-throw-in-implementation.d.ts +0 -9
  194. package/dist/rules/no-throw-in-implementation.d.ts.map +0 -1
  195. package/dist/rules/no-throw-in-implementation.js +0 -34
  196. package/dist/rules/no-throw-in-implementation.js.map +0 -1
  197. package/dist/rules/prefer-schema-inference.d.ts +0 -7
  198. package/dist/rules/prefer-schema-inference.d.ts.map +0 -1
  199. package/dist/rules/prefer-schema-inference.js +0 -86
  200. package/dist/rules/prefer-schema-inference.js.map +0 -1
  201. package/dist/rules/provision-declarations.d.ts +0 -14
  202. package/dist/rules/provision-declarations.d.ts.map +0 -1
  203. package/dist/rules/provision-declarations.js +0 -344
  204. package/dist/rules/provision-declarations.js.map +0 -1
  205. package/dist/rules/provision-exists.d.ts +0 -6
  206. package/dist/rules/provision-exists.d.ts.map +0 -1
  207. package/dist/rules/provision-exists.js +0 -90
  208. package/dist/rules/provision-exists.js.map +0 -1
  209. package/dist/rules/scan.d.ts +0 -8
  210. package/dist/rules/scan.d.ts.map +0 -1
  211. package/dist/rules/scan.js +0 -32
  212. package/dist/rules/scan.js.map +0 -1
  213. package/dist/rules/service-declarations.d.ts +0 -16
  214. package/dist/rules/service-declarations.d.ts.map +0 -1
  215. package/dist/rules/service-declarations.js +0 -346
  216. package/dist/rules/service-declarations.js.map +0 -1
  217. package/dist/rules/service-exists.d.ts +0 -8
  218. package/dist/rules/service-exists.d.ts.map +0 -1
  219. package/dist/rules/service-exists.js +0 -91
  220. package/dist/rules/service-exists.js.map +0 -1
  221. package/dist/rules/specs.d.ts +0 -29
  222. package/dist/rules/specs.d.ts.map +0 -1
  223. package/dist/rules/specs.js +0 -192
  224. package/dist/rules/specs.js.map +0 -1
  225. package/dist/rules/structure.d.ts +0 -13
  226. package/dist/rules/structure.d.ts.map +0 -1
  227. package/dist/rules/structure.js +0 -142
  228. package/dist/rules/structure.js.map +0 -1
  229. package/dist/rules/types.d.ts +0 -54
  230. package/dist/rules/types.d.ts.map +0 -1
  231. package/dist/rules/types.js +0 -2
  232. package/dist/rules/types.js.map +0 -1
  233. package/dist/rules/valid-describe-refs.d.ts +0 -7
  234. package/dist/rules/valid-describe-refs.d.ts.map +0 -1
  235. package/dist/rules/valid-describe-refs.js +0 -51
  236. package/dist/rules/valid-describe-refs.js.map +0 -1
  237. package/dist/rules/valid-detour-refs.d.ts +0 -6
  238. package/dist/rules/valid-detour-refs.d.ts.map +0 -1
  239. package/dist/rules/valid-detour-refs.js +0 -117
  240. package/dist/rules/valid-detour-refs.js.map +0 -1
  241. package/dist/trails/context-no-surface-types.trail.d.ts +0 -13
  242. package/dist/trails/context-no-surface-types.trail.d.ts.map +0 -1
  243. package/dist/trails/context-no-surface-types.trail.js +0 -21
  244. package/dist/trails/context-no-surface-types.trail.js.map +0 -1
  245. package/dist/trails/context-no-trailhead-types.trail.d.ts +0 -13
  246. package/dist/trails/context-no-trailhead-types.trail.d.ts.map +0 -1
  247. package/dist/trails/context-no-trailhead-types.trail.js +0 -21
  248. package/dist/trails/context-no-trailhead-types.trail.js.map +0 -1
  249. package/dist/trails/cross-declarations.trail.d.ts +0 -13
  250. package/dist/trails/cross-declarations.trail.d.ts.map +0 -1
  251. package/dist/trails/cross-declarations.trail.js +0 -22
  252. package/dist/trails/cross-declarations.trail.js.map +0 -1
  253. package/dist/trails/follow-declarations.trail.d.ts +0 -13
  254. package/dist/trails/follow-declarations.trail.d.ts.map +0 -1
  255. package/dist/trails/follow-declarations.trail.js +0 -22
  256. package/dist/trails/follow-declarations.trail.js.map +0 -1
  257. package/dist/trails/implementation-returns-result.trail.d.ts +0 -13
  258. package/dist/trails/implementation-returns-result.trail.d.ts.map +0 -1
  259. package/dist/trails/implementation-returns-result.trail.js +0 -20
  260. package/dist/trails/implementation-returns-result.trail.js.map +0 -1
  261. package/dist/trails/index.d.ts +0 -16
  262. package/dist/trails/index.d.ts.map +0 -1
  263. package/dist/trails/index.js +0 -15
  264. package/dist/trails/index.js.map +0 -1
  265. package/dist/trails/no-direct-impl-in-route.trail.d.ts +0 -13
  266. package/dist/trails/no-direct-impl-in-route.trail.d.ts.map +0 -1
  267. package/dist/trails/no-direct-impl-in-route.trail.js +0 -22
  268. package/dist/trails/no-direct-impl-in-route.trail.js.map +0 -1
  269. package/dist/trails/no-direct-implementation-call.trail.d.ts +0 -13
  270. package/dist/trails/no-direct-implementation-call.trail.d.ts.map +0 -1
  271. package/dist/trails/no-direct-implementation-call.trail.js +0 -16
  272. package/dist/trails/no-direct-implementation-call.trail.js.map +0 -1
  273. package/dist/trails/no-sync-result-assumption.trail.d.ts +0 -13
  274. package/dist/trails/no-sync-result-assumption.trail.d.ts.map +0 -1
  275. package/dist/trails/no-sync-result-assumption.trail.js +0 -19
  276. package/dist/trails/no-sync-result-assumption.trail.js.map +0 -1
  277. package/dist/trails/no-throw-in-detour-target.trail.d.ts +0 -15
  278. package/dist/trails/no-throw-in-detour-target.trail.d.ts.map +0 -1
  279. package/dist/trails/no-throw-in-detour-target.trail.js +0 -20
  280. package/dist/trails/no-throw-in-detour-target.trail.js.map +0 -1
  281. package/dist/trails/no-throw-in-implementation.trail.d.ts +0 -13
  282. package/dist/trails/no-throw-in-implementation.trail.d.ts.map +0 -1
  283. package/dist/trails/no-throw-in-implementation.trail.js +0 -20
  284. package/dist/trails/no-throw-in-implementation.trail.js.map +0 -1
  285. package/dist/trails/prefer-schema-inference.trail.d.ts +0 -13
  286. package/dist/trails/prefer-schema-inference.trail.d.ts.map +0 -1
  287. package/dist/trails/prefer-schema-inference.trail.js +0 -21
  288. package/dist/trails/prefer-schema-inference.trail.js.map +0 -1
  289. package/dist/trails/provision-declarations.trail.d.ts +0 -13
  290. package/dist/trails/provision-declarations.trail.d.ts.map +0 -1
  291. package/dist/trails/provision-declarations.trail.js +0 -25
  292. package/dist/trails/provision-declarations.trail.js.map +0 -1
  293. package/dist/trails/provision-exists.trail.d.ts +0 -15
  294. package/dist/trails/provision-exists.trail.d.ts.map +0 -1
  295. package/dist/trails/provision-exists.trail.js +0 -27
  296. package/dist/trails/provision-exists.trail.js.map +0 -1
  297. package/dist/trails/run.d.ts +0 -17
  298. package/dist/trails/run.d.ts.map +0 -1
  299. package/dist/trails/run.js +0 -39
  300. package/dist/trails/run.js.map +0 -1
  301. package/dist/trails/schema.d.ts +0 -53
  302. package/dist/trails/schema.d.ts.map +0 -1
  303. package/dist/trails/schema.js +0 -42
  304. package/dist/trails/schema.js.map +0 -1
  305. package/dist/trails/service-declarations.trail.d.ts +0 -26
  306. package/dist/trails/service-declarations.trail.d.ts.map +0 -1
  307. package/dist/trails/service-declarations.trail.js +0 -27
  308. package/dist/trails/service-declarations.trail.js.map +0 -1
  309. package/dist/trails/service-exists.trail.d.ts +0 -32
  310. package/dist/trails/service-exists.trail.d.ts.map +0 -1
  311. package/dist/trails/service-exists.trail.js +0 -29
  312. package/dist/trails/service-exists.trail.js.map +0 -1
  313. package/dist/trails/topo.d.ts +0 -3
  314. package/dist/trails/topo.d.ts.map +0 -1
  315. package/dist/trails/topo.js +0 -5
  316. package/dist/trails/topo.js.map +0 -1
  317. package/dist/trails/valid-describe-refs.trail.d.ts +0 -15
  318. package/dist/trails/valid-describe-refs.trail.d.ts.map +0 -1
  319. package/dist/trails/valid-describe-refs.trail.js +0 -18
  320. package/dist/trails/valid-describe-refs.trail.js.map +0 -1
  321. package/dist/trails/valid-detour-refs.trail.d.ts +0 -15
  322. package/dist/trails/valid-detour-refs.trail.d.ts.map +0 -1
  323. package/dist/trails/valid-detour-refs.trail.js +0 -24
  324. package/dist/trails/valid-detour-refs.trail.js.map +0 -1
  325. package/dist/trails/wrap-rule.d.ts +0 -29
  326. package/dist/trails/wrap-rule.d.ts.map +0 -1
  327. package/dist/trails/wrap-rule.js +0 -47
  328. package/dist/trails/wrap-rule.js.map +0 -1
  329. package/src/__tests__/cli.test.ts +0 -311
  330. package/src/__tests__/cross-declarations.test.ts +0 -303
  331. package/src/__tests__/drift.test.ts +0 -144
  332. package/src/__tests__/formatters.test.ts +0 -157
  333. package/src/__tests__/implementation-returns-result.test.ts +0 -129
  334. package/src/__tests__/no-direct-implementation-call.test.ts +0 -83
  335. package/src/__tests__/no-sync-result-assumption.test.ts +0 -85
  336. package/src/__tests__/no-throw-in-detour-target.test.ts +0 -78
  337. package/src/__tests__/prefer-schema-inference.test.ts +0 -84
  338. package/src/__tests__/provision-declarations.test.ts +0 -318
  339. package/src/__tests__/provision-exists.test.ts +0 -122
  340. package/src/__tests__/rules.test.ts +0 -227
  341. package/src/__tests__/trails.test.ts +0 -19
  342. package/src/__tests__/valid-describe-refs.test.ts +0 -60
  343. package/src/__tests__/wrap-rule.test.ts +0 -41
  344. package/src/rules/no-direct-impl-in-route.ts +0 -81
  345. package/src/rules/no-throw-in-detour-target.ts +0 -150
  346. package/src/rules/valid-detour-refs.ts +0 -189
  347. package/src/trails/no-direct-impl-in-route.trail.ts +0 -22
  348. package/src/trails/no-throw-in-detour-target.trail.ts +0 -20
  349. package/src/trails/valid-detour-refs.trail.ts +0 -24
  350. package/tsconfig.json +0 -9
  351. package/tsconfig.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"provision-exists.trail.js","sourceRoot":"","sources":["../../src/trails/provision-exists.trail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC3C,QAAQ,EAAE;QACR;YACE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7B,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,iBAAiB,EAAE,CAAC,SAAS,CAAC;gBAC9B,aAAa,EAAE,CAAC,aAAa,CAAC;gBAC9B,UAAU,EAAE;;;;;;;;;GASjB;aACI;YACD,IAAI,EAAE,yDAAyD;SAChE;KACF;IACD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Run all warden rule trails against a single source file.
3
- *
4
- * Returns a flat array of diagnostics from every rule.
5
- */
6
- import type { WardenDiagnostic } from '../rules/types.js';
7
- /**
8
- * Run all warden rule trails for a given file and collect diagnostics.
9
- *
10
- * Each rule trail runs independently. Errors from individual trails are
11
- * silently skipped so that one broken rule does not block the rest.
12
- */
13
- export declare const runWardenTrails: (filePath: string, sourceCode: string, options?: {
14
- readonly knownProvisionIds?: readonly string[];
15
- readonly knownTrailIds?: readonly string[];
16
- }) => Promise<readonly WardenDiagnostic[]>;
17
- //# sourceMappingURL=run.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/trails/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAU;IACR,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C,KACA,OAAO,CAAC,SAAS,gBAAgB,EAAE,CA2BrC,CAAC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Run all warden rule trails against a single source file.
3
- *
4
- * Returns a flat array of diagnostics from every rule.
5
- */
6
- import { run } from '@ontrails/core';
7
- import { wardenTopo } from './topo.js';
8
- /**
9
- * Run all warden rule trails for a given file and collect diagnostics.
10
- *
11
- * Each rule trail runs independently. Errors from individual trails are
12
- * silently skipped so that one broken rule does not block the rest.
13
- */
14
- export const runWardenTrails = async (filePath, sourceCode, options) => {
15
- const allDiagnostics = [];
16
- for (const id of wardenTopo.ids()) {
17
- const input = options?.knownTrailIds || options?.knownProvisionIds
18
- ? {
19
- filePath,
20
- ...(options?.knownProvisionIds
21
- ? { knownProvisionIds: options.knownProvisionIds }
22
- : {}),
23
- ...(options?.knownTrailIds
24
- ? { knownTrailIds: options.knownTrailIds }
25
- : {}),
26
- sourceCode,
27
- }
28
- : { filePath, sourceCode };
29
- const result = await run(wardenTopo, id, input);
30
- if (result.isOk()) {
31
- const { diagnostics } = result.value;
32
- for (const d of diagnostics) {
33
- allDiagnostics.push(d);
34
- }
35
- }
36
- }
37
- return allDiagnostics;
38
- };
39
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/trails/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAIrC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,QAAgB,EAChB,UAAkB,EAClB,OAGC,EACqC,EAAE;IACxC,MAAM,cAAc,GAAuB,EAAE,CAAC;IAE9C,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;QAClC,MAAM,KAAK,GACT,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,iBAAiB;YAClD,CAAC,CAAC;gBACE,QAAQ;gBACR,GAAG,CAAC,OAAO,EAAE,iBAAiB;oBAC5B,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE;oBAClD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,EAAE,aAAa;oBACxB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;gBACP,UAAU;aACX;YACH,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAClB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,KAAmB,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Shared Zod schemas for warden rule trails.
3
- *
4
- * Every rule trail shares the same input (source file) and output
5
- * (array of diagnostics) shape.
6
- */
7
- import { z } from 'zod';
8
- /** A single diagnostic emitted by a warden rule trail. */
9
- export declare const diagnosticSchema: z.ZodObject<{
10
- filePath: z.ZodString;
11
- line: z.ZodNumber;
12
- message: z.ZodString;
13
- rule: z.ZodString;
14
- severity: z.ZodEnum<{
15
- error: "error";
16
- warn: "warn";
17
- }>;
18
- }, z.core.$strip>;
19
- /** Input accepted by every warden rule trail. */
20
- export declare const ruleInput: z.ZodObject<{
21
- filePath: z.ZodString;
22
- sourceCode: z.ZodString;
23
- }, z.core.$strip>;
24
- /**
25
- * Extended input for project-aware warden rule trails.
26
- *
27
- * Adds `knownTrailIds` so the caller can supply cross-file context and avoid
28
- * false positives for detour targets or `@see` references defined in other
29
- * files.
30
- */
31
- export declare const projectAwareRuleInput: z.ZodObject<{
32
- filePath: z.ZodString;
33
- sourceCode: z.ZodString;
34
- knownProvisionIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
35
- knownTrailIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
36
- }, z.core.$strip>;
37
- /** Output returned by every warden rule trail. */
38
- export declare const ruleOutput: z.ZodObject<{
39
- diagnostics: z.ZodArray<z.ZodObject<{
40
- filePath: z.ZodString;
41
- line: z.ZodNumber;
42
- message: z.ZodString;
43
- rule: z.ZodString;
44
- severity: z.ZodEnum<{
45
- error: "error";
46
- warn: "warn";
47
- }>;
48
- }, z.core.$strip>>;
49
- }, z.core.$strip>;
50
- export type RuleInput = z.infer<typeof ruleInput>;
51
- export type ProjectAwareRuleInput = z.infer<typeof projectAwareRuleInput>;
52
- export type RuleOutput = z.infer<typeof ruleOutput>;
53
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/trails/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB;;;;;;;;;iBAM3B,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,SAAS;;;iBAGpB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;iBAShC,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,UAAU;;;;;;;;;;;iBAErB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Shared Zod schemas for warden rule trails.
3
- *
4
- * Every rule trail shares the same input (source file) and output
5
- * (array of diagnostics) shape.
6
- */
7
- import { z } from 'zod';
8
- /** A single diagnostic emitted by a warden rule trail. */
9
- export const diagnosticSchema = z.object({
10
- filePath: z.string().describe('File path that was analyzed'),
11
- line: z.number().describe('1-based line number'),
12
- message: z.string().describe('Human-readable diagnostic message'),
13
- rule: z.string().describe('Rule name'),
14
- severity: z.enum(['error', 'warn']).describe('Diagnostic severity'),
15
- });
16
- /** Input accepted by every warden rule trail. */
17
- export const ruleInput = z.object({
18
- filePath: z.string().describe('Path to the source file'),
19
- sourceCode: z.string().describe('Source code content'),
20
- });
21
- /**
22
- * Extended input for project-aware warden rule trails.
23
- *
24
- * Adds `knownTrailIds` so the caller can supply cross-file context and avoid
25
- * false positives for detour targets or `@see` references defined in other
26
- * files.
27
- */
28
- export const projectAwareRuleInput = ruleInput.extend({
29
- knownProvisionIds: z
30
- .array(z.string())
31
- .optional()
32
- .describe('Provision IDs known across the project'),
33
- knownTrailIds: z
34
- .array(z.string())
35
- .optional()
36
- .describe('Trail IDs known across the project'),
37
- });
38
- /** Output returned by every warden rule trail. */
39
- export const ruleOutput = z.object({
40
- diagnostics: z.array(diagnosticSchema).describe('Diagnostics found'),
41
- });
42
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/trails/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACjE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CACpE,CAAC,CAAC;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CACvD,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC,MAAM,CAAC;IACpD,iBAAiB,EAAE,CAAC;SACjB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;IACrD,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;CAClD,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CACrE,CAAC,CAAC"}
@@ -1,26 +0,0 @@
1
- export declare const provisionDeclarationsTrail: import("@ontrails/core").Trail<{
2
- filePath: string;
3
- sourceCode: string;
4
- }, {
5
- diagnostics: {
6
- filePath: string;
7
- line: number;
8
- message: string;
9
- rule: string;
10
- severity: "error" | "warn";
11
- }[];
12
- }>;
13
- /** Backward-compatible alias while the migration is in flight. */
14
- export declare const serviceDeclarationsTrail: import("@ontrails/core").Trail<{
15
- filePath: string;
16
- sourceCode: string;
17
- }, {
18
- diagnostics: {
19
- filePath: string;
20
- line: number;
21
- message: string;
22
- rule: string;
23
- severity: "error" | "warn";
24
- }[];
25
- }>;
26
- //# sourceMappingURL=service-declarations.trail.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-declarations.trail.d.ts","sourceRoot":"","sources":["../../src/trails/service-declarations.trail.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B;;;;;;;;;;;EAqBrC,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,wBAAwB;;;;;;;;;;;EAA6B,CAAC"}
@@ -1,27 +0,0 @@
1
- import { provisionDeclarations } from '../rules/service-declarations.js';
2
- import { wrapRule } from './wrap-rule.js';
3
- export const provisionDeclarationsTrail = wrapRule({
4
- examples: [
5
- {
6
- expected: { diagnostics: [] },
7
- input: {
8
- filePath: 'clean.ts',
9
- sourceCode: `const db = provision("db.main", {
10
- create: () => Result.ok({ source: "factory" }),
11
- });
12
-
13
- trail("entity.show", {
14
- provisions: [db],
15
- blaze: async (_input, ctx) => {
16
- return Result.ok(db.from(ctx));
17
- }
18
- })`,
19
- },
20
- name: 'Matched provision declarations and usage',
21
- },
22
- ],
23
- rule: provisionDeclarations,
24
- });
25
- /** Backward-compatible alias while the migration is in flight. */
26
- export const serviceDeclarationsTrail = provisionDeclarationsTrail;
27
- //# sourceMappingURL=service-declarations.trail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-declarations.trail.js","sourceRoot":"","sources":["../../src/trails/service-declarations.trail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IACjD,QAAQ,EAAE;QACR;YACE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7B,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE;;;;;;;;;GASjB;aACI;YACD,IAAI,EAAE,0CAA0C;SACjD;KACF;IACD,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC"}
@@ -1,32 +0,0 @@
1
- export declare const provisionExistsTrail: import("@ontrails/core").Trail<{
2
- filePath: string;
3
- sourceCode: string;
4
- knownProvisionIds?: string[] | undefined;
5
- knownServiceIds?: string[] | undefined;
6
- knownTrailIds?: string[] | undefined;
7
- }, {
8
- diagnostics: {
9
- filePath: string;
10
- line: number;
11
- message: string;
12
- rule: string;
13
- severity: "error" | "warn";
14
- }[];
15
- }>;
16
- /** Backward-compatible alias while the migration is in flight. */
17
- export declare const serviceExistsTrail: import("@ontrails/core").Trail<{
18
- filePath: string;
19
- sourceCode: string;
20
- knownProvisionIds?: string[] | undefined;
21
- knownServiceIds?: string[] | undefined;
22
- knownTrailIds?: string[] | undefined;
23
- }, {
24
- diagnostics: {
25
- filePath: string;
26
- line: number;
27
- message: string;
28
- rule: string;
29
- severity: "error" | "warn";
30
- }[];
31
- }>;
32
- //# sourceMappingURL=service-exists.trail.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-exists.trail.d.ts","sourceRoot":"","sources":["../../src/trails/service-exists.trail.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;EAuB/B,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;EAAuB,CAAC"}
@@ -1,29 +0,0 @@
1
- import { provisionExists } from '../rules/service-exists.js';
2
- import { wrapRule } from './wrap-rule.js';
3
- export const provisionExistsTrail = wrapRule({
4
- examples: [
5
- {
6
- expected: { diagnostics: [] },
7
- input: {
8
- filePath: 'clean.ts',
9
- knownProvisionIds: ['db.main'],
10
- knownTrailIds: ['entity.show'],
11
- sourceCode: `const db = provision("db.main", {
12
- create: () => Result.ok({ source: "factory" }),
13
- });
14
-
15
- trail("entity.show", {
16
- provisions: [db],
17
- blaze: async (_input, ctx) => {
18
- return Result.ok(db.from(ctx));
19
- }
20
- })`,
21
- },
22
- name: 'Declared provisions resolve to known project provisions',
23
- },
24
- ],
25
- rule: provisionExists,
26
- });
27
- /** Backward-compatible alias while the migration is in flight. */
28
- export const serviceExistsTrail = provisionExistsTrail;
29
- //# sourceMappingURL=service-exists.trail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-exists.trail.js","sourceRoot":"","sources":["../../src/trails/service-exists.trail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC3C,QAAQ,EAAE;QACR;YACE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7B,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,iBAAiB,EAAE,CAAC,SAAS,CAAC;gBAC9B,aAAa,EAAE,CAAC,aAAa,CAAC;gBAC9B,UAAU,EAAE;;;;;;;;;GASjB;aACI;YACD,IAAI,EAAE,yDAAyD;SAChE;KACF;IACD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC"}
@@ -1,3 +0,0 @@
1
- /** Topo collecting all warden rule trails. */
2
- export declare const wardenTopo: import("@ontrails/core").Topo;
3
- //# sourceMappingURL=topo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo.d.ts","sourceRoot":"","sources":["../../src/trails/topo.ts"],"names":[],"mappings":"AAIA,8CAA8C;AAC9C,eAAO,MAAM,UAAU,+BAAwB,CAAC"}
@@ -1,5 +0,0 @@
1
- import { topo } from '@ontrails/core';
2
- import * as rules from './index.js';
3
- /** Topo collecting all warden rule trails. */
4
- export const wardenTopo = topo('warden', rules);
5
- //# sourceMappingURL=topo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo.js","sourceRoot":"","sources":["../../src/trails/topo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- export declare const validDescribeRefsTrail: import("@ontrails/core").Trail<{
2
- filePath: string;
3
- sourceCode: string;
4
- knownProvisionIds?: string[] | undefined;
5
- knownTrailIds?: string[] | undefined;
6
- }, {
7
- diagnostics: {
8
- filePath: string;
9
- line: number;
10
- message: string;
11
- rule: string;
12
- severity: "error" | "warn";
13
- }[];
14
- }>;
15
- //# sourceMappingURL=valid-describe-refs.trail.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valid-describe-refs.trail.d.ts","sourceRoot":"","sources":["../../src/trails/valid-describe-refs.trail.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;EAcjC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { validDescribeRefs } from '../rules/valid-describe-refs.js';
2
- import { wrapRule } from './wrap-rule.js';
3
- export const validDescribeRefsTrail = wrapRule({
4
- examples: [
5
- {
6
- expected: { diagnostics: [] },
7
- input: {
8
- filePath: 'clean.ts',
9
- sourceCode: `const schema = z.object({
10
- name: z.string().describe("User display name"),
11
- });`,
12
- },
13
- name: 'Describe without @see refs',
14
- },
15
- ],
16
- rule: validDescribeRefs,
17
- });
18
- //# sourceMappingURL=valid-describe-refs.trail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valid-describe-refs.trail.js","sourceRoot":"","sources":["../../src/trails/valid-describe-refs.trail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC7C,QAAQ,EAAE;QACR;YACE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7B,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE;;IAEhB;aACG;YACD,IAAI,EAAE,4BAA4B;SACnC;KACF;IACD,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- export declare const validDetourRefsTrail: import("@ontrails/core").Trail<{
2
- filePath: string;
3
- sourceCode: string;
4
- knownProvisionIds?: string[] | undefined;
5
- knownTrailIds?: string[] | undefined;
6
- }, {
7
- diagnostics: {
8
- filePath: string;
9
- line: number;
10
- message: string;
11
- rule: string;
12
- severity: "error" | "warn";
13
- }[];
14
- }>;
15
- //# sourceMappingURL=valid-detour-refs.trail.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valid-detour-refs.trail.d.ts","sourceRoot":"","sources":["../../src/trails/valid-detour-refs.trail.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;EAoB/B,CAAC"}
@@ -1,24 +0,0 @@
1
- import { validDetourRefs } from '../rules/valid-detour-refs.js';
2
- import { wrapRule } from './wrap-rule.js';
3
- export const validDetourRefsTrail = wrapRule({
4
- examples: [
5
- {
6
- expected: { diagnostics: [] },
7
- input: {
8
- filePath: 'clean.ts',
9
- knownTrailIds: ['entity.fallback', 'entity.show'],
10
- sourceCode: `trail("entity.fallback", {
11
- blaze: async (input, ctx) => Result.ok(data)
12
- })
13
-
14
- trail("entity.show", {
15
- detours: [{ target: "entity.fallback" }],
16
- blaze: async (input, ctx) => Result.ok(data)
17
- })`,
18
- },
19
- name: 'Valid detour target reference',
20
- },
21
- ],
22
- rule: validDetourRefs,
23
- });
24
- //# sourceMappingURL=valid-detour-refs.trail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valid-detour-refs.trail.js","sourceRoot":"","sources":["../../src/trails/valid-detour-refs.trail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC3C,QAAQ,EAAE;QACR;YACE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7B,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;gBACjD,UAAU,EAAE;;;;;;;GAOjB;aACI;YACD,IAAI,EAAE,+BAA+B;SACtC;KACF;IACD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Factory that wraps a WardenRule as a trail.
3
- *
4
- * Keeps each rule trail file minimal — just the import + examples.
5
- */
6
- import type { Trail } from '@ontrails/core';
7
- import type { ProjectAwareWardenRule, WardenRule } from '../rules/types.js';
8
- import type { ProjectAwareRuleInput, RuleInput, RuleOutput } from './schema.js';
9
- interface WrapRuleOptions {
10
- /** The existing warden rule to wrap. */
11
- readonly rule: WardenRule;
12
- /** Trail examples for testing and documentation. */
13
- readonly examples: Trail<RuleInput, RuleOutput>['examples'];
14
- }
15
- interface WrapProjectAwareRuleOptions {
16
- /** The existing project-aware warden rule to wrap. */
17
- readonly rule: ProjectAwareWardenRule;
18
- /** Trail examples for testing and documentation. */
19
- readonly examples: Trail<ProjectAwareRuleInput, RuleOutput>['examples'];
20
- }
21
- /**
22
- * Wrap an existing `WardenRule` as a trail with typed input/output.
23
- *
24
- * The trail ID follows the pattern `warden.rule.<rule-name>`.
25
- */
26
- export declare function wrapRule(options: WrapProjectAwareRuleOptions): Trail<ProjectAwareRuleInput, RuleOutput>;
27
- export declare function wrapRule(options: WrapRuleOptions): Trail<RuleInput, RuleOutput>;
28
- export {};
29
- //# sourceMappingURL=wrap-rule.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap-rule.d.ts","sourceRoot":"","sources":["../../src/trails/wrap-rule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EACV,sBAAsB,EAEtB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhF,UAAU,eAAe;IACvB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC;CAC7D;AAED,UAAU,2BAA2B;IACnC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC;CACzE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,2BAA2B,GACnC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;AAC5C,wBAAgB,QAAQ,CACtB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Factory that wraps a WardenRule as a trail.
3
- *
4
- * Keeps each rule trail file minimal — just the import + examples.
5
- */
6
- import { trail, Result } from '@ontrails/core';
7
- import { projectAwareRuleInput, ruleInput, ruleOutput } from './schema.js';
8
- export function wrapRule(options) {
9
- const { rule, examples } = options;
10
- const isProjectAware = 'checkWithContext' in rule;
11
- if (isProjectAware) {
12
- const projectAwareRule = rule;
13
- return trail(`warden.rule.${rule.name}`, {
14
- blaze: (input) => {
15
- const context = {
16
- knownProvisionIds: input.knownProvisionIds
17
- ? new Set(input.knownProvisionIds)
18
- : undefined,
19
- knownTrailIds: input.knownTrailIds
20
- ? new Set(input.knownTrailIds)
21
- : new Set(),
22
- };
23
- const diagnostics = projectAwareRule.checkWithContext(input.sourceCode, input.filePath, context);
24
- return Result.ok({ diagnostics: [...diagnostics] });
25
- },
26
- description: rule.description,
27
- examples: examples,
28
- input: projectAwareRuleInput,
29
- intent: 'read',
30
- meta: { category: 'governance', severity: rule.severity },
31
- output: ruleOutput,
32
- });
33
- }
34
- return trail(`warden.rule.${rule.name}`, {
35
- blaze: (input) => {
36
- const diagnostics = rule.check(input.sourceCode, input.filePath);
37
- return Result.ok({ diagnostics: [...diagnostics] });
38
- },
39
- description: rule.description,
40
- examples: examples,
41
- input: ruleInput,
42
- intent: 'read',
43
- meta: { category: 'governance', severity: rule.severity },
44
- output: ruleOutput,
45
- });
46
- }
47
- //# sourceMappingURL=wrap-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap-rule.js","sourceRoot":"","sources":["../../src/trails/wrap-rule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA4B3E,MAAM,UAAU,QAAQ,CACtB,OAAsD;IAEtD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,cAAc,GAAG,kBAAkB,IAAI,IAAI,CAAC;IAElD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,gBAAgB,GAAG,IAA8B,CAAC;QACxD,OAAO,KAAK,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE;YACvC,KAAK,EAAE,CAAC,KAA4B,EAAE,EAAE;gBACtC,MAAM,OAAO,GAAG;oBACd,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;wBACxC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;wBAClC,CAAC,CAAC,SAAS;oBACb,aAAa,EAAE,KAAK,CAAC,aAAa;wBAChC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;wBAC9B,CAAC,CAAC,IAAI,GAAG,EAAU;iBACJ,CAAC;gBACpB,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CACnD,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,QAAQ,EACd,OAAO,CACR,CAAC;gBACF,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,QAGG;YACb,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzD,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE;QACvC,KAAK,EAAE,CAAC,KAAgB,EAAE,EAAE;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,QAAoD;QAC9D,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;QACzD,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;AACL,CAAC"}