@descryy/core 0.3.0 → 0.5.0
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/dist/budget/reply.d.ts +11 -46
- package/dist/budget/reply.d.ts.map +1 -1
- package/dist/budget/reply.js +10 -39
- package/dist/budget/reply.js.map +1 -1
- package/dist/budget/size.d.ts +2 -21
- package/dist/budget/size.d.ts.map +1 -1
- package/dist/budget/size.js +3 -24
- package/dist/budget/size.js.map +1 -1
- package/dist/capabilities/preconditions.d.ts +7 -68
- package/dist/capabilities/preconditions.d.ts.map +1 -1
- package/dist/capabilities/preconditions.js +6 -57
- package/dist/capabilities/preconditions.js.map +1 -1
- package/dist/contracts/engine.d.ts +26 -12
- package/dist/contracts/engine.d.ts.map +1 -1
- package/dist/contracts/engine.js +28 -11
- package/dist/contracts/engine.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/orphans.d.ts +28 -77
- package/dist/contracts/orphans.d.ts.map +1 -1
- package/dist/contracts/orphans.js +124 -94
- package/dist/contracts/orphans.js.map +1 -1
- package/dist/contracts/paths.d.ts +4 -114
- package/dist/contracts/paths.d.ts.map +1 -1
- package/dist/contracts/paths.js +7 -140
- package/dist/contracts/paths.js.map +1 -1
- package/dist/contracts/shapes.d.ts +13 -66
- package/dist/contracts/shapes.d.ts.map +1 -1
- package/dist/contracts/shapes.js +20 -91
- package/dist/contracts/shapes.js.map +1 -1
- package/dist/governance/budget.d.ts +12 -48
- package/dist/governance/budget.d.ts.map +1 -1
- package/dist/governance/budget.js +12 -48
- package/dist/governance/budget.js.map +1 -1
- package/dist/governance/candidate-boundary.d.ts +4 -32
- package/dist/governance/candidate-boundary.d.ts.map +1 -1
- package/dist/governance/candidate-boundary.js +4 -32
- package/dist/governance/candidate-boundary.js.map +1 -1
- package/dist/governance/escalation.d.ts +7 -45
- package/dist/governance/escalation.d.ts.map +1 -1
- package/dist/governance/escalation.js +7 -45
- package/dist/governance/escalation.js.map +1 -1
- package/dist/governance/fact-boundary.d.ts +7 -49
- package/dist/governance/fact-boundary.d.ts.map +1 -1
- package/dist/governance/fact-boundary.js +5 -43
- package/dist/governance/fact-boundary.js.map +1 -1
- package/dist/governance/finding-funnel.d.ts +11 -72
- package/dist/governance/finding-funnel.d.ts.map +1 -1
- package/dist/governance/finding-funnel.js +9 -68
- package/dist/governance/finding-funnel.js.map +1 -1
- package/dist/graph/build.d.ts +13 -75
- package/dist/graph/build.d.ts.map +1 -1
- package/dist/graph/build.js +0 -0
- package/dist/graph/build.js.map +1 -1
- package/dist/graph/cross-language.d.ts +4 -43
- package/dist/graph/cross-language.d.ts.map +1 -1
- package/dist/graph/cross-language.js +9 -77
- package/dist/graph/cross-language.js.map +1 -1
- package/dist/graph/index.d.ts +1 -1
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/merge.d.ts +8 -76
- package/dist/graph/merge.d.ts.map +1 -1
- package/dist/graph/merge.js +27 -77
- package/dist/graph/merge.js.map +1 -1
- package/dist/graph/observed-tests.d.ts +7 -68
- package/dist/graph/observed-tests.d.ts.map +1 -1
- package/dist/graph/observed-tests.js +5 -60
- package/dist/graph/observed-tests.js.map +1 -1
- package/dist/graph/persist.d.ts +2 -25
- package/dist/graph/persist.d.ts.map +1 -1
- package/dist/graph/persist.js +2 -25
- package/dist/graph/persist.js.map +1 -1
- package/dist/graph/runtime-confirmation.d.ts +14 -91
- package/dist/graph/runtime-confirmation.d.ts.map +1 -1
- package/dist/graph/runtime-confirmation.js +19 -103
- package/dist/graph/runtime-confirmation.js.map +1 -1
- package/dist/ledger/mint.d.ts +9 -43
- package/dist/ledger/mint.d.ts.map +1 -1
- package/dist/ledger/mint.js +15 -65
- package/dist/ledger/mint.js.map +1 -1
- package/dist/ledger/resolve.d.ts +13 -81
- package/dist/ledger/resolve.d.ts.map +1 -1
- package/dist/ledger/resolve.js +13 -76
- package/dist/ledger/resolve.js.map +1 -1
- package/dist/multipr/fingerprint.d.ts +5 -46
- package/dist/multipr/fingerprint.d.ts.map +1 -1
- package/dist/multipr/fingerprint.js +22 -74
- package/dist/multipr/fingerprint.js.map +1 -1
- package/dist/multipr/hidden-dependency.d.ts +13 -73
- package/dist/multipr/hidden-dependency.d.ts.map +1 -1
- package/dist/multipr/hidden-dependency.js +12 -63
- package/dist/multipr/hidden-dependency.js.map +1 -1
- package/dist/multipr/mechanical.d.ts +25 -160
- package/dist/multipr/mechanical.d.ts.map +1 -1
- package/dist/multipr/mechanical.js +21 -137
- package/dist/multipr/mechanical.js.map +1 -1
- package/dist/multipr/migration-heads.d.ts +18 -105
- package/dist/multipr/migration-heads.d.ts.map +1 -1
- package/dist/multipr/migration-heads.js +15 -84
- package/dist/multipr/migration-heads.js.map +1 -1
- package/dist/multipr/overlap.d.ts +16 -94
- package/dist/multipr/overlap.d.ts.map +1 -1
- package/dist/multipr/overlap.js +25 -105
- package/dist/multipr/overlap.js.map +1 -1
- package/dist/multipr/scope-store.d.ts +15 -80
- package/dist/multipr/scope-store.d.ts.map +1 -1
- package/dist/multipr/scope-store.js +17 -87
- package/dist/multipr/scope-store.js.map +1 -1
- package/dist/multipr/superseded.d.ts +10 -95
- package/dist/multipr/superseded.d.ts.map +1 -1
- package/dist/multipr/superseded.js +7 -60
- package/dist/multipr/superseded.js.map +1 -1
- package/dist/query/confirmed-facts.d.ts +12 -58
- package/dist/query/confirmed-facts.d.ts.map +1 -1
- package/dist/query/confirmed-facts.js +8 -47
- package/dist/query/confirmed-facts.js.map +1 -1
- package/dist/query/declared-value-closure.d.ts +13 -104
- package/dist/query/declared-value-closure.d.ts.map +1 -1
- package/dist/query/declared-value-closure.js +15 -104
- package/dist/query/declared-value-closure.js.map +1 -1
- package/dist/query/memory.d.ts +5 -9
- package/dist/query/memory.d.ts.map +1 -1
- package/dist/query/memory.js +31 -15
- package/dist/query/memory.js.map +1 -1
- package/dist/query/prominence.d.ts +6 -55
- package/dist/query/prominence.d.ts.map +1 -1
- package/dist/query/prominence.js +6 -55
- package/dist/query/prominence.js.map +1 -1
- package/dist/query/provider.d.ts +28 -81
- package/dist/query/provider.d.ts.map +1 -1
- package/dist/query/provider.js +8 -29
- package/dist/query/provider.js.map +1 -1
- package/dist/query/queries.d.ts +15 -65
- package/dist/query/queries.d.ts.map +1 -1
- package/dist/query/queries.js +43 -100
- package/dist/query/queries.js.map +1 -1
- package/dist/query/refusal-fetch.d.ts +8 -85
- package/dist/query/refusal-fetch.d.ts.map +1 -1
- package/dist/query/refusal-fetch.js +11 -93
- package/dist/query/refusal-fetch.js.map +1 -1
- package/dist/query/refusal-questions.d.ts +17 -92
- package/dist/query/refusal-questions.d.ts.map +1 -1
- package/dist/query/refusal-questions.js +14 -78
- package/dist/query/refusal-questions.js.map +1 -1
- package/dist/query/resolution-floor.d.ts +3 -23
- package/dist/query/resolution-floor.d.ts.map +1 -1
- package/dist/query/resolution-floor.js +3 -23
- package/dist/query/resolution-floor.js.map +1 -1
- package/dist/query/root-cause-score.d.ts +11 -161
- package/dist/query/root-cause-score.d.ts.map +1 -1
- package/dist/query/root-cause-score.js +6 -137
- package/dist/query/root-cause-score.js.map +1 -1
- package/dist/query/row-closure-picture.d.ts +5 -67
- package/dist/query/row-closure-picture.d.ts.map +1 -1
- package/dist/query/row-closure-picture.js +6 -67
- package/dist/query/row-closure-picture.js.map +1 -1
- package/dist/query/similar-incidents.d.ts +6 -41
- package/dist/query/similar-incidents.d.ts.map +1 -1
- package/dist/query/similar-incidents.js +15 -69
- package/dist/query/similar-incidents.js.map +1 -1
- package/dist/query/sqlite.d.ts +3 -7
- package/dist/query/sqlite.d.ts.map +1 -1
- package/dist/query/sqlite.js +13 -16
- package/dist/query/sqlite.js.map +1 -1
- package/dist/query/test-coverage.d.ts +5 -45
- package/dist/query/test-coverage.d.ts.map +1 -1
- package/dist/query/test-coverage.js +10 -53
- package/dist/query/test-coverage.js.map +1 -1
- package/dist/query/traverse.d.ts +22 -126
- package/dist/query/traverse.d.ts.map +1 -1
- package/dist/query/traverse.js +0 -0
- package/dist/query/traverse.js.map +1 -1
- package/dist/query/unresolved.d.ts +19 -164
- package/dist/query/unresolved.d.ts.map +1 -1
- package/dist/query/unresolved.js +11 -138
- package/dist/query/unresolved.js.map +1 -1
- package/dist/query/verification-status.d.ts +12 -109
- package/dist/query/verification-status.d.ts.map +1 -1
- package/dist/query/verification-status.js +9 -99
- package/dist/query/verification-status.js.map +1 -1
- package/dist/recording/migrate.d.ts +4 -10
- package/dist/recording/migrate.d.ts.map +1 -1
- package/dist/recording/migrate.js +4 -10
- package/dist/recording/migrate.js.map +1 -1
- package/dist/recording/reader.d.ts +2 -7
- package/dist/recording/reader.d.ts.map +1 -1
- package/dist/recording/reader.js +2 -7
- package/dist/recording/reader.js.map +1 -1
- package/dist/recording/redact.d.ts +6 -57
- package/dist/recording/redact.d.ts.map +1 -1
- package/dist/recording/redact.js +8 -64
- package/dist/recording/redact.js.map +1 -1
- package/dist/recording/schema.d.ts +3 -38
- package/dist/recording/schema.d.ts.map +1 -1
- package/dist/recording/schema.js +3 -38
- package/dist/recording/schema.js.map +1 -1
- package/dist/recording/writer.d.ts +11 -74
- package/dist/recording/writer.d.ts.map +1 -1
- package/dist/recording/writer.js +3 -43
- package/dist/recording/writer.js.map +1 -1
- package/dist/scoping/fanout.d.ts +6 -68
- package/dist/scoping/fanout.d.ts.map +1 -1
- package/dist/scoping/fanout.js +6 -68
- package/dist/scoping/fanout.js.map +1 -1
- package/dist/scoping/score.d.ts +20 -70
- package/dist/scoping/score.d.ts.map +1 -1
- package/dist/scoping/score.js +20 -70
- package/dist/scoping/score.js.map +1 -1
- package/dist/scoping/tiers.d.ts +4 -16
- package/dist/scoping/tiers.d.ts.map +1 -1
- package/dist/scoping/tiers.js +4 -16
- package/dist/scoping/tiers.js.map +1 -1
- package/dist/scoping/traverse.d.ts +3 -25
- package/dist/scoping/traverse.d.ts.map +1 -1
- package/dist/scoping/traverse.js +14 -49
- package/dist/scoping/traverse.js.map +1 -1
- package/dist/scoping/weights.d.ts +10 -74
- package/dist/scoping/weights.d.ts.map +1 -1
- package/dist/scoping/weights.js +14 -86
- package/dist/scoping/weights.js.map +1 -1
- package/dist/sources/confirmed/incidents.d.ts +5 -35
- package/dist/sources/confirmed/incidents.d.ts.map +1 -1
- package/dist/sources/confirmed/incidents.js +14 -48
- package/dist/sources/confirmed/incidents.js.map +1 -1
- package/dist/sources/git/diff.d.ts +71 -65
- package/dist/sources/git/diff.d.ts.map +1 -1
- package/dist/sources/git/diff.js +136 -83
- package/dist/sources/git/diff.js.map +1 -1
- package/dist/sources/git/env.d.ts +7 -0
- package/dist/sources/git/env.d.ts.map +1 -1
- package/dist/sources/git/env.js +10 -11
- package/dist/sources/git/env.js.map +1 -1
- package/dist/sources/git/history.d.ts +64 -84
- package/dist/sources/git/history.d.ts.map +1 -1
- package/dist/sources/git/history.js +141 -112
- package/dist/sources/git/history.js.map +1 -1
- package/dist/sources/git/incidents.d.ts +13 -75
- package/dist/sources/git/incidents.d.ts.map +1 -1
- package/dist/sources/git/incidents.js +21 -91
- package/dist/sources/git/incidents.js.map +1 -1
- package/dist/sources/git/index.d.ts +5 -3
- package/dist/sources/git/index.d.ts.map +1 -1
- package/dist/sources/git/index.js +3 -2
- package/dist/sources/git/index.js.map +1 -1
- package/dist/sources/git/source.d.ts +9 -79
- package/dist/sources/git/source.d.ts.map +1 -1
- package/dist/sources/git/source.js +0 -0
- package/dist/sources/git/source.js.map +1 -1
- package/dist/sources/migrations/across-change.d.ts +94 -0
- package/dist/sources/migrations/across-change.d.ts.map +1 -0
- package/dist/sources/migrations/across-change.js +278 -0
- package/dist/sources/migrations/across-change.js.map +1 -0
- package/dist/sources/migrations/dialects.d.ts +20 -36
- package/dist/sources/migrations/dialects.d.ts.map +1 -1
- package/dist/sources/migrations/dialects.js +11 -36
- package/dist/sources/migrations/dialects.js.map +1 -1
- package/dist/sources/migrations/index.d.ts +3 -1
- package/dist/sources/migrations/index.d.ts.map +1 -1
- package/dist/sources/migrations/index.js +2 -1
- package/dist/sources/migrations/index.js.map +1 -1
- package/dist/sources/migrations/read.d.ts +14 -79
- package/dist/sources/migrations/read.d.ts.map +1 -1
- package/dist/sources/migrations/read.js +14 -89
- package/dist/sources/migrations/read.js.map +1 -1
- package/dist/sources/workspace/workspace.d.ts +6 -42
- package/dist/sources/workspace/workspace.d.ts.map +1 -1
- package/dist/sources/workspace/workspace.js +10 -53
- package/dist/sources/workspace/workspace.js.map +1 -1
- package/dist/store/driver/driver.d.ts +9 -38
- package/dist/store/driver/driver.d.ts.map +1 -1
- package/dist/store/driver/driver.js +4 -22
- package/dist/store/driver/driver.js.map +1 -1
- package/dist/store/driver/node-sqlite.d.ts +3 -12
- package/dist/store/driver/node-sqlite.d.ts.map +1 -1
- package/dist/store/driver/node-sqlite.js +4 -18
- package/dist/store/driver/node-sqlite.js.map +1 -1
- package/dist/store/index.d.ts +2 -7
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +4 -10
- package/dist/store/index.js.map +1 -1
- package/dist/store/migrate.d.ts +14 -50
- package/dist/store/migrate.d.ts.map +1 -1
- package/dist/store/migrate.js +15 -52
- package/dist/store/migrate.js.map +1 -1
- package/dist/store/reader.d.ts +19 -84
- package/dist/store/reader.d.ts.map +1 -1
- package/dist/store/reader.js +25 -92
- package/dist/store/reader.js.map +1 -1
- package/dist/store/schema.d.ts +14 -76
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +14 -76
- package/dist/store/schema.js.map +1 -1
- package/dist/store/writer.d.ts +14 -88
- package/dist/store/writer.d.ts.map +1 -1
- package/dist/store/writer.js +29 -123
- package/dist/store/writer.js.map +1 -1
- package/dist/tiers/certify.d.ts +46 -281
- package/dist/tiers/certify.d.ts.map +1 -1
- package/dist/tiers/certify.js +46 -226
- package/dist/tiers/certify.js.map +1 -1
- package/dist/tiers/ladder.d.ts +7 -51
- package/dist/tiers/ladder.d.ts.map +1 -1
- package/dist/tiers/ladder.js +13 -89
- package/dist/tiers/ladder.js.map +1 -1
- package/dist/validation/attributes.d.ts +47 -0
- package/dist/validation/attributes.d.ts.map +1 -0
- package/dist/validation/attributes.js +130 -0
- package/dist/validation/attributes.js.map +1 -0
- package/dist/validation/config-graph.d.ts +7 -56
- package/dist/validation/config-graph.d.ts.map +1 -1
- package/dist/validation/config-graph.js +15 -61
- package/dist/validation/config-graph.js.map +1 -1
- package/dist/validation/env.d.ts +53 -2
- package/dist/validation/env.d.ts.map +1 -1
- package/dist/validation/env.js +99 -4
- package/dist/validation/env.js.map +1 -1
- package/dist/validation/index.d.ts +5 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +3 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/join-substitution.d.ts +22 -120
- package/dist/validation/join-substitution.d.ts.map +1 -1
- package/dist/validation/join-substitution.js +13 -90
- package/dist/validation/join-substitution.js.map +1 -1
- package/dist/validation/migration-integrity.d.ts +72 -0
- package/dist/validation/migration-integrity.d.ts.map +1 -0
- package/dist/validation/migration-integrity.js +238 -0
- package/dist/validation/migration-integrity.js.map +1 -0
- package/dist/validation/migrations.d.ts +23 -88
- package/dist/validation/migrations.d.ts.map +1 -1
- package/dist/validation/migrations.js +20 -79
- package/dist/validation/migrations.js.map +1 -1
- package/dist/validation/nodes.d.ts +3 -1
- package/dist/validation/nodes.d.ts.map +1 -1
- package/dist/validation/nodes.js +3 -1
- package/dist/validation/nodes.js.map +1 -1
- package/dist/validation/rollback.d.ts +10 -73
- package/dist/validation/rollback.d.ts.map +1 -1
- package/dist/validation/rollback.js +23 -81
- package/dist/validation/rollback.js.map +1 -1
- package/dist/validation/route-drift.d.ts +9 -62
- package/dist/validation/route-drift.d.ts.map +1 -1
- package/dist/validation/route-drift.js +7 -52
- package/dist/validation/route-drift.js.map +1 -1
- package/dist/validation/sources.d.ts +16 -94
- package/dist/validation/sources.d.ts.map +1 -1
- package/dist/validation/sources.js +51 -147
- package/dist/validation/sources.js.map +1 -1
- package/dist/worker/pool.d.ts +6 -45
- package/dist/worker/pool.d.ts.map +1 -1
- package/dist/worker/pool.js +5 -42
- package/dist/worker/pool.js.map +1 -1
- package/dist/worker/protocol.d.ts +7 -20
- package/dist/worker/protocol.d.ts.map +1 -1
- package/dist/worker/protocol.js +3 -10
- package/dist/worker/protocol.js.map +1 -1
- package/dist/worker/traversal.worker.d.ts +2 -21
- package/dist/worker/traversal.worker.d.ts.map +1 -1
- package/dist/worker/traversal.worker.js +4 -23
- package/dist/worker/traversal.worker.js.map +1 -1
- package/package.json +11 -2
|
@@ -1,86 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* It has been recommended four times and declined once. This is the feed.
|
|
6
|
-
*
|
|
7
|
-
* ## What it will and will not read
|
|
8
|
-
*
|
|
9
|
-
* `migration-heads.ts` says the input is *"a revision, its declared parents and
|
|
10
|
-
* where it came from — the shape every migration tool has, whatever it calls the
|
|
11
|
-
* fields"*, and it says the reading is producer work. It is right about the
|
|
12
|
-
* shape and it is wrong that every tool has it.
|
|
13
|
-
*
|
|
14
|
-
* **Two of the four common families declare a DAG and two do not**, and the
|
|
15
|
-
* difference is not cosmetic — it decides whether §14.6's finding exists at all:
|
|
16
|
-
*
|
|
17
|
-
* | family | declares | head conflict is |
|
|
18
|
-
* | --- | --- | --- |
|
|
19
|
-
* | revision/down_revision chain | one parent per revision, tuples for merges | a real failure the tool itself raises |
|
|
20
|
-
* | dependency list | `(app, name)` pairs per migration | a real failure the tool itself detects |
|
|
21
|
-
* | **timestamp-ordered directory** | **nothing** | **not a thing that can happen** |
|
|
22
|
-
*
|
|
23
|
-
* The last row covers both of the two frameworks this row named as *"the obvious
|
|
24
|
-
* first two"*. They track applied migrations as a **set** in a table, run
|
|
25
|
-
* whatever is pending in filename order, and have no multiple-head error to
|
|
26
|
-
* predict. Two changes each adding a migration is the normal case and it
|
|
27
|
-
* succeeds.
|
|
28
|
-
*
|
|
29
|
-
* Synthesising `parents = [the previous file by timestamp]` would manufacture
|
|
30
|
-
* exactly the DAG this check consumes — and would then report a conflict for
|
|
31
|
-
* *every* pair of changes that each add a migration, since both would carry the
|
|
32
|
-
* same synthesised parent. A maybe-list built from an invented format, published
|
|
33
|
-
* beside real Class A structural facts and indistinguishable from them in the
|
|
34
|
-
* output.
|
|
35
|
-
*
|
|
36
|
-
* So those files are **refused with a reason**, and the refusal is a row.
|
|
37
|
-
*
|
|
38
|
-
* ## Measured rather than assumed, and the asymmetry is stated
|
|
39
|
-
*
|
|
40
|
-
* 604 migrations across three real applications using the timestamp-ordered
|
|
41
|
-
* pattern: **0 declare a revision id or a parent.** The twelve files that matched
|
|
42
|
-
* `/parent/` matched a `parent_id` column and one comment.
|
|
43
|
-
*
|
|
44
|
-
* The other timestamp-ordered ecosystem is refused on **documented behaviour**,
|
|
45
|
-
* because no corpus using it was available here. That is a weaker basis than the
|
|
46
|
-
* measured one and is labelled as such rather than folded in beside it.
|
|
47
|
-
*
|
|
48
|
-
* ## Everything this produces is R0, and the ceiling follows
|
|
49
|
-
*
|
|
50
|
-
* A regex over source text. §15.2 lists migration head conflict as Class A and
|
|
51
|
-
* §15.3 already settles the disagreement: **the Class column is a ceiling, not a
|
|
52
|
-
* floor.** Per DEC-058 the record carries the resolution of its own evidence, so
|
|
53
|
-
* a conflict computed from these records caps at C however certain the
|
|
54
|
-
* arithmetic above it. Class A needs the framework's own migration history —
|
|
55
|
-
* DEC-115's promotion path — which needs the tool installed and run.
|
|
56
|
-
*
|
|
57
|
-
* **Nothing here installs or runs anything**, by policy: cloned third-party
|
|
58
|
-
* source is arbitrary code and installing it executes it. The cost of that policy
|
|
59
|
-
* is this ceiling, and it is disclosed rather than hidden.
|
|
60
|
-
*
|
|
61
|
-
* ## `"unknown"` is not `[]`, enforced here rather than downstream
|
|
62
|
-
*
|
|
63
|
-
* A migration whose parent line could not be read gets `"unknown"`. An initial
|
|
64
|
-
* migration gets `[]`. `migration-heads.ts` makes the distinction unrepresentable
|
|
65
|
-
* in its type for a reason — an unread migration might be exactly the merge that
|
|
66
|
-
* resolves the fork being reported — and a producer that returns `[]` on a failed
|
|
67
|
-
* match would defeat that from below.
|
|
2
|
+
* Feeds §14.6's migration head conflict check. Regex over source (R0) caps a conflict at C (DEC-058) —
|
|
3
|
+
* Class A needs the framework's own tool run (DEC-115), which this never does, by policy. Timestamp-ordered
|
|
4
|
+
* directories declare no DAG (604 migrations measured, 0 declare a parent) — refused with a reason, never a synthesised fake parent.
|
|
68
5
|
*/
|
|
69
6
|
import { readFileSync } from "node:fs";
|
|
70
7
|
import { basename } from "node:path";
|
|
71
8
|
import { DIALECTS, REFUSED } from "./dialects.js";
|
|
72
9
|
export { DIALECTS, REFUSED };
|
|
73
|
-
/**
|
|
74
|
-
* Glob subset sufficient for these patterns: `**` across directory boundaries,
|
|
75
|
-
* `*` within one segment.
|
|
76
|
-
*
|
|
77
|
-
* Scanned rather than built by chained `replace`. The chained version needs a
|
|
78
|
-
* placeholder to stop `**` being rewritten by the `*` pass, the placeholder has
|
|
79
|
-
* to be a character no path contains, and the obvious choice is a raw control
|
|
80
|
-
* byte — which is exactly how `sources/git/source.ts` came to be binary to git
|
|
81
|
-
* and grep, found in the same batch of work as this file. A scan has no ordering
|
|
82
|
-
* problem, so it needs no placeholder, so the question never arises.
|
|
83
|
-
*/
|
|
10
|
+
/** Glob subset: `**` across directories, `*` within one segment. Scanned, not chained `replace` (which needs a placeholder byte — how `sources/git/source.ts` went binary to git). */
|
|
84
11
|
function globToRegExp(glob) {
|
|
85
12
|
let out = "";
|
|
86
13
|
for (let i = 0; i < glob.length; i += 1) {
|
|
@@ -106,15 +33,18 @@ function globToRegExp(glob) {
|
|
|
106
33
|
}
|
|
107
34
|
return new RegExp(`^${out}$`);
|
|
108
35
|
}
|
|
109
|
-
const matchesAny = (path, globs) => globs.some((glob) => globToRegExp(glob).test(path));
|
|
110
36
|
/**
|
|
111
|
-
*
|
|
37
|
+
* Does any dialect or refused family claim this path?
|
|
112
38
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
39
|
+
* Exported so a caller enumerating a whole tree can narrow it before reading
|
|
40
|
+
* anything. A base branch's full file list is thousands of paths and its
|
|
41
|
+
* migrations are dozens; reading all of them to discover that would be the
|
|
42
|
+
* check's cost paid on every run for nothing.
|
|
117
43
|
*/
|
|
44
|
+
export const looksLikeMigration = (path) => DIALECTS.some((d) => matchesAny(path, d.files)) ||
|
|
45
|
+
REFUSED.some((f) => matchesAny(path, f.files));
|
|
46
|
+
const matchesAny = (path, globs) => globs.some((glob) => globToRegExp(glob).test(path));
|
|
47
|
+
/** Parse the parents declaration's right-hand side. `null` (unparseable) becomes `"unknown"`, never `[]` — only a declared root literal yields `[]`. */
|
|
118
48
|
function parseParents(raw, kind) {
|
|
119
49
|
const text = raw.trim().replace(/#.*$/, "").trim();
|
|
120
50
|
// A declared root. The only path from a matched expression to an empty list.
|
|
@@ -167,12 +97,7 @@ function revisionOf(dialect, path, text) {
|
|
|
167
97
|
}
|
|
168
98
|
return null;
|
|
169
99
|
}
|
|
170
|
-
/**
|
|
171
|
-
* Read every migration a change adds.
|
|
172
|
-
*
|
|
173
|
-
* @param prId whatever identifies the change — passed straight through
|
|
174
|
-
* @param files paths the change added, relative to the repository root
|
|
175
|
-
*/
|
|
100
|
+
/** Read every migration a change adds. `files` are paths relative to the repository root. */
|
|
176
101
|
export function readMigrations(prId, files, options = {}) {
|
|
177
102
|
const read = options.read ?? ((path) => readFileSync(path, "utf8"));
|
|
178
103
|
const resolution = options.resolution ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/sources/migrations/read.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/sources/migrations/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* own: which package roots exist, and which of them are meant to talk to
|
|
6
|
-
* each other. `descry.json` at the repository root is where both are
|
|
7
|
-
* declared, with an optional `descry` key inside `package.json` or
|
|
8
|
-
* `pyproject.toml` for a project that would rather not add a file. The root
|
|
9
|
-
* file wins where more than one location is present — it is the one
|
|
10
|
-
* location that works for a locally installed tool with no hosted backend,
|
|
11
|
-
* and it is greppable.
|
|
12
|
-
*
|
|
13
|
-
* ## Nx, Turborepo, pnpm and npm workspaces are read for the package LIST,
|
|
14
|
-
* ## and never for a pairing
|
|
15
|
-
*
|
|
16
|
-
* Enumerating packages from a workspace manifest is reading a declaration —
|
|
17
|
-
* the manifest states which directories are packages, so there is nothing to
|
|
18
|
-
* infer. Deciding that `apps/web` talks to `apps/api` is a name inference,
|
|
19
|
-
* and the correct mechanism already exists one layer up: a pairing is either
|
|
20
|
-
* declared here, in `descry.json`, or it falls out of a real
|
|
21
|
-
* `USES_API`/`SERVES_API` join at R3. This module supplies the declared half
|
|
22
|
-
* only; it does not guess a pairing from two directory names that sound
|
|
23
|
-
* related, for the same reason a Python `Company` must not join a
|
|
24
|
-
* TypeScript `Company` on a shared word.
|
|
25
|
-
*
|
|
26
|
-
* ## Precision over recall in the glob reader
|
|
27
|
-
*
|
|
28
|
-
* `workspaces` in `package.json` and `packages:` in `pnpm-workspace.yaml`
|
|
29
|
-
* hold globs, not paths. Only the one shape actually used across real
|
|
30
|
-
* monorepos in this project's own reference set — `dir/*`, one segment of
|
|
31
|
-
* wildcard at the end — is expanded, by listing `dir`'s subdirectories that
|
|
32
|
-
* themselves contain a `package.json`. A more elaborate glob (`**`, a
|
|
33
|
-
* mid-path wildcard, a negation) is left unexpanded and disclosed on
|
|
34
|
-
* `unexpandedGlobs` rather than approximated — an approximated package list
|
|
35
|
-
* silently mis-scopes every check that follows it.
|
|
2
|
+
* Workspace declaration (DEC-075 §7): `descry.json` (or a `descry` key in `package.json`/`pyproject.toml`, root file wins) declares package roots and cross-package pairings.
|
|
3
|
+
* Nx/Turborepo/pnpm/npm manifests are read for the package LIST only — pairing is never inferred from directory names, only declared here or found via a real R3 `USES_API`/`SERVES_API` join.
|
|
4
|
+
* Only the `dir/*` glob shape is expanded; anything else is disclosed on `unexpandedGlobs` rather than approximated (precision over recall).
|
|
36
5
|
*/
|
|
37
6
|
export interface WorkspacePairing {
|
|
38
7
|
/** Repo-relative package path, forward slashes. */
|
|
@@ -52,13 +21,8 @@ export interface WorkspaceDeclaration {
|
|
|
52
21
|
/** A workspace glob this reader would not expand, so it is disclosed rather than guessed. */
|
|
53
22
|
readonly unexpandedGlobs: readonly string[];
|
|
54
23
|
}
|
|
55
|
-
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* `package.json#descry` key, which wins over `pyproject.toml`'s
|
|
59
|
-
* `[tool.descry]` table; the first one found is used whole, never merged
|
|
60
|
-
* across locations — a package list assembled from two files is a package
|
|
61
|
-
* list nobody wrote down.
|
|
62
|
-
*/
|
|
24
|
+
/** Resolves `root`'s workspace declaration. `descry.json` wins over
|
|
25
|
+
* `package.json#descry`, which wins over `pyproject.toml`; the first found
|
|
26
|
+
* is used whole, never merged across locations. */
|
|
63
27
|
export declare function resolveWorkspace(root: string): WorkspaceDeclaration;
|
|
64
28
|
//# sourceMappingURL=workspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/sources/workspace/workspace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/sources/workspace/workspace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,qBAAqB,GAAG,4BAA4B,GAAG,MAAM,CAAC;AAC9G,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,yBAAyB,GACzB,qBAAqB,GACrB,MAAM,CAAC;AAEX,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,6FAA6F;IAC7F,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAoMD;;oDAEoD;AACpD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAuCnE"}
|
|
@@ -1,38 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* own: which package roots exist, and which of them are meant to talk to
|
|
6
|
-
* each other. `descry.json` at the repository root is where both are
|
|
7
|
-
* declared, with an optional `descry` key inside `package.json` or
|
|
8
|
-
* `pyproject.toml` for a project that would rather not add a file. The root
|
|
9
|
-
* file wins where more than one location is present — it is the one
|
|
10
|
-
* location that works for a locally installed tool with no hosted backend,
|
|
11
|
-
* and it is greppable.
|
|
12
|
-
*
|
|
13
|
-
* ## Nx, Turborepo, pnpm and npm workspaces are read for the package LIST,
|
|
14
|
-
* ## and never for a pairing
|
|
15
|
-
*
|
|
16
|
-
* Enumerating packages from a workspace manifest is reading a declaration —
|
|
17
|
-
* the manifest states which directories are packages, so there is nothing to
|
|
18
|
-
* infer. Deciding that `apps/web` talks to `apps/api` is a name inference,
|
|
19
|
-
* and the correct mechanism already exists one layer up: a pairing is either
|
|
20
|
-
* declared here, in `descry.json`, or it falls out of a real
|
|
21
|
-
* `USES_API`/`SERVES_API` join at R3. This module supplies the declared half
|
|
22
|
-
* only; it does not guess a pairing from two directory names that sound
|
|
23
|
-
* related, for the same reason a Python `Company` must not join a
|
|
24
|
-
* TypeScript `Company` on a shared word.
|
|
25
|
-
*
|
|
26
|
-
* ## Precision over recall in the glob reader
|
|
27
|
-
*
|
|
28
|
-
* `workspaces` in `package.json` and `packages:` in `pnpm-workspace.yaml`
|
|
29
|
-
* hold globs, not paths. Only the one shape actually used across real
|
|
30
|
-
* monorepos in this project's own reference set — `dir/*`, one segment of
|
|
31
|
-
* wildcard at the end — is expanded, by listing `dir`'s subdirectories that
|
|
32
|
-
* themselves contain a `package.json`. A more elaborate glob (`**`, a
|
|
33
|
-
* mid-path wildcard, a negation) is left unexpanded and disclosed on
|
|
34
|
-
* `unexpandedGlobs` rather than approximated — an approximated package list
|
|
35
|
-
* silently mis-scopes every check that follows it.
|
|
2
|
+
* Workspace declaration (DEC-075 §7): `descry.json` (or a `descry` key in `package.json`/`pyproject.toml`, root file wins) declares package roots and cross-package pairings.
|
|
3
|
+
* Nx/Turborepo/pnpm/npm manifests are read for the package LIST only — pairing is never inferred from directory names, only declared here or found via a real R3 `USES_API`/`SERVES_API` join.
|
|
4
|
+
* Only the `dir/*` glob shape is expanded; anything else is disclosed on `unexpandedGlobs` rather than approximated (precision over recall).
|
|
36
5
|
*/
|
|
37
6
|
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
38
7
|
import { join } from "node:path";
|
|
@@ -65,14 +34,9 @@ function readPackages(value) {
|
|
|
65
34
|
return undefined;
|
|
66
35
|
return value.filter((p) => typeof p === "string").map(toForwardSlash);
|
|
67
36
|
}
|
|
68
|
-
/**
|
|
69
|
-
* `[
|
|
70
|
-
*
|
|
71
|
-
* inline `{ from = "...", to = "..." }` tables, both on lines belonging to
|
|
72
|
-
* the `[tool.descry]` table, and refuses (returns `undefined`) on anything
|
|
73
|
-
* it is not confident it read correctly — a wrong read here silently
|
|
74
|
-
* mis-scopes a whole run, so guessing is the wrong trade.
|
|
75
|
-
*/
|
|
37
|
+
/** `[tool.descry]` in `pyproject.toml`, read narrowly — not a TOML parser.
|
|
38
|
+
* Recognises only `packages = [...]` and inline-table `pairings`, refusing
|
|
39
|
+
* (`undefined`) on anything it isn't confident it read correctly. */
|
|
76
40
|
function readPyprojectDescry(root) {
|
|
77
41
|
const path = join(root, "pyproject.toml");
|
|
78
42
|
if (!existsSync(path))
|
|
@@ -107,9 +71,7 @@ function readPyprojectDescry(root) {
|
|
|
107
71
|
const pairingsMatch = /^pairings\s*=\s*\[(.*)\]\s*$/.exec(line);
|
|
108
72
|
const pairingsGroup = pairingsMatch?.[1];
|
|
109
73
|
if (pairingsGroup !== undefined) {
|
|
110
|
-
//
|
|
111
|
-
// tables use `=`, JSON uses `:`; translate the narrow shape this
|
|
112
|
-
// reader accepts rather than reaching for a general parser.
|
|
74
|
+
// TOML inline tables use `=`, JSON uses `:`; translate rather than parse generally.
|
|
113
75
|
const asJson = `[${pairingsGroup.replace(/(\bfrom\s*=|\bto\s*=)/g, (m) => (m.startsWith("from") ? '"from":' : '"to":'))}]`;
|
|
114
76
|
const arr = tryParseJsonArray(asJson);
|
|
115
77
|
if (arr !== undefined)
|
|
@@ -243,14 +205,9 @@ function readPackageListFromManifests(root) {
|
|
|
243
205
|
}
|
|
244
206
|
return { packages: [], source: "none", unexpandedGlobs: [] };
|
|
245
207
|
}
|
|
246
|
-
/**
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
* `package.json#descry` key, which wins over `pyproject.toml`'s
|
|
250
|
-
* `[tool.descry]` table; the first one found is used whole, never merged
|
|
251
|
-
* across locations — a package list assembled from two files is a package
|
|
252
|
-
* list nobody wrote down.
|
|
253
|
-
*/
|
|
208
|
+
/** Resolves `root`'s workspace declaration. `descry.json` wins over
|
|
209
|
+
* `package.json#descry`, which wins over `pyproject.toml`; the first found
|
|
210
|
+
* is used whole, never merged across locations. */
|
|
254
211
|
export function resolveWorkspace(root) {
|
|
255
212
|
let raw;
|
|
256
213
|
let declarationSource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/sources/workspace/workspace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/sources/workspace/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The SQL driver interface
|
|
3
|
-
*
|
|
4
|
-
* `node:sqlite` is an experimental API on an LTS runtime: it landed in 22.5 and
|
|
5
|
-
* its surface has moved across 22.x minors. That is an acceptable risk *behind
|
|
6
|
-
* an interface* and an unacceptable one spread through the engine, which is the
|
|
7
|
-
* only reason this file exists. A later swap to `better-sqlite3`, `libsql` or a
|
|
8
|
-
* Postgres-backed driver should be a day's work, and `driver.contract.test.ts`
|
|
9
|
-
* is what makes that estimate real rather than hopeful.
|
|
10
|
-
*
|
|
11
|
-
* Three of the nine methods are NOT thin delegations, verified against Node
|
|
12
|
-
* v22.23.1: `DatabaseSync` has no `transaction`, no `pragma` and no `backup`.
|
|
13
|
-
* Those are better-sqlite3 idioms. They are part of this interface anyway
|
|
14
|
-
* because every engine caller needs them and every driver can implement them —
|
|
15
|
-
* putting them here is what stops `BEGIN`/`COMMIT` string handling leaking into
|
|
16
|
-
* the writer.
|
|
2
|
+
* The SQL driver interface (DEC-018). `node:sqlite` is experimental on an LTS runtime (landed 22.5, surface has moved since) — acceptable behind an interface, unacceptable spread through the engine.
|
|
3
|
+
* A later swap to better-sqlite3/libsql/Postgres should be a day's work (driver.contract.test.ts verifies it). 3 of 9 methods aren't thin delegations: DatabaseSync (Node 22.23.1) has no transaction/pragma/backup — added here so BEGIN/COMMIT handling doesn't leak into the writer.
|
|
17
4
|
*/
|
|
18
5
|
/** Everything SQLite can bind. Deliberately narrow — no implicit coercion. */
|
|
19
6
|
export type SqlParam = null | number | bigint | string | Uint8Array;
|
|
@@ -29,13 +16,8 @@ export interface SqlStatement<Row = Record<string, unknown>> {
|
|
|
29
16
|
iterate(...params: SqlParam[]): IterableIterator<Row>;
|
|
30
17
|
}
|
|
31
18
|
export interface OpenOptions {
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
* handle (the plan's Step 10), and without WAL a writer blocks every reader,
|
|
35
|
-
* which is exactly the stall that breaks streaming-first.
|
|
36
|
-
*
|
|
37
|
-
* Ignored for `:memory:`, where SQLite has no journal to write ahead to.
|
|
38
|
-
*/
|
|
19
|
+
/** Write-ahead logging. On by default: without it a writer blocks the
|
|
20
|
+
* traversal worker's read-only handle. Ignored for `:memory:`. */
|
|
39
21
|
readonly wal?: boolean;
|
|
40
22
|
readonly readOnly?: boolean;
|
|
41
23
|
}
|
|
@@ -50,15 +32,9 @@ export interface SqlDriver {
|
|
|
50
32
|
close(): void;
|
|
51
33
|
exec(sql: string): void;
|
|
52
34
|
prepare<Row = Record<string, unknown>>(sql: string): SqlStatement<Row>;
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* point rather than aborting the outer transaction.
|
|
57
|
-
*
|
|
58
|
-
* Synchronous on purpose. `node:sqlite` is a synchronous API, and an `async`
|
|
59
|
-
* callback here would let unrelated work interleave inside the transaction
|
|
60
|
-
* while still looking atomic.
|
|
61
|
-
*/
|
|
35
|
+
/** Run fn transactionally, commit on return, rollback on throw. Nesting uses
|
|
36
|
+
* SAVEPOINT. Synchronous on purpose — async here would let unrelated work
|
|
37
|
+
* interleave inside the transaction while still looking atomic. */
|
|
62
38
|
transaction<T>(fn: () => T): T;
|
|
63
39
|
/** `pragma("journal_mode")` reads; `pragma("journal_mode = WAL")` sets. */
|
|
64
40
|
pragma<T = unknown>(statement: string): T | undefined;
|
|
@@ -66,13 +42,8 @@ export interface SqlDriver {
|
|
|
66
42
|
backup(destinationPath: string): Promise<void>;
|
|
67
43
|
version(): DriverVersion;
|
|
68
44
|
}
|
|
69
|
-
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* Declared as a field plus a constructor-body assignment rather than a parameter
|
|
73
|
-
* property: parameter properties are not erasable syntax, so Node's type
|
|
74
|
-
* stripping cannot run them (tsconfig `erasableSyntaxOnly`, echoed by the lint).
|
|
75
|
-
*/
|
|
45
|
+
/** Thrown for driver-layer failures so callers never match on engine text.
|
|
46
|
+
* Field + constructor assignment, not a parameter property — those aren't erasable syntax (tsconfig erasableSyntaxOnly), so Node's type stripping can't run them. */
|
|
76
47
|
export declare class DriverError extends Error {
|
|
77
48
|
readonly name = "DriverError";
|
|
78
49
|
constructor(message: string, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/store/driver/driver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/store/driver/driver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,CAAC;IAClC,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC;IAC5C,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACtC,+FAA+F;IAC/F,OAAO,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,WAAW;IAC1B;uEACmE;IACnE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAChD,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEvE;;wEAEoE;IACpE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAE/B,2EAA2E;IAC3E,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEtD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,IAAI,aAAa,CAAC;CAC1B;AAED;sKACsK;AACtK,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAkB,IAAI,iBAAiB;gBAE3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG3D"}
|
|
@@ -1,27 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The SQL driver interface
|
|
3
|
-
*
|
|
4
|
-
* `node:sqlite` is an experimental API on an LTS runtime: it landed in 22.5 and
|
|
5
|
-
* its surface has moved across 22.x minors. That is an acceptable risk *behind
|
|
6
|
-
* an interface* and an unacceptable one spread through the engine, which is the
|
|
7
|
-
* only reason this file exists. A later swap to `better-sqlite3`, `libsql` or a
|
|
8
|
-
* Postgres-backed driver should be a day's work, and `driver.contract.test.ts`
|
|
9
|
-
* is what makes that estimate real rather than hopeful.
|
|
10
|
-
*
|
|
11
|
-
* Three of the nine methods are NOT thin delegations, verified against Node
|
|
12
|
-
* v22.23.1: `DatabaseSync` has no `transaction`, no `pragma` and no `backup`.
|
|
13
|
-
* Those are better-sqlite3 idioms. They are part of this interface anyway
|
|
14
|
-
* because every engine caller needs them and every driver can implement them —
|
|
15
|
-
* putting them here is what stops `BEGIN`/`COMMIT` string handling leaking into
|
|
16
|
-
* the writer.
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Thrown for driver-layer failures so callers never have to match on engine text.
|
|
20
|
-
*
|
|
21
|
-
* Declared as a field plus a constructor-body assignment rather than a parameter
|
|
22
|
-
* property: parameter properties are not erasable syntax, so Node's type
|
|
23
|
-
* stripping cannot run them (tsconfig `erasableSyntaxOnly`, echoed by the lint).
|
|
2
|
+
* The SQL driver interface (DEC-018). `node:sqlite` is experimental on an LTS runtime (landed 22.5, surface has moved since) — acceptable behind an interface, unacceptable spread through the engine.
|
|
3
|
+
* A later swap to better-sqlite3/libsql/Postgres should be a day's work (driver.contract.test.ts verifies it). 3 of 9 methods aren't thin delegations: DatabaseSync (Node 22.23.1) has no transaction/pragma/backup — added here so BEGIN/COMMIT handling doesn't leak into the writer.
|
|
24
4
|
*/
|
|
5
|
+
/** Thrown for driver-layer failures so callers never match on engine text.
|
|
6
|
+
* Field + constructor assignment, not a parameter property — those aren't erasable syntax (tsconfig erasableSyntaxOnly), so Node's type stripping can't run them. */
|
|
25
7
|
export class DriverError extends Error {
|
|
26
8
|
name = "DriverError";
|
|
27
9
|
constructor(message, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/store/driver/driver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/store/driver/driver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmDH;sKACsK;AACtK,MAAM,OAAO,WAAY,SAAQ,KAAK;IAClB,IAAI,GAAG,aAAa,CAAC;IAEvC,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 1. **Rows come back with a null prototype.** `hasOwnProperty`, `instanceof`
|
|
7
|
-
* and anything walking the prototype chain break on them, and the failure
|
|
8
|
-
* is remote from the cause. Every row is copied into an ordinary object
|
|
9
|
-
* before it leaves this file. DEC-018 states the rule; the contract suite
|
|
10
|
-
* enforces it.
|
|
11
|
-
* 2. **`DatabaseSync` has no `transaction`, `pragma` or `backup`.** Those are
|
|
12
|
-
* better-sqlite3 idioms. They are synthesised below so that no caller ever
|
|
13
|
-
* writes `BEGIN` as a string.
|
|
2
|
+
* Only file importing `node:sqlite`. Two hazards, verified on Node 22.23.1: rows return with a null
|
|
3
|
+
* prototype (breaks `hasOwnProperty`/`instanceof` — every row copied to an ordinary object, DEC-018);
|
|
4
|
+
* `DatabaseSync` has no `transaction`/`pragma`/`backup` (better-sqlite3 idioms) — synthesised below.
|
|
14
5
|
*/
|
|
15
6
|
import { type DriverVersion, type OpenOptions, type SqlDriver, type SqlStatement } from "./driver.ts";
|
|
16
7
|
export declare class NodeSqliteDriver implements SqlDriver {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-sqlite.d.ts","sourceRoot":"","sources":["../../../src/store/driver/node-sqlite.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"node-sqlite.d.ts","sourceRoot":"","sources":["../../../src/store/driver/node-sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,SAAS,EAEd,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAmCrB,qBAAa,gBAAiB,YAAW,SAAS;;IAUhD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,IAAI;IAsBnD,KAAK,IAAI,IAAI;IAOb,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQvB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;IAQtE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IA0B9B,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAqBrD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB3B,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD,OAAO,IAAI,aAAa;CAKzB"}
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 1. **Rows come back with a null prototype.** `hasOwnProperty`, `instanceof`
|
|
7
|
-
* and anything walking the prototype chain break on them, and the failure
|
|
8
|
-
* is remote from the cause. Every row is copied into an ordinary object
|
|
9
|
-
* before it leaves this file. DEC-018 states the rule; the contract suite
|
|
10
|
-
* enforces it.
|
|
11
|
-
* 2. **`DatabaseSync` has no `transaction`, `pragma` or `backup`.** Those are
|
|
12
|
-
* better-sqlite3 idioms. They are synthesised below so that no caller ever
|
|
13
|
-
* writes `BEGIN` as a string.
|
|
2
|
+
* Only file importing `node:sqlite`. Two hazards, verified on Node 22.23.1: rows return with a null
|
|
3
|
+
* prototype (breaks `hasOwnProperty`/`instanceof` — every row copied to an ordinary object, DEC-018);
|
|
4
|
+
* `DatabaseSync` has no `transaction`/`pragma`/`backup` (better-sqlite3 idioms) — synthesised below.
|
|
14
5
|
*/
|
|
15
6
|
import { DatabaseSync, backup as sqliteBackup } from "node:sqlite";
|
|
16
7
|
import { DriverError, } from "./driver.js";
|
|
17
|
-
/**
|
|
18
|
-
* Copy a null-prototype row into an ordinary object.
|
|
19
|
-
*
|
|
20
|
-
* Shallow on purpose: SQLite returns flat rows of primitives, so there is no
|
|
21
|
-
* nesting to walk, and a deep clone would silently copy `Uint8Array` blobs.
|
|
22
|
-
*/
|
|
8
|
+
/** Copy a null-prototype row into an ordinary object. Shallow on purpose — a deep clone would copy `Uint8Array` blobs. */
|
|
23
9
|
function rehydrate(row) {
|
|
24
10
|
return { ...row };
|
|
25
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-sqlite.js","sourceRoot":"","sources":["../../../src/store/driver/node-sqlite.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"node-sqlite.js","sourceRoot":"","sources":["../../../src/store/driver/node-sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/store/index.d.ts
CHANGED
|
@@ -12,13 +12,8 @@ export interface Store {
|
|
|
12
12
|
readonly created: boolean;
|
|
13
13
|
close(): void;
|
|
14
14
|
}
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* Migration runs on open, so there is no window in which a caller holds a handle
|
|
19
|
-
* to a store whose version has not been checked — DEC-017's "refuse to read"
|
|
20
|
-
* has to happen before the first read, not on the first query.
|
|
21
|
-
*/
|
|
15
|
+
/** Opens (or creates) a graph at `path`, or ":memory:" for a throwaway one. Migration runs on
|
|
16
|
+
* open — DEC-017's "refuse to read" happens before the first read, never on the first query. */
|
|
22
17
|
export declare function openStore(path: string, options?: OpenStoreOptions): Store;
|
|
23
18
|
export { DriverError } from "./driver/driver.ts";
|
|
24
19
|
export type { DriverVersion, OpenOptions, RunResult, SqlDriver, SqlParam, SqlStatement, } from "./driver/driver.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,KAAK,IAAI,IAAI,CAAC;CACf;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;iGACiG;AACjG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,KAAK,CAwB7E;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChG,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrH,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|