provident-storeroom 0.5.0 → 1.0.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/README.md +70 -10
- package/index.d.ts +313 -96
- package/index.mjs +1254 -3188
- package/package.json +7 -6
- package/src/constraint-kernel.mjs +4 -1753
- package/src/entry/artefact.mjs +376 -0
- package/src/entry/carrier.mjs +1002 -0
- package/src/entry/class-decision.mjs +1214 -0
- package/src/entry/constraints.mjs +844 -0
- package/src/entry/delivery.mjs +639 -0
- package/src/entry/frame.mjs +417 -0
- package/src/entry/kernel-attempt.mjs +598 -0
- package/src/entry/kernel-commit.mjs +166 -0
- package/src/entry/kernel-foundations.mjs +664 -0
- package/src/entry/kernel-registration.mjs +644 -0
- package/src/entry/kernel-terminal.mjs +324 -0
- package/src/entry/refusal.mjs +161 -0
- package/src/entry/state.mjs +602 -0
package/README.md
CHANGED
|
@@ -185,9 +185,9 @@ THE CHECKOUT-ONLY RUNG**: it is the in-place developer loop and every battery th
|
|
|
185
185
|
building it is a step of a checkout rather than of an install:
|
|
186
186
|
|
|
187
187
|
```sh
|
|
188
|
-
cargo build --release --manifest-path bindings/js/Cargo.toml
|
|
188
|
+
cargo build --release --manifest-path bindings/js/Cargo.toml
|
|
189
189
|
mkdir -p bindings/js/build/Release
|
|
190
|
-
cp
|
|
190
|
+
cp target/release/libstoreroom_js_binding.so bindings/js/build/Release/storeroom_js_binding.node
|
|
191
191
|
```
|
|
192
192
|
|
|
193
193
|
**No binary is ever committed** (`package.md §3.2`): `build/` and `target/` are ignored, and the artefacts
|
|
@@ -218,8 +218,8 @@ distribution.md §2.2`; `PUB-DD-1`, `PUB-DD-2`):
|
|
|
218
218
|
## Tests
|
|
219
219
|
|
|
220
220
|
```sh
|
|
221
|
-
cargo test --manifest-path
|
|
222
|
-
|
|
221
|
+
cargo test --manifest-path tests/Cargo.toml -p storeroom-tests --no-fail-fast # THE BATTERY'S LEG — this crate's six Rust targets, 235 cells
|
|
222
|
+
npm test # THE REPOSITORY'S JS BATTERY — a REPOSITORY instruction, NOT a consumer one; see the note below
|
|
223
223
|
```
|
|
224
224
|
|
|
225
225
|
**AND THE ORDER IS A DECLARED STEP, NOT A CONVENIENCE: THE JS LEG RUNS ONLY AFTER THE ADDON IS BUILT**
|
|
@@ -231,13 +231,50 @@ route — `JS -> facade -> core -> store` — is what they exercise, and that ro
|
|
|
231
231
|
|
|
232
232
|
```sh
|
|
233
233
|
# 1. THE BUILD STEP, AT THE REPOSITORY ROOT, BEFORE ANY JS CELL RUNS:
|
|
234
|
-
cargo build --release --manifest-path bindings/js/Cargo.toml
|
|
234
|
+
cargo build --release --manifest-path bindings/js/Cargo.toml
|
|
235
235
|
mkdir -p bindings/js/build/Release
|
|
236
|
-
cp
|
|
237
|
-
# 2. THE JS LEG, AFTER IT:
|
|
238
|
-
|
|
236
|
+
cp target/release/libstoreroom_js_binding.so bindings/js/build/Release/storeroom_js_binding.node
|
|
237
|
+
# 2. THE JS LEG, AFTER IT — the repository's own battery, from the REPOSITORY ROOT:
|
|
238
|
+
npm test
|
|
239
239
|
```
|
|
240
240
|
|
|
241
|
+
**AND THE THREE RUST LEGS, EACH WITH THE COUNT IT CARRIES** (`D-34`: one workspace at the repository root,
|
|
242
|
+
`members = [".", "bindings/js", "tests"]`, `default-members = [".", "tests"]`; and the architect's `★ A`:
|
|
243
|
+
**THE LEGS ARE PACKAGE-SCOPED**). **THE THREE, AT THE REPOSITORY ROOT:**
|
|
244
|
+
|
|
245
|
+
```sh
|
|
246
|
+
cargo test --offline -p storeroom-native # THE STORE'S LEG — 415 cells, 0 fail
|
|
247
|
+
cargo test -p storeroom-tests # THE BATTERY'S LEG — 235 cells, 0 fail
|
|
248
|
+
cargo test # BOTH OF THEM — 650 cells, 0 fail
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**AND THE THIRD COMMAND IS NOT A FOURTH LEG: a bare `cargo test` runs `default-members = [".", "tests"]`, so
|
|
252
|
+
it is EXACTLY the store's `415` plus the battery's `235` — `415 + 235 = 650` ✓ — in one run.** The two `-p`
|
|
253
|
+
forms are what measures one crate's own red/green; the bare form is what a release runbook reaches for.
|
|
254
|
+
**`-p` IS NOT DECORATION ON THE BUILD SIDE EITHER:** the store's leg keeps `--offline`, and a workspace-root
|
|
255
|
+
`cargo build --offline` would pull this crate's `napi` crates and `--offline` would refuse them — which is
|
|
256
|
+
why the root manifest's `build` script names the store by package as well.
|
|
257
|
+
|
|
258
|
+
**AND WHAT NO LONGER RUNS ANYTHING IS NAMED HERE RATHER THAN LEFT TO BE DISCOVERED: `cargo test
|
|
259
|
+
--manifest-path bindings/js/Cargo.toml` USED to be this crate's Rust leg and NOW EXITS `0` HAVING RUN
|
|
260
|
+
NOTHING** (`tests 0 · pass 0 · fail 0`), because this crate's six test targets LEAVE `bindings/js/tests/` with
|
|
261
|
+
the stratification's move and a member carries no test targets of its own. **The leg is the battery's
|
|
262
|
+
command above, which reaches the same six targets through the package that hosts them.**
|
|
263
|
+
|
|
264
|
+
**AND THE JS COMMAND ABOVE IS A *REPOSITORY* INSTRUCTION, NOT A CONSUMER ONE — SAID PLAINLY BECAUSE THIS
|
|
265
|
+
FILE SHIPS INSIDE THE PACKAGE** (it is in the allowlist, `docs/specs/storeroom-publish/contract.md §2.1`
|
|
266
|
+
item 1). **`npm test` is the repository root manifest's own `test` script — `node --test
|
|
267
|
+
"tests/**/*.test.mjs"`, taken at the repository root — and THE ROOT MANIFEST IS NOT SHIPPED**: a consumer's
|
|
268
|
+
install carries `package.json` · `index.mjs` · `index.d.ts` · `README.md`, the entry's own modules and the
|
|
269
|
+
licence copy the release's assembly step lands, and **carries NO `tests/` directory at all**, so a consumer
|
|
270
|
+
cannot run this command and is promised nothing by it. **A consumer's own tests are the consumer's**; the
|
|
271
|
+
commands in this section are for a CHECKOUT of this repository. **AND THE COMMAND THAT STOOD HERE IS NAMED SO
|
|
272
|
+
ITS ABSENCE IS LEGIBLE RATHER THAN DISCOVERED: `node --test bindings/js/test/*.test.mjs` was this package's
|
|
273
|
+
own JS leg until the batteries were stratified into `tests/e2e/`, `tests/integration/` and `tests/unit/`, and
|
|
274
|
+
`bindings/js/test/` NO LONGER EXISTS — measured on this tree, the dead command exits `0` having run NOTHING
|
|
275
|
+
(`tests 0 · pass 0 · fail 0`), which is a VACUOUS GREEN rather than even a red, so a reader who kept it would
|
|
276
|
+
believe this package had been tested.**
|
|
277
|
+
|
|
241
278
|
**THERE IS NO FALLBACK AND NO JS-SIDE STORE** (`A75`): an addon that is ABSENT or FAILS TO LOAD is a
|
|
242
279
|
**DECLARED FAILURE** — `storeCreate` answers the single failure form
|
|
243
280
|
`{status: 'FilePathUnreachable', message: <the store's own generated string at the addon's path>}` and NO
|
|
@@ -248,6 +285,29 @@ through the addon's `errorMessage` where the artefact loaded far enough to carry
|
|
|
248
285
|
reproduced BYTE-FOR-BYTE from the generator's own clause (`src/error.rs`'s `FilePathUnreachable` arm) where
|
|
249
286
|
the generator is the thing that failed to load. **A consumer that runs the JS cells without step 1 sees that
|
|
250
287
|
failure and not a silently degraded run.** **The Rust leg needs no addon at all**: the conversion core is the
|
|
251
|
-
crate's `rlib` half, so `cargo test --manifest-path
|
|
252
|
-
present (`package.md §4.1` item 3, `§4.5` item 7).
|
|
288
|
+
crate's `rlib` half, so `cargo test --manifest-path tests/Cargo.toml -p storeroom-tests` is drivable with no
|
|
289
|
+
Node runtime present (`package.md §4.1` item 3, `§4.5` item 7).
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
**⟶ CORRECTED 2026-10-25 (`D-34`, `strata/decisions.md`; `RCA-8(d)` ANNOTATE-BESIDE: the superseded figure is
|
|
294
|
+
named once, here, and the clause stands at the file's end so that no line of the shipped text above it moves).**
|
|
295
|
+
|
|
296
|
+
**1. THE `cp` SOURCE IN THE `Building the addon` BLOCK, ABOVE, WAS `bindings/js/target/release/libstoreroom_js_binding.so`
|
|
297
|
+
AND IS `target/release/libstoreroom_js_binding.so`.** `D-34` made this crate a **member of the one workspace at the
|
|
298
|
+
repository root** (`members = [".", "bindings/js", "tests"]`), and **a member's target directory IS the workspace
|
|
299
|
+
root's**, so `bindings/js/target/` is no longer produced by any command this repository runs. **Nothing else in
|
|
300
|
+
that block moved**: the `cargo build` above it, the `mkdir -p` between them and the destination are the same
|
|
301
|
+
bytes. **The `Tests` section's step 1 already read `cp target/release/…` and did not need the correction** — the
|
|
302
|
+
two homes of the build form disagreed until this clause; they agree now.
|
|
303
|
+
|
|
304
|
+
**2. ONE SENTENCE ABOVE IS STALE AND IS LEFT AS TEXT BECAUSE ITS CORRECTION IS `delivery`'s, NOT THIS PASS's.**
|
|
305
|
+
The uncovered-target bullet reads *"this package's allowlist, whose whole content is `index.mjs` · `README.md` ·
|
|
306
|
+
`index.d.ts`"*. **The allowlist carries FIVE rows today** — those three plus **`src/entry/`** (the entry's
|
|
307
|
+
thirteen parts) and **`src/constraint-kernel.mjs`** (the barrel), measured at `bindings/js/package.json` — because
|
|
308
|
+
the entry now imports its parts by path and a tarball carrying the hub alone cannot load (`D-13`, `D-14`). **The
|
|
309
|
+
sentence's SUBJECT survives**: the Rust store crate's own `src/**` is still outside the allowlist and an
|
|
310
|
+
uncovered consumer still needs a Rust toolchain. **Its parenthetical figure does not**, and it is named here
|
|
311
|
+
rather than edited, because the shipped manifest's own description is `delivery`'s declaration and a documentation
|
|
312
|
+
pass does not amend a manifest's prose in the manifest's own voice.
|
|
253
313
|
|