@afokapu/atdd-bun 0.10.53 → 0.10.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/detectors/bun_interlocking_binding/checks/interlocking_runtime_executes.mjs +46 -1
- package/detectors/bun_interlocking_binding/detect.mjs +2 -2
- package/detectors/bun_interlocking_binding/fixtures/clean/server.ts +2 -2
- package/detectors/bun_interlocking_binding/fixtures/clean/src/trains/runner.ts +21 -3
- package/detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/server.ts +2 -2
- package/detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/src/trains/runner.ts +21 -3
- package/detectors/bun_interlocking_coverage/_shared/interlocking.mjs +132 -2
- package/detectors/bun_interlocking_coverage/checks/interlocking_production_runner.mjs +9 -4
- package/detectors/bun_interlocking_coverage/checks/interlocking_route_coverage.mjs +4 -4
- package/detectors/bun_interlocking_coverage/checks/interlocking_smoke_coverage.mjs +2 -1
- package/detectors/bun_interlocking_coverage/checks/interlocking_trace_binds.mjs +7 -5
- package/detectors/bun_interlocking_coverage/checks/interlocking_train_sequence.mjs +8 -13
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_production_runner/convex/trains/interlocking.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_production_runner/convex/trains/runner.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_route_coverage/convex/trains/interlocking.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_route_coverage/convex/trains/runner.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage/convex/trains/interlocking.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage/convex/trains/runner.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage_module/convex/trains/interlocking.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage_module/convex/trains/runner.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_trace_binds/convex/trains/interlocking.ts +1 -0
- package/detectors/bun_interlocking_coverage/fixtures/clean/interlocking_trace_binds/convex/trains/runner.ts +1 -0
- package/detectors/bun_interlocking_infrastructure/checks/interlocking_station_routing.mjs +19 -0
- package/detectors/bun_interlocking_infrastructure/checks/journey_runner_boundary.mjs +27 -0
- package/detectors/bun_interlocking_infrastructure/checks/journey_station_routing.mjs +30 -0
- package/detectors/bun_interlocking_infrastructure/checks/wagon_contract_honoured.mjs +112 -12
- package/detectors/bun_interlocking_infrastructure/fixtures/clean/journey_runner_boundary/src/trains/journey.ts +17 -4
- package/detectors/bun_interlocking_infrastructure/fixtures/clean/journey_station_routing/src/trains/journey.ts +16 -3
- package/detectors/bun_interlocking_infrastructure/fixtures/clean/journey_topology_traversal/plan/_journeys/checkout.yaml +19 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/clean/journey_topology_traversal/server.ts +13 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/clean/journey_topology_traversal/src/trains/journey.ts +36 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/clean/wagon_contract_honoured/src/trains/runner.ts +5 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_dead_read/plan/_journeys/checkout.yaml +14 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_dead_read/src/trains/journey.ts +15 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_returns_early/plan/_journeys/checkout.yaml +19 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_returns_early/src/trains/journey.ts +16 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_self_loop/plan/_journeys/checkout.yaml +14 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_self_loop/src/trains/journey.ts +18 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_inert_runner/plan/_journeys/public.yaml +14 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_inert_runner/server.ts +16 -0
- package/detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_inert_runner/src/trains/journey.ts +9 -0
- package/integrity.json +43 -20
- package/package.json +1 -1
- package/src/hooks.ts +4 -3
package/integrity.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.10.
|
|
2
|
+
"version": "0.10.55",
|
|
3
3
|
"files": {
|
|
4
4
|
"HOOK_AUDIT.md": "5329d840db37671b1918f688ead26865473b87db73dbc75f7c8b2a8bbe8d6d43",
|
|
5
5
|
"PLANNER_PORT.md": "fb5935bac8b7ac18994de21e43ace3a5ef8cd55f85b0e3349fca261280054f11",
|
|
@@ -334,22 +334,22 @@
|
|
|
334
334
|
"detectors/bun_green_traceability_detector/fixtures/dirty/green_urn_wagon_feature/OrderRow.ts": "eed3e99b3a582a41e7179228ca8c33987fdf0ca1c06d78710951057a2355d902",
|
|
335
335
|
"detectors/bun_green_traceability_detector/urn_header.mjs": "ec43ef492e405d31b30617646e41617aaef7de8eebc2f153ce8d4e8f6c2de1b2",
|
|
336
336
|
"detectors/bun_interlocking_binding/atdd.implementation.yaml": "8df233a7c337d38ab4fc92a309273b91fe713b27507a4b2cfa66ffc7a948d520",
|
|
337
|
-
"detectors/bun_interlocking_binding/checks/interlocking_runtime_executes.mjs": "
|
|
338
|
-
"detectors/bun_interlocking_binding/detect.mjs": "
|
|
337
|
+
"detectors/bun_interlocking_binding/checks/interlocking_runtime_executes.mjs": "a720ffe06f50510a49cda70cbe2ab29be7901315540a39782a389c72b37a050e",
|
|
338
|
+
"detectors/bun_interlocking_binding/detect.mjs": "f3d431727a2e4fab94986495fb5f930d6f8fd7893af66f38cfe563a8f5e9fed6",
|
|
339
339
|
"detectors/bun_interlocking_binding/fixtures/clean/e2e/interlockings/match-resolution/trace.test.ts": "5dadc041ca9825f404340ca428e14bbff5e00824ca6c25464f21cd2ce56044d8",
|
|
340
340
|
"detectors/bun_interlocking_binding/fixtures/clean/plan/_trains/_interlockings/match-resolution.yaml": "11884309beb9bcceccfeda7917ea73d51a530366db5eb60772b03cf5eeb239cd",
|
|
341
341
|
"detectors/bun_interlocking_binding/fixtures/clean/plan/_trains/train:match:match-resolution-standard.yaml": "a7067661a723e02e0e844e6b90ad187f620dd328e1b9be45163c04db1919ce77",
|
|
342
342
|
"detectors/bun_interlocking_binding/fixtures/clean/plan/_trains/train:match:match-resolution-timeout.yaml": "600da5ce0f183c8b2a1378a2566d6010252531188cc5d4707fe6d3d6201e4b9c",
|
|
343
|
-
"detectors/bun_interlocking_binding/fixtures/clean/server.ts": "
|
|
343
|
+
"detectors/bun_interlocking_binding/fixtures/clean/server.ts": "445651ee78a0384e4f05c2ecfe9e8418d5371891c45e3bfe843142396598c1cb",
|
|
344
344
|
"detectors/bun_interlocking_binding/fixtures/clean/src/trains/interlocking.ts": "85bb742b0912395e089ac0be2d94ae5df3137a0851bb867fbc537ad1c6c08a81",
|
|
345
|
-
"detectors/bun_interlocking_binding/fixtures/clean/src/trains/runner.ts": "
|
|
345
|
+
"detectors/bun_interlocking_binding/fixtures/clean/src/trains/runner.ts": "a51c66a22bc31a471e96b1f0369c82d61b77576fdc90919b4f014f6d9e8d8a5a",
|
|
346
346
|
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/e2e/interlockings/match-resolution/trace.test.ts": "5dadc041ca9825f404340ca428e14bbff5e00824ca6c25464f21cd2ce56044d8",
|
|
347
347
|
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/plan/_trains/_interlockings/match-resolution.yaml": "658bbd729b710b62b2b1c46653cfacd20ce40d47e72aa385f84a0311280b5555",
|
|
348
348
|
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/plan/_trains/train:match:match-resolution-standard.yaml": "a7067661a723e02e0e844e6b90ad187f620dd328e1b9be45163c04db1919ce77",
|
|
349
349
|
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/plan/_trains/train:match:match-resolution-timeout.yaml": "600da5ce0f183c8b2a1378a2566d6010252531188cc5d4707fe6d3d6201e4b9c",
|
|
350
|
-
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/server.ts": "
|
|
350
|
+
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/server.ts": "445651ee78a0384e4f05c2ecfe9e8418d5371891c45e3bfe843142396598c1cb",
|
|
351
351
|
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/src/trains/interlocking.ts": "b73e00fc165820b569701bb6243825e8a694e9337297807a5aeb5e2963d8c8bf",
|
|
352
|
-
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/src/trains/runner.ts": "
|
|
352
|
+
"detectors/bun_interlocking_binding/fixtures/clean_flow_style_actions/src/trains/runner.ts": "a51c66a22bc31a471e96b1f0369c82d61b77576fdc90919b4f014f6d9e8d8a5a",
|
|
353
353
|
"detectors/bun_interlocking_binding/fixtures/dirty/e2e/interlockings/match-resolution/trace.test.ts": "5dadc041ca9825f404340ca428e14bbff5e00824ca6c25464f21cd2ce56044d8",
|
|
354
354
|
"detectors/bun_interlocking_binding/fixtures/dirty/plan/_trains/_interlockings/match-resolution.yaml": "7e87ee65e8c1804fb1f2aafe94c2da71de97b3ec11bd0fb3841fec28e8f01fbb",
|
|
355
355
|
"detectors/bun_interlocking_binding/fixtures/dirty/plan/_trains/train:match:match-resolution-standard.yaml": "a7067661a723e02e0e844e6b90ad187f620dd328e1b9be45163c04db1919ce77",
|
|
@@ -385,31 +385,41 @@
|
|
|
385
385
|
"detectors/bun_interlocking_binding/fixtures/dirty_transcribed_runtime/server.ts": "d5bc34c5b1b2b0a511e0c4604ce6f9c77491dca9aee994be720540f3052babc1",
|
|
386
386
|
"detectors/bun_interlocking_binding/fixtures/dirty_transcribed_runtime/src/trains/interlocking.ts": "9bcfdb4ecff6efd1f658b9fd587342615179924e25468c75daa07c2626d4d8ab",
|
|
387
387
|
"detectors/bun_interlocking_binding/fixtures/dirty_transcribed_runtime/src/trains/runner.ts": "0e4b885e50f12cc2a8c8f6740bf83e7b2e7137a28e1e143586e9a8550ea5bd45",
|
|
388
|
-
"detectors/bun_interlocking_coverage/_shared/interlocking.mjs": "
|
|
388
|
+
"detectors/bun_interlocking_coverage/_shared/interlocking.mjs": "ea5f87285111a6cd67d7febf3731d5f37c8932a98749ee51cfd39e076994aed6",
|
|
389
389
|
"detectors/bun_interlocking_coverage/atdd.implementation.yaml": "f160517a8138ba3ca05e3d130e6fbfb796e643376f25743fdef4fc210196525b",
|
|
390
390
|
"detectors/bun_interlocking_coverage/checks/_map.json": "0a218ea319cc6258af7bd721c2154cb9561fe67e80d80ef32d08fc77bc9403c3",
|
|
391
|
-
"detectors/bun_interlocking_coverage/checks/interlocking_production_runner.mjs": "
|
|
392
|
-
"detectors/bun_interlocking_coverage/checks/interlocking_route_coverage.mjs": "
|
|
393
|
-
"detectors/bun_interlocking_coverage/checks/interlocking_smoke_coverage.mjs": "
|
|
394
|
-
"detectors/bun_interlocking_coverage/checks/interlocking_trace_binds.mjs": "
|
|
395
|
-
"detectors/bun_interlocking_coverage/checks/interlocking_train_sequence.mjs": "
|
|
391
|
+
"detectors/bun_interlocking_coverage/checks/interlocking_production_runner.mjs": "6d0645debe91d05987d858efbaf04f5b70f383d34aeb319fa96b3d3e7ee28330",
|
|
392
|
+
"detectors/bun_interlocking_coverage/checks/interlocking_route_coverage.mjs": "2230b8477ece6a9f459fb0d3cd9e3f8d194d9800eb976ed7064f4dfb820202b0",
|
|
393
|
+
"detectors/bun_interlocking_coverage/checks/interlocking_smoke_coverage.mjs": "ca1250e762a40f04520aa3ef525d61fe834a8f5df03d961e0d6c80e4f3044a2e",
|
|
394
|
+
"detectors/bun_interlocking_coverage/checks/interlocking_trace_binds.mjs": "1cc3a11d50a075f3211a6d9cbf27aafcbf7e77b6a855ab040f765ec89dfe0eef",
|
|
395
|
+
"detectors/bun_interlocking_coverage/checks/interlocking_train_sequence.mjs": "8a8a8e88ce8a80024d0bdcc6866819fdfaa5a2ed26e8a9c5a459848d2de346d9",
|
|
396
396
|
"detectors/bun_interlocking_coverage/detect.mjs": "a124418dc29aaf8fda9cd09427230d25768206b3f563d516774667e8cf75b66e",
|
|
397
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_production_runner/convex/trains/interlocking.ts": "e97288c4ca6084391bfa72d1457de26e99e9fa0c9540be4361e27731c19aeb6f",
|
|
398
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_production_runner/convex/trains/runner.ts": "33ac1f93e6c1b4d26827949159fff8481965e60db56c47d2c6ad3e462adef8c9",
|
|
397
399
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_production_runner/e2e/interlockings/match-resolution/routes.test.ts": "ba6ea85b3fbe15e3c49332da3ad2921a0ff3436a6fe3b5a5035fb35fdc874720",
|
|
398
400
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_production_runner/e2e/interlockings/match-resolution/trace.test.ts": "aee4ea93ceb8636846344e915cd7e66f7e8f99ba08596f83266590fa2b9ff58e",
|
|
399
401
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_production_runner/e2e/smoke/resolve-match.smoke.test.ts": "8ac030da9817a8d584f188f237379dc89f69b2d4abd4cdc41ead66d838a88aa1",
|
|
400
402
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_production_runner/plan/_trains/_interlockings/match-resolution.yaml": "a7d0fab140126717d0654d7275067ac7aef234c184dacf256341f80b42d3b9f8",
|
|
403
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_route_coverage/convex/trains/interlocking.ts": "e97288c4ca6084391bfa72d1457de26e99e9fa0c9540be4361e27731c19aeb6f",
|
|
404
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_route_coverage/convex/trains/runner.ts": "33ac1f93e6c1b4d26827949159fff8481965e60db56c47d2c6ad3e462adef8c9",
|
|
401
405
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_route_coverage/e2e/interlockings/match-resolution/routes.test.ts": "ba6ea85b3fbe15e3c49332da3ad2921a0ff3436a6fe3b5a5035fb35fdc874720",
|
|
402
406
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_route_coverage/e2e/interlockings/match-resolution/trace.test.ts": "aee4ea93ceb8636846344e915cd7e66f7e8f99ba08596f83266590fa2b9ff58e",
|
|
403
407
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_route_coverage/e2e/smoke/resolve-match.smoke.test.ts": "8ac030da9817a8d584f188f237379dc89f69b2d4abd4cdc41ead66d838a88aa1",
|
|
404
408
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_route_coverage/plan/_trains/_interlockings/match-resolution.yaml": "9e0f02cb0889826f2ac2fb88cd8c118c97d4321dcc5fccc0b767a511606841e6",
|
|
409
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage/convex/trains/interlocking.ts": "e97288c4ca6084391bfa72d1457de26e99e9fa0c9540be4361e27731c19aeb6f",
|
|
410
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage/convex/trains/runner.ts": "33ac1f93e6c1b4d26827949159fff8481965e60db56c47d2c6ad3e462adef8c9",
|
|
405
411
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage/e2e/interlockings/match-resolution/routes.test.ts": "ba6ea85b3fbe15e3c49332da3ad2921a0ff3436a6fe3b5a5035fb35fdc874720",
|
|
406
412
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage/e2e/interlockings/match-resolution/trace.test.ts": "aee4ea93ceb8636846344e915cd7e66f7e8f99ba08596f83266590fa2b9ff58e",
|
|
407
413
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage/e2e/smoke/resolve-match.smoke.test.ts": "8ac030da9817a8d584f188f237379dc89f69b2d4abd4cdc41ead66d838a88aa1",
|
|
408
414
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage/plan/_trains/_interlockings/match-resolution.yaml": "f9789174add20032c208d4e11f0733b2176bfa6725cf695ca601e4adbc5aa210",
|
|
415
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage_module/convex/trains/interlocking.ts": "e97288c4ca6084391bfa72d1457de26e99e9fa0c9540be4361e27731c19aeb6f",
|
|
416
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage_module/convex/trains/runner.ts": "33ac1f93e6c1b4d26827949159fff8481965e60db56c47d2c6ad3e462adef8c9",
|
|
409
417
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage_module/e2e/interlockings/match-resolution/routes.test.ts": "ba6ea85b3fbe15e3c49332da3ad2921a0ff3436a6fe3b5a5035fb35fdc874720",
|
|
410
418
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage_module/e2e/interlockings/match-resolution/trace.test.ts": "aee4ea93ceb8636846344e915cd7e66f7e8f99ba08596f83266590fa2b9ff58e",
|
|
411
419
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage_module/e2e/smoke/resolve-match.smoke.test.ts": "73a410fbafe087f110a8a00ba41633e1d8d6fdecbddcd7f19afb9909ad8fc77f",
|
|
412
420
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_smoke_coverage_module/plan/_trains/_interlockings/match-resolution.yaml": "b4fcce9002f6f0c2ff0b840e817b0dfe83e0867ccb76b825c3c248cf50a93e6a",
|
|
421
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_trace_binds/convex/trains/interlocking.ts": "e97288c4ca6084391bfa72d1457de26e99e9fa0c9540be4361e27731c19aeb6f",
|
|
422
|
+
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_trace_binds/convex/trains/runner.ts": "33ac1f93e6c1b4d26827949159fff8481965e60db56c47d2c6ad3e462adef8c9",
|
|
413
423
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_trace_binds/e2e/interlockings/match-resolution/routes.test.ts": "ba6ea85b3fbe15e3c49332da3ad2921a0ff3436a6fe3b5a5035fb35fdc874720",
|
|
414
424
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_trace_binds/e2e/interlockings/match-resolution/trace.test.ts": "aee4ea93ceb8636846344e915cd7e66f7e8f99ba08596f83266590fa2b9ff58e",
|
|
415
425
|
"detectors/bun_interlocking_coverage/fixtures/clean/interlocking_trace_binds/e2e/smoke/resolve-match.smoke.test.ts": "8ac030da9817a8d584f188f237379dc89f69b2d4abd4cdc41ead66d838a88aa1",
|
|
@@ -440,10 +450,10 @@
|
|
|
440
450
|
"detectors/bun_interlocking_infrastructure/checks/interlocking_no_cargo.mjs": "9107f5926f7ce92097fb37c4456fe1f88f9ef4812fdef841ea458648af5b1cde",
|
|
441
451
|
"detectors/bun_interlocking_infrastructure/checks/interlocking_resolution_model.mjs": "e761495b19eed0af09fcb4db34126d0e2398e91f086e04f5ef84d0b5c1c3ec16",
|
|
442
452
|
"detectors/bun_interlocking_infrastructure/checks/interlocking_runner_exists.mjs": "6b63d3f26a51f2dd27847edd27c4d9c9f15c1f02747dba611cebccfc76f13169",
|
|
443
|
-
"detectors/bun_interlocking_infrastructure/checks/interlocking_station_routing.mjs": "
|
|
444
|
-
"detectors/bun_interlocking_infrastructure/checks/journey_runner_boundary.mjs": "
|
|
445
|
-
"detectors/bun_interlocking_infrastructure/checks/journey_station_routing.mjs": "
|
|
446
|
-
"detectors/bun_interlocking_infrastructure/checks/wagon_contract_honoured.mjs": "
|
|
453
|
+
"detectors/bun_interlocking_infrastructure/checks/interlocking_station_routing.mjs": "b6370ae31e668a304af04cf010f0e235dec8cd5340d08cbe183a4f6abed03a07",
|
|
454
|
+
"detectors/bun_interlocking_infrastructure/checks/journey_runner_boundary.mjs": "ad74ebb76d63ef648202ca31316647221e152f79bcba6aa2d30be4f0464ac10e",
|
|
455
|
+
"detectors/bun_interlocking_infrastructure/checks/journey_station_routing.mjs": "b9e0f56f65f1063e5f8bf486ec7c1573cb24935a24c7c46cf6c30724694f7b4c",
|
|
456
|
+
"detectors/bun_interlocking_infrastructure/checks/wagon_contract_honoured.mjs": "79b5f824e7510f50e4925a98c01ef263290025748f64a27a11555f608d8001dc",
|
|
447
457
|
"detectors/bun_interlocking_infrastructure/detect.mjs": "54c02f428596e057f828def0d68360b220b55dbf962b46694a21bc423ce57218",
|
|
448
458
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/interlocking_delegates/server.ts": "36913357fdd3c5e375829a0554c605d70f5c05e2e83349f47505741598f6eb15",
|
|
449
459
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/interlocking_delegates/src/match/wagon.ts": "ea202fa15fdf9d1391b1ae23343c9d1b09fcf8ef14f1dccfb8114ffaedea97c1",
|
|
@@ -466,13 +476,17 @@
|
|
|
466
476
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/interlocking_station_routing/src/trains/interlocking.ts": "d3872e912893e28e38e839ad4c8c15ed8381ff0b3db7015dd26df08bae88d395",
|
|
467
477
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/interlocking_station_routing/src/trains/runner.ts": "3717d47364732410214307bcfa8eb92d5882b935e9b2c03b0e57d94d365bbac9",
|
|
468
478
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_runner_boundary/plan/_journeys/example.yaml": "471680ba04d334573ee67158d9b02093d834872fc2d2211d2a02f0372ac00455",
|
|
469
|
-
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_runner_boundary/src/trains/journey.ts": "
|
|
479
|
+
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_runner_boundary/src/trains/journey.ts": "9f17c18cb9f2205e784766e3cda580aaf21c9679490ac4991411725652661c09",
|
|
470
480
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_station_routing/plan/_journeys/public.yaml": "840aac51f72c481650eea661e9fc414a9d157350234b67cfb7a977c201a0bdee",
|
|
471
481
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_station_routing/server.ts": "7fdfdeb8727d654bffec15d30cc65463791dc9c002557f364eb04e51fe5f27f4",
|
|
472
|
-
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_station_routing/src/trains/journey.ts": "
|
|
482
|
+
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_station_routing/src/trains/journey.ts": "cdc8e48e60d62fca7bf4811972957c709071f046884bbb7dd9f03b7eb6d41588",
|
|
483
|
+
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_topology_traversal/plan/_journeys/checkout.yaml": "d536ece76684bc2979d5988f20d1b7eae260906ac8b51d4bec03ec6c4e43d0d8",
|
|
484
|
+
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_topology_traversal/server.ts": "2e64d568e1fd9336db1f3ea89bbc77081196c7abe0731052cd0b1445386b2b25",
|
|
485
|
+
"detectors/bun_interlocking_infrastructure/fixtures/clean/journey_topology_traversal/src/trains/journey.ts": "e481827002fbae5481e6976005e308705126a02b359aca9f5bb949ee558380fd",
|
|
473
486
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/wagon_contract_honoured/plan/_trains/checkout.yaml": "8bcf77e3d624e538472e778b4b3058809c1f4931c172b863f0826f0f07bcb892",
|
|
474
487
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/wagon_contract_honoured/plan/orders/_orders.yaml": "502aabeeb5a23a538f3a67ae4bb9dbd91ed4e7302f1bed5248186d07d035e47e",
|
|
475
488
|
"detectors/bun_interlocking_infrastructure/fixtures/clean/wagon_contract_honoured/src/orders/wagon.ts": "ba4ab28f3a576135a12de1390663ed107cf04652f554c9f28d6ce1fff43d4c08",
|
|
489
|
+
"detectors/bun_interlocking_infrastructure/fixtures/clean/wagon_contract_honoured/src/trains/runner.ts": "01c1e24114e144404d3867075af0ce4ef2cba7c71dd406d33e99b08ce8035434",
|
|
476
490
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/interlocking_delegates/server.ts": "36913357fdd3c5e375829a0554c605d70f5c05e2e83349f47505741598f6eb15",
|
|
477
491
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/interlocking_delegates/src/match/wagon.ts": "ea202fa15fdf9d1391b1ae23343c9d1b09fcf8ef14f1dccfb8114ffaedea97c1",
|
|
478
492
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/interlocking_delegates/src/trains/interlocking.ts": "88b38a1d8c020674694b8b6b5f86749805b05d1847ad974a04fe99be68e03b51",
|
|
@@ -493,8 +507,17 @@
|
|
|
493
507
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/interlocking_station_routing/src/match/wagon.ts": "ea202fa15fdf9d1391b1ae23343c9d1b09fcf8ef14f1dccfb8114ffaedea97c1",
|
|
494
508
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/interlocking_station_routing/src/trains/interlocking.ts": "d3872e912893e28e38e839ad4c8c15ed8381ff0b3db7015dd26df08bae88d395",
|
|
495
509
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/interlocking_station_routing/src/trains/runner.ts": "3717d47364732410214307bcfa8eb92d5882b935e9b2c03b0e57d94d365bbac9",
|
|
510
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_dead_read/plan/_journeys/checkout.yaml": "ccd3c9f48320f88092dbf0198cfdd16392431fa3ea52d311cee35927fbc80ce3",
|
|
511
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_dead_read/src/trains/journey.ts": "1c46d998aeae63c65abdd2e8e3b66b84c7f17504a667f4c04585fb79caaa3c71",
|
|
512
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_returns_early/plan/_journeys/checkout.yaml": "b6650058de59238bb015ebe740b097e64211d134f2edadac2f6da0ee23e62ef3",
|
|
513
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_returns_early/src/trains/journey.ts": "91ed7fbc35ed61f2f27806154a83e8839eca4765ea8cae01d2da72c9d9257dd1",
|
|
514
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_self_loop/plan/_journeys/checkout.yaml": "ccd3c9f48320f88092dbf0198cfdd16392431fa3ea52d311cee35927fbc80ce3",
|
|
515
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_continuation_self_loop/src/trains/journey.ts": "48b0b780f4decc5ff1df937960000b9a61996fd87c1f194f333a5cf7edd5b036",
|
|
496
516
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_runner_boundary/plan/_journeys/example.yaml": "471680ba04d334573ee67158d9b02093d834872fc2d2211d2a02f0372ac00455",
|
|
497
517
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_runner_boundary/src/trains/journey.ts": "d05d07d4eaacb695d73f2cf2ca44a6495c70a1d73ad8f4cc8a637c01fa878a64",
|
|
518
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_inert_runner/plan/_journeys/public.yaml": "9ae283b91968ce98e1940d01458709f78e6e90fa4b2adf5936ab1017e5198fa8",
|
|
519
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_inert_runner/server.ts": "851a7da3846de823a51f6e7dbaa2871338629f2b0061b04b9b72318e18a2fa0e",
|
|
520
|
+
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_inert_runner/src/trains/journey.ts": "bc0a581fa90a3cc37b1126b6566945e3a94c4ef25e0e8ef951182533f9ca9f45",
|
|
498
521
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_routing/plan/_journeys/public.yaml": "840aac51f72c481650eea661e9fc414a9d157350234b67cfb7a977c201a0bdee",
|
|
499
522
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_routing/server.ts": "20d41fe5d1da6fa6f8b9e9800d83d3278638a555fac80f25a9b6b49cac973bf5",
|
|
500
523
|
"detectors/bun_interlocking_infrastructure/fixtures/dirty/journey_station_routing/src/trains/journey.ts": "2729867d88b4e5c955451b8d812392a91ca6da7d5601c64d27a84a3deb879d01",
|
|
@@ -1198,7 +1221,7 @@
|
|
|
1198
1221
|
"src/cli.ts": "c4ede85983445a6388bf74bbccf1251dd45df2788a699f1bf2250fa0fda3c516",
|
|
1199
1222
|
"src/docs-capability.ts": "bdeeb414649049b1cd4fa8008cada3a576318be51c43bec91bfa46a8e250c270",
|
|
1200
1223
|
"src/enforce.ts": "7e6b3a1fc7c90f8e1836ab3e4655778fb569a63be5e7c199de44024fc003e6be",
|
|
1201
|
-
"src/hooks.ts": "
|
|
1224
|
+
"src/hooks.ts": "233d26c0320adea3b315d808811da9b53b989db8effd4f6ed9306a80069101e8",
|
|
1202
1225
|
"src/index.ts": "4081f8b08d1d3ee9e15a9964143e53d9cfb94a5616ab3e58a180d24cc16dc381",
|
|
1203
1226
|
"src/integrity.ts": "f5ad22759eec675454df82cdcf791b1f081951f08ca5084ebdcb8cd82aa1ecef",
|
|
1204
1227
|
"src/journey-docs.ts": "994d229376244c84212cff951032823068a76565dd2fd427b9d44e341bd14853",
|
package/package.json
CHANGED
package/src/hooks.ts
CHANGED
|
@@ -47,8 +47,9 @@ export async function runHook(event: HookEvent, root = process.cwd(), args: stri
|
|
|
47
47
|
return { ok: true, message: "ok" };
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
// Resolve from the checkout at hook time: installed consumers use their local package; source checkouts use src.
|
|
51
|
+
const dispatcher = (event: HookEvent) => `#!/bin/sh\nroot="$(git rev-parse --show-toplevel)" || exit $?\nentry="$root/node_modules/@afokapu/atdd-bun/src/cli.ts"\nif [ ! -f "$entry" ]; then\n if [ -f "$root/package.json" ] && grep -Eq '"name"[[:space:]]*:[[:space:]]*"@afokapu/atdd-bun"' "$root/package.json" && [ -f "$root/src/cli.ts" ]; then\n entry="$root/src/cli.ts"\n else\n echo "atdd-bun hook: install @afokapu/atdd-bun in this project before running hooks" >&2\n exit 1\n fi\nfi\nexec bun "$entry" hook ${event} "$@"\n`;
|
|
52
|
+
export async function installHooks(root = process.cwd(), replace = false) { const current = (await git(root, ["config", "--worktree", "--get", "core.hooksPath"])).out || (await git(root, ["config", "--get", "core.hooksPath"])).out; if (current && current !== ".githooks" && !replace) return bad(`core.hooksPath is ${current}; use --replace`); await git(root, ["config", "extensions.worktreeConfig", "true"]); await mkdir(join(root, ".githooks"), { recursive: true }); for (const event of hookEvents) { const file = join(root, ".githooks", event); await writeFile(file, dispatcher(event)); await chmod(file, 0o755); } const result = await git(root, ["config", "--worktree", "core.hooksPath", ".githooks"]); return result.code ? bad(result.err) : { ok: true, message: "hooks installed" }; }
|
|
52
53
|
export async function uninstallHooks(root = process.cwd()) { if ((await git(root, ["config", "--worktree", "--get", "core.hooksPath"])).out === ".githooks") await git(root, ["config", "--worktree", "--unset", "core.hooksPath"]); for (const event of hookEvents) await rm(join(root, ".githooks", event), { force: true }); return { ok: true, message: "hooks uninstalled" }; }
|
|
53
54
|
export async function hooksStatus(root = process.cwd()) { const path = (await git(root, ["config", "--worktree", "--get", "core.hooksPath"])).out; return { ok: path === ".githooks" && hookEvents.every(event => existsSync(join(root, ".githooks", event))), message: path || "not installed" }; }
|
|
54
55
|
|
|
@@ -57,6 +58,6 @@ export async function startWorktree(root = process.cwd(), branch = "") { const c
|
|
|
57
58
|
|
|
58
59
|
export async function worktreeStatus(root = process.cwd()) { const cfg = await policy(root); if (!cfg.worktrees.enabled) return bad("worktree policy is disabled"); const state = await layout(root, cfg.worktrees); if ("error" in state) return bad(state.error); const result = await git(state.primary, ["worktree", "list", "--porcelain"]); return result.code ? bad(result.err) : { ok: true, message: result.out }; }
|
|
59
60
|
|
|
60
|
-
async function generatedHooksOnly(root: string): Promise<boolean> { const directory = join(root, ".githooks"); if (!existsSync(directory)) return false; const names = (await readdir(directory)).sort(); if (names.join("\n") !== [...hookEvents].sort().join("\n")) return false;
|
|
61
|
+
async function generatedHooksOnly(root: string): Promise<boolean> { const directory = join(root, ".githooks"); if (!existsSync(directory)) return false; const names = (await readdir(directory)).sort(); if (names.join("\n") !== [...hookEvents].sort().join("\n")) return false; return (await Promise.all(hookEvents.map(async event => (await readFile(join(directory, event), "utf8")) === dispatcher(event)))).every(Boolean); }
|
|
61
62
|
|
|
62
63
|
export async function finishWorktree(root = process.cwd(), deleteBranch = false) { const cfg = await policy(root); if (!cfg.worktrees.enabled) return bad("worktree policy is disabled"); const state = await layout(root, cfg.worktrees); if ("error" in state) return bad(state.error); if (state.current === state.primary || !inside(state.worktreeRoot, state.current)) return bad(`finish must run from a linked worktree beneath ${state.worktreeRoot}`); if (!state.branch || cfg.protected_branches.includes(state.branch)) return bad("finish requires a non-protected named branch"); const status = (await git(state.current, ["status", "--porcelain"])).out, generatedHooks = await generatedHooksOnly(state.current), onlyGeneratedHooks = Boolean(status) && status.split("\n").every(line => line.endsWith(" .githooks/") || line.endsWith(" .githooks")); if (status && !onlyGeneratedHooks) return bad("worktree is dirty; commit, stash, or discard changes before finish"); if ((await git(state.primary, ["merge-base", "--is-ancestor", state.branch, cfg.worktrees.primary_branch])).code) return bad(`branch ${state.branch} is not merged into ${cfg.worktrees.primary_branch} in the primary checkout`); const removed = await git(state.primary, ["worktree", "remove", ...(onlyGeneratedHooks && generatedHooks ? ["--force"] : []), state.current]); if (removed.code) return bad(removed.err || removed.out); if (deleteBranch) { const deleted = await git(state.primary, ["branch", "-d", state.branch]); if (deleted.code) return bad(`worktree removed, but branch deletion failed: ${deleted.err || deleted.out}`); } return { ok: true, message: `removed merged worktree ${state.current}${deleteBranch ? ` and branch ${state.branch}` : ""}` }; }
|