@wavehouse/chtypes 1.0.2 → 1.0.3
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/CHANGELOG.md +6 -0
- package/dist/abi1/index.d.ts +1 -1
- package/dist/abi1/index.d.ts.map +1 -1
- package/dist/abi1/index.js +1 -1
- package/dist/abi1/index.js.map +1 -1
- package/dist/abi1/loader.d.ts +2 -2
- package/dist/abi1/loader.d.ts.map +1 -1
- package/dist/abi1/loader.js +8 -14
- package/dist/abi1/loader.js.map +1 -1
- package/dist/library.d.ts.map +1 -1
- package/dist/library.js +16 -4
- package/dist/library.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +6 -3
- package/dist/registry.js.map +1 -1
- package/dist/setup.d.ts +17 -10
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +36 -19
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,12 @@ The four bindings in this repository are released together and give one answer,
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.0.3] — 2026-10-06
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- An open that attempted a load and failed now unlocks the setup, whatever failed, while no library has completed load step 7 (#468). After `setup({ timezone: 'Asia/Tokyo' })`, an open could fail before step 7: at the fetch, the signature check, an incompatible artifact (`CHTYPES_ARTIFACT_INCOMPATIBLE`) or a missing symbol. That left the setup locked, and a different `setup` was a `UsageError` until the process restarted. 1.0.2 handled only a failure in step 7 itself (#458). Now any failed attempt keeps the recorded setup but makes it replaceable. A plain retry with no new `setup` runs under the recorded zone and defaults, never the empty setup. A different `setup` is accepted and replaces the record, which is then locked again. This holds for `registry.for`, `Registry.open({ preload })` and `openUnverified`. The caller's own misuse fails before any load is attempted and unlocks nothing: a refused version spelling, or `openUnverified(path, { allow: false })`. Two different `setup` calls before any open is attempted are still a `UsageError`, never a silent last-wins. Once a library has completed step 7, a different setup is still a `UsageError`. No name or signature changes. All four bindings run the same cases, `tests/fixtures/abi-v1/setup-cases.json`, and the rule is `docs/reference/bindings-v1.md` section 6.
|
|
14
|
+
|
|
9
15
|
## [1.0.2] — 2026-10-06
|
|
10
16
|
|
|
11
17
|
There is no 1.0.1 of this binding: 1.0.1 was a Go-only fix to that module's metadata. From 1.0.2 the four bindings release together again.
|
package/dist/abi1/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { ABI_FINGERPRINT, ABI_VERSION, BUF_HANDLE, type FunctionSpec, type Param
|
|
|
10
10
|
export { errorForStatus, type LoaderErrorClass, loaderErrorClassFor } from './errmap.gen.js';
|
|
11
11
|
export { ArtifactCorruptError, ArtifactError, ArtifactIncompatibleError, CallError, type CallErrorFields, ChtypesError, InternalError, internalError, isChtypesError, LoaderCorruptError, type LoaderErrorFields, SchemaError, UnsupportedError, UsageError, usageError, } from './errors.js';
|
|
12
12
|
export { Abi1Handle, HANDLE_CLASSES, wrapHandle } from './handles.js';
|
|
13
|
-
export { type ImageSetup, LoadedImage, type LoadInput, openAbi1, openUnverified, type Predicate } from './loader.js';
|
|
13
|
+
export { checkUnverifiedAllowed, type ImageSetup, LoadedImage, type LoadInput, openAbi1, openUnverified, type Predicate } from './loader.js';
|
|
14
14
|
export { asBuffer, checkStatus, defineRawFunctions, type HandleRef, NULL_EXTERNAL, type RawApi, type RawCallResult, rawCall, readOwnedBuf, } from './raw.js';
|
|
15
15
|
export { DuplicateKeyError, firstDuplicateKey, isAsciiOnly, parseStrictJson } from './strictjson.js';
|
|
16
16
|
export * from './vocab.gen.js';
|
package/dist/abi1/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi1/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9H,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,SAAS,EACT,KAAK,eAAe,EACpB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi1/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9H,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,SAAS,EACT,KAAK,eAAe,EACpB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7I,OAAO,EACL,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,KAAK,SAAS,EACd,aAAa,EACb,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,OAAO,EACP,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrG,cAAc,gBAAgB,CAAC"}
|
package/dist/abi1/index.js
CHANGED
|
@@ -10,7 +10,7 @@ export { ABI_FINGERPRINT, ABI_VERSION, BUF_HANDLE } from './decls.gen.js';
|
|
|
10
10
|
export { errorForStatus, loaderErrorClassFor } from './errmap.gen.js';
|
|
11
11
|
export { ArtifactCorruptError, ArtifactError, ArtifactIncompatibleError, CallError, ChtypesError, InternalError, internalError, isChtypesError, LoaderCorruptError, SchemaError, UnsupportedError, UsageError, usageError, } from './errors.js';
|
|
12
12
|
export { Abi1Handle, HANDLE_CLASSES, wrapHandle } from './handles.js';
|
|
13
|
-
export { LoadedImage, openAbi1, openUnverified } from './loader.js';
|
|
13
|
+
export { checkUnverifiedAllowed, LoadedImage, openAbi1, openUnverified } from './loader.js';
|
|
14
14
|
export { asBuffer, checkStatus, defineRawFunctions, NULL_EXTERNAL, rawCall, readOwnedBuf, } from './raw.js';
|
|
15
15
|
export { DuplicateKeyError, firstDuplicateKey, isAsciiOnly, parseStrictJson } from './strictjson.js';
|
|
16
16
|
export * from './vocab.gen.js';
|
package/dist/abi1/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abi1/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAqC,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAoB,KAAK,EAAwC,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAsD,MAAM,gBAAgB,CAAC;AAC9H,OAAO,EAAE,cAAc,EAAyB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,SAAS,EAET,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAmB,WAAW,EAAkB,QAAQ,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abi1/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAqC,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAoB,KAAK,EAAwC,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAsD,MAAM,gBAAgB,CAAC;AAC9H,OAAO,EAAE,cAAc,EAAyB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,SAAS,EAET,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAmB,WAAW,EAAkB,QAAQ,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAC7I,OAAO,EACL,QAAQ,EACR,WAAW,EACX,kBAAkB,EAElB,aAAa,EAGb,OAAO,EACP,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrG,cAAc,gBAAgB,CAAC"}
|
package/dist/abi1/loader.d.ts
CHANGED
|
@@ -59,8 +59,6 @@ export interface ImageSetup {
|
|
|
59
59
|
readonly timezone?: string;
|
|
60
60
|
/** Seeded once with `chs_set_defaults` when there are any. */
|
|
61
61
|
readonly defaults?: Readonly<Record<string, string>>;
|
|
62
|
-
/** Told how step 7 ended, when given: the public layer's setup guard latches on success and clears its record on a failure before any image has completed step 7 (`../setup.ts`). */
|
|
63
|
-
readonly settle?: (completed: boolean) => void;
|
|
64
62
|
}
|
|
65
63
|
/** The loader's own input, decoupled from the fetch layer's `Resolved` type: the adapter in `../registry.ts` joins them and passes the predicate verbatim. */
|
|
66
64
|
export interface LoadInput extends ImageSetup {
|
|
@@ -87,6 +85,8 @@ export declare class LoadedImage {
|
|
|
87
85
|
* request and leaves the image open for the requests it did match.
|
|
88
86
|
*/
|
|
89
87
|
export declare function openAbi1(input: LoadInput): LoadedImage;
|
|
88
|
+
/** `openUnverified`'s own gate, alone: a `UsageError` unless BOTH `allow` is true AND `CHTYPES_ALLOW_UNVERIFIED_LIBRARY=1` is set. The public layer asks it before an open is attempted, so the caller's misuse is told apart from a failed load. */
|
|
89
|
+
export declare function checkUnverifiedAllowed(path: string, allow: boolean): void;
|
|
90
90
|
/**
|
|
91
91
|
* Load `path` with NO predicate: skips step 1 (nothing to check a floor
|
|
92
92
|
* against) and step 5 (nothing to cross-check), still runs 2, 3, 4, 6 and 7.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/abi1/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,OAAO,EAAsB,KAAK,MAAM,EAAW,MAAM,UAAU,CAAC;AAEpE,2VAA2V;AAC3V,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,gGAAgG;AAChG,MAAM,WAAW,UAAU;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/abi1/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,OAAO,EAAsB,KAAK,MAAM,EAAW,MAAM,UAAU,CAAC;AAEpE,2VAA2V;AAC3V,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,gGAAgG;AAChG,MAAM,WAAW,UAAU;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AAED,8JAA8J;AAC9J,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,sHAAsH;AACtH,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,YAAY,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAK1D;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAsID;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAkBtD;AA6BD,qPAAqP;AACrP,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAIzE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,GAAG,WAAW,CAa3G"}
|
package/dist/abi1/loader.js
CHANGED
|
@@ -209,19 +209,9 @@ export function openAbi1(input) {
|
|
|
209
209
|
}
|
|
210
210
|
/**
|
|
211
211
|
* Step 7: `chs_initialize(zone)`, then `chs_set_defaults` when there are defaults. A failure is the call's own error, mapped by the status table; the zone asked for is named in the message either way.
|
|
212
|
-
*
|
|
212
|
+
* The caller caches the image only after this returns, so a failure is never remembered and the next open runs every step again; the public layer settles the setup with the open's outcome (`../setup.ts`).
|
|
213
213
|
*/
|
|
214
214
|
function initializeImage(image, setup) {
|
|
215
|
-
try {
|
|
216
|
-
runStep7(image, setup);
|
|
217
|
-
}
|
|
218
|
-
catch (err) {
|
|
219
|
-
setup.settle?.(false);
|
|
220
|
-
throw err;
|
|
221
|
-
}
|
|
222
|
-
setup.settle?.(true);
|
|
223
|
-
}
|
|
224
|
-
function runStep7(image, setup) {
|
|
225
215
|
const timezone = setup.timezone ?? '';
|
|
226
216
|
try {
|
|
227
217
|
image.calls.initialize(Buffer.from(timezone, 'utf8'));
|
|
@@ -240,6 +230,12 @@ function runStep7(image, setup) {
|
|
|
240
230
|
}
|
|
241
231
|
// ----------------------------------------------------------------- unverified
|
|
242
232
|
const UNVERIFIED_ENV = 'CHTYPES_ALLOW_UNVERIFIED_LIBRARY';
|
|
233
|
+
/** `openUnverified`'s own gate, alone: a `UsageError` unless BOTH `allow` is true AND `CHTYPES_ALLOW_UNVERIFIED_LIBRARY=1` is set. The public layer asks it before an open is attempted, so the caller's misuse is told apart from a failed load. */
|
|
234
|
+
export function checkUnverifiedAllowed(path, allow) {
|
|
235
|
+
if (!allow || process.env[UNVERIFIED_ENV] !== '1') {
|
|
236
|
+
throw usageError(`opening ${path} unverified requires BOTH allow: true and ${UNVERIFIED_ENV}=1`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
243
239
|
/**
|
|
244
240
|
* Load `path` with NO predicate: skips step 1 (nothing to check a floor
|
|
245
241
|
* against) and step 5 (nothing to cross-check), still runs 2, 3, 4, 6 and 7.
|
|
@@ -249,9 +245,7 @@ const UNVERIFIED_ENV = 'CHTYPES_ALLOW_UNVERIFIED_LIBRARY';
|
|
|
249
245
|
* only caller.
|
|
250
246
|
*/
|
|
251
247
|
export function openUnverified(path, options) {
|
|
252
|
-
|
|
253
|
-
throw usageError(`opening ${path} unverified requires BOTH allow: true and ${UNVERIFIED_ENV}=1`);
|
|
254
|
-
}
|
|
248
|
+
checkUnverifiedAllowed(path, options.allow);
|
|
255
249
|
warnUnverifiedOnce(path);
|
|
256
250
|
const key = resolveImageKey(path);
|
|
257
251
|
const cached = loadedByKey.get(key);
|
package/dist/abi1/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/abi1/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAkB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAe,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/abi1/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/library.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../src/library.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../src/library.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAsC,KAAK,WAAW,EAAoC,MAAM,iBAAiB,CAAC;AACzI,OAAO,EACL,KAAK,SAAS,EAId,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,KAAK,OAAO,EAA2B,MAAM,eAAe,CAAC;AAEtE,qBAAa,OAAO;;IAKlB,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAExC,+DAA+D;IAC/D,YAAY,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAI7D;IAED,oDAAoD;IACpD,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,kGAAkG;IAClG,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,wEAAwE;IACxE,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,8BAA8B;IAC9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,oFAAoF;IACpF,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAEtC;IAED,mFAAmF;IACnF,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAErC;IAED,2DAA2D;IAC3D,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE7C;IAED,6DAA6D;IAC7D,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAElC;IAED,8GAA8G;IAC9G,UAAU,IAAI,cAAc,CAG3B;IAED,2IAA2I;IAC3I,aAAa,IAAI,MAAM,CAEtB;IAED,+FAA+F;IAC/F,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAE3C;IAED,+DAA+D;IAC/D,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE9C;IAED,oDAAoD;IACpD,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,CAKvE;CACF;AAID,iIAAiI;AACjI,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAOrF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAc1F"}
|
package/dist/library.js
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* unloaded, so nothing is owed. TypeScript runs one isolate, so every method
|
|
6
6
|
* is trivially safe to call in any order.
|
|
7
7
|
*/
|
|
8
|
-
import { openUnverified as loadUnverified } from './abi1/index.js';
|
|
8
|
+
import { checkUnverifiedAllowed, openUnverified as loadUnverified } from './abi1/index.js';
|
|
9
9
|
import { decodeDiscovery, decodeErrorCodes, decodeLiveHandles, } from './documents.js';
|
|
10
10
|
import { Schema } from './schema.js';
|
|
11
|
-
import { commitSetup,
|
|
11
|
+
import { commitSetup, latchSetup, settleFailedOpen, setupGeneration } from './setup.js';
|
|
12
12
|
import { bytesIn, encodeSettings } from './settings.js';
|
|
13
13
|
export class Library {
|
|
14
14
|
#image;
|
|
@@ -95,7 +95,19 @@ export function libraryOf(image, resolved) {
|
|
|
95
95
|
* no `resolved`, unless a registry had already opened the same image.
|
|
96
96
|
*/
|
|
97
97
|
export function openUnverified(path, options) {
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
// The caller's two opt-ins are checked before anything is attempted: misuse, which unlocks nothing.
|
|
99
|
+
checkUnverifiedAllowed(path, options.allow);
|
|
100
|
+
const began = setupGeneration();
|
|
101
|
+
try {
|
|
102
|
+
const setup = commitSetup();
|
|
103
|
+
const image = loadUnverified(path, { allow: options.allow, timezone: setup.timezone, defaults: setup.defaults });
|
|
104
|
+
latchSetup();
|
|
105
|
+
return libraryOf(image, undefined);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
// Like any open: a failed attempt unlocks the setup record while no image has completed step 7.
|
|
109
|
+
settleFailedOpen(began);
|
|
110
|
+
throw err;
|
|
111
|
+
}
|
|
100
112
|
}
|
|
101
113
|
//# sourceMappingURL=library.js.map
|
package/dist/library.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../src/library.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../src/library.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,cAAc,CAAC;AACvD,OAAO,EAGL,KAAK,cAAc,EAInB,KAAK,QAAQ,EAEd,MAAM,qBAAqB,CAAC;AAK7B,gLAAgL;AAChL,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C,gHAAgH;IAChH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,gGAAgG;IAChG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAClD;AAiBD,qBAAa,QAAQ;;IAMnB,OAAO,eAGN;IAED,4FAA4F;IAC5F,OAAa,IAAI,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOlE;IAED,uHAAuH;IACjH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3C;IAED,wDAAwD;IAClD,SAAS,IAAI,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAE9C;IAED,sEAAsE;IACtE,SAAS,IAAI,SAAS,OAAO,EAAE,CAE9B;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,cAAc,CAAC;AACvD,OAAO,EAGL,KAAK,cAAc,EAInB,KAAK,QAAQ,EAEd,MAAM,qBAAqB,CAAC;AAK7B,gLAAgL;AAChL,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C,gHAAgH;IAChH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,gGAAgG;IAChG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAClD;AAiBD,qBAAa,QAAQ;;IAMnB,OAAO,eAGN;IAED,4FAA4F;IAC5F,OAAa,IAAI,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOlE;IAED,uHAAuH;IACjH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3C;IAED,wDAAwD;IAClD,SAAS,IAAI,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAE9C;IAED,sEAAsE;IACtE,SAAS,IAAI,SAAS,OAAO,EAAE,CAE9B;CAgDF"}
|
package/dist/registry.js
CHANGED
|
@@ -27,7 +27,7 @@ import { libraryOf } from './library.js';
|
|
|
27
27
|
import { ArtifactMissingError, ensure, hostPlatformKey, listInstalled, resolveInstalled, } from './ocifetch/index.js';
|
|
28
28
|
import { ENV_AUTOFETCH_NAME, SPELLING_REGEX } from './ocifetch/constants.gen.js';
|
|
29
29
|
import { withEnvironment } from './env.js';
|
|
30
|
-
import { commitSetup,
|
|
30
|
+
import { commitSetup, latchSetup, settleFailedOpen, setupGeneration } from './setup.js';
|
|
31
31
|
function envFlag(name) {
|
|
32
32
|
const v = process.env[name];
|
|
33
33
|
return v !== undefined && ['1', 'true', 'yes', 'on'].includes(v.trim().toLowerCase());
|
|
@@ -58,7 +58,7 @@ export class Registry {
|
|
|
58
58
|
}
|
|
59
59
|
/** Open a version: the installed build the request names, fetched first when autofetch is on and none is installed. */
|
|
60
60
|
async for(request) {
|
|
61
|
-
checkSpelling(request);
|
|
61
|
+
checkSpelling(request); // misuse, refused before anything is attempted: it unlocks nothing
|
|
62
62
|
return this.#memoized(request, this.#autofetch);
|
|
63
63
|
}
|
|
64
64
|
/** What is installed: the fetch layer's own listing. */
|
|
@@ -73,12 +73,15 @@ export class Registry {
|
|
|
73
73
|
const memo = this.#memo.get(request);
|
|
74
74
|
if (memo !== undefined)
|
|
75
75
|
return memo;
|
|
76
|
+
// An open that attempted a load and failed unlocks the setup record while no image has completed load step 7, whatever failed: the resolve, the fetch, the signature or any load step (bindings-v1.md §6, rule 4). The spelling was checked before this, as misuse.
|
|
77
|
+
const began = setupGeneration();
|
|
76
78
|
const opening = this.#openRequest(request, mayFetch).then((library) => {
|
|
77
79
|
if (!this.#opened.includes(library))
|
|
78
80
|
this.#opened.push(library);
|
|
79
81
|
return library;
|
|
80
82
|
}, (err) => {
|
|
81
83
|
this.#memo.delete(request); // a failure is never remembered
|
|
84
|
+
settleFailedOpen(began);
|
|
82
85
|
throw err;
|
|
83
86
|
});
|
|
84
87
|
this.#memo.set(request, opening);
|
|
@@ -104,8 +107,8 @@ export class Registry {
|
|
|
104
107
|
platform: resolved.platform,
|
|
105
108
|
timezone: setup.timezone,
|
|
106
109
|
defaults: setup.defaults,
|
|
107
|
-
settle: settleSetup,
|
|
108
110
|
});
|
|
111
|
+
latchSetup();
|
|
109
112
|
return libraryOf(image, resolved);
|
|
110
113
|
}
|
|
111
114
|
}
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,MAAM,EAEN,eAAe,EACf,aAAa,EAGb,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
CHANGED
|
@@ -11,12 +11,16 @@
|
|
|
11
11
|
* the first open records the empty setup: the empty zone, which the
|
|
12
12
|
* library reads as UTC, and no defaults. Once an image completes loader
|
|
13
13
|
* step 7 (`chs_initialize`, then `chs_set_defaults` when there are
|
|
14
|
-
* defaults), `setup` succeeds only with exactly the setup in effect
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* defaults), `setup` succeeds only with exactly the setup in effect
|
|
15
|
+
* (`latchSetup`). Until then, an open that attempted a load and failed,
|
|
16
|
+
* whatever failed (the fetch, the signature, an incompatible artifact, a
|
|
17
|
+
* missing symbol or step 7), keeps the record but makes it replaceable
|
|
18
|
+
* (`settleFailedOpen`): a retry with no new `setup` runs under the
|
|
19
|
+
* recorded setup, and a different `setup` replaces it. A refused version
|
|
20
|
+
* spelling or an unverified open without the caller's opt-in fails before
|
|
21
|
+
* any load is attempted, and unlocks nothing.
|
|
17
22
|
* 3. Every image is set up at loader step 7, once, from this record
|
|
18
|
-
* (`./abi1/loader.ts`)
|
|
19
|
-
* nothing sets either again for that image.
|
|
23
|
+
* (`./abi1/loader.ts`); nothing sets either again for that image.
|
|
20
24
|
*
|
|
21
25
|
* This is state of the isolate: every worker thread calls it identically, and
|
|
22
26
|
* a worker whose zone differs is refused by the library at its first open.
|
|
@@ -34,13 +38,16 @@ export interface ProcessSetup {
|
|
|
34
38
|
}
|
|
35
39
|
/** Record the process setup, once. Call it before the first open; see this module's header for the rule. */
|
|
36
40
|
export declare function setup(options?: SetupOptions): void;
|
|
37
|
-
/** The setup in effect, recording the empty setup if none was recorded: what an open does before step 7. */
|
|
41
|
+
/** The setup in effect, recording the empty setup if none was recorded: what an open does before step 7. The load that follows claims the record, so it is locked again. */
|
|
38
42
|
export declare function commitSetup(): ProcessSetup;
|
|
43
|
+
/** Read when an open's attempt begins, for `settleFailedOpen`. */
|
|
44
|
+
export declare function setupGeneration(): number;
|
|
45
|
+
/** An image completed loader step 7: from then on the setup in effect stands. An open calls it synchronously after the load that committed the record, so it latches the record that load ran under. */
|
|
46
|
+
export declare function latchSetup(): void;
|
|
39
47
|
/**
|
|
40
|
-
*
|
|
41
|
-
* An isolate runs this synchronously with the commit and the load that preceded it, so the record it settles is the one that load ran under.
|
|
48
|
+
* Settle an open that attempted a load and failed, whatever failed. While no image has completed step 7 it unlocks the record: the record stays, so a retry runs under it, and a different `setup` may replace it. It leaves alone a setup recorded or replaced after the open began (`began` is `setupGeneration()` then), and once the setup has latched it changes nothing: the library's own process-once rule answers a different zone on an image that already has one.
|
|
42
49
|
*/
|
|
43
|
-
export declare function
|
|
44
|
-
/** Test only: forget the recorded setup and the
|
|
50
|
+
export declare function settleFailedOpen(began: number): void;
|
|
51
|
+
/** Test only: forget the recorded setup, the latch and the unlock. Not part of the public API. */
|
|
45
52
|
export declare function resetSetupForTests(): void;
|
|
46
53
|
//# sourceMappingURL=setup.d.ts.map
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,KAAK,QAAQ,EAAoB,MAAM,eAAe,CAAC;AAEhE,yGAAyG;AACzG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAED,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAuBD,4GAA4G;AAC5G,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,IAAI,CActD;AAED,4KAA4K;AAC5K,wBAAgB,WAAW,IAAI,YAAY,CAI1C;AAED,kEAAkE;AAClE,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wMAAwM;AACxM,wBAAgB,UAAU,IAAI,IAAI,CAGjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGpD;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
|
package/dist/setup.js
CHANGED
|
@@ -11,12 +11,16 @@
|
|
|
11
11
|
* the first open records the empty setup: the empty zone, which the
|
|
12
12
|
* library reads as UTC, and no defaults. Once an image completes loader
|
|
13
13
|
* step 7 (`chs_initialize`, then `chs_set_defaults` when there are
|
|
14
|
-
* defaults), `setup` succeeds only with exactly the setup in effect
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* defaults), `setup` succeeds only with exactly the setup in effect
|
|
15
|
+
* (`latchSetup`). Until then, an open that attempted a load and failed,
|
|
16
|
+
* whatever failed (the fetch, the signature, an incompatible artifact, a
|
|
17
|
+
* missing symbol or step 7), keeps the record but makes it replaceable
|
|
18
|
+
* (`settleFailedOpen`): a retry with no new `setup` runs under the
|
|
19
|
+
* recorded setup, and a different `setup` replaces it. A refused version
|
|
20
|
+
* spelling or an unverified open without the caller's opt-in fails before
|
|
21
|
+
* any load is attempted, and unlocks nothing.
|
|
17
22
|
* 3. Every image is set up at loader step 7, once, from this record
|
|
18
|
-
* (`./abi1/loader.ts`)
|
|
19
|
-
* nothing sets either again for that image.
|
|
23
|
+
* (`./abi1/loader.ts`); nothing sets either again for that image.
|
|
20
24
|
*
|
|
21
25
|
* This is state of the isolate: every worker thread calls it identically, and
|
|
22
26
|
* a worker whose zone differs is refused by the library at its first open.
|
|
@@ -26,6 +30,10 @@ import { validateDefaults } from './settings.js';
|
|
|
26
30
|
let recorded;
|
|
27
31
|
/** Whether any image has completed loader step 7 under the record. */
|
|
28
32
|
let latched = false;
|
|
33
|
+
/** Whether an open that attempted a load failed since the record was last set or committed, with nothing latched: a different `setup` then replaces the record instead of being refused. */
|
|
34
|
+
let replaceable = false;
|
|
35
|
+
/** Counts the records `setup` made or replaced. An open reads it when its attempt begins, and unlocks the record on failure only if it is unchanged: a failed open never unlocks a setup recorded after it began. */
|
|
36
|
+
let generation = 0;
|
|
29
37
|
function describe(s) {
|
|
30
38
|
const keys = Object.keys(s.defaults).sort();
|
|
31
39
|
const defaults = keys.length === 0 ? 'no defaults' : `defaults ${JSON.stringify(Object.fromEntries(keys.map((k) => [k, s.defaults[k]])))}`;
|
|
@@ -46,34 +54,43 @@ export function setup(options = {}) {
|
|
|
46
54
|
const defaults = options.defaults ?? {};
|
|
47
55
|
validateDefaults(defaults);
|
|
48
56
|
const next = { timezone, defaults: { ...defaults } };
|
|
49
|
-
if (recorded
|
|
50
|
-
recorded = next;
|
|
57
|
+
if (recorded !== undefined && same(recorded, next))
|
|
51
58
|
return;
|
|
52
|
-
|
|
53
|
-
if (!same(recorded, next)) {
|
|
59
|
+
if (recorded !== undefined && (latched || !replaceable)) {
|
|
54
60
|
throw usageError(`setup was already fixed at ${describe(recorded)}; it was asked for ${describe(next)}. The first setup stands: call setup before the first open, once.`);
|
|
55
61
|
}
|
|
62
|
+
// A first record, or a replacement after a failed open: either way the new record is locked until the next failed open.
|
|
63
|
+
recorded = next;
|
|
64
|
+
replaceable = false;
|
|
65
|
+
generation += 1;
|
|
56
66
|
}
|
|
57
|
-
/** The setup in effect, recording the empty setup if none was recorded: what an open does before step 7. */
|
|
67
|
+
/** The setup in effect, recording the empty setup if none was recorded: what an open does before step 7. The load that follows claims the record, so it is locked again. */
|
|
58
68
|
export function commitSetup() {
|
|
59
69
|
recorded ??= { timezone: '', defaults: {} };
|
|
70
|
+
replaceable = false;
|
|
60
71
|
return recorded;
|
|
61
72
|
}
|
|
73
|
+
/** Read when an open's attempt begins, for `settleFailedOpen`. */
|
|
74
|
+
export function setupGeneration() {
|
|
75
|
+
return generation;
|
|
76
|
+
}
|
|
77
|
+
/** An image completed loader step 7: from then on the setup in effect stands. An open calls it synchronously after the load that committed the record, so it latches the record that load ran under. */
|
|
78
|
+
export function latchSetup() {
|
|
79
|
+
latched = true;
|
|
80
|
+
replaceable = false;
|
|
81
|
+
}
|
|
62
82
|
/**
|
|
63
|
-
*
|
|
64
|
-
* An isolate runs this synchronously with the commit and the load that preceded it, so the record it settles is the one that load ran under.
|
|
83
|
+
* Settle an open that attempted a load and failed, whatever failed. While no image has completed step 7 it unlocks the record: the record stays, so a retry runs under it, and a different `setup` may replace it. It leaves alone a setup recorded or replaced after the open began (`began` is `setupGeneration()` then), and once the setup has latched it changes nothing: the library's own process-once rule answers a different zone on an image that already has one.
|
|
65
84
|
*/
|
|
66
|
-
export function
|
|
67
|
-
if (
|
|
68
|
-
latched = true;
|
|
85
|
+
export function settleFailedOpen(began) {
|
|
86
|
+
if (latched || recorded === undefined || generation !== began)
|
|
69
87
|
return;
|
|
70
|
-
|
|
71
|
-
if (!latched)
|
|
72
|
-
recorded = undefined;
|
|
88
|
+
replaceable = true;
|
|
73
89
|
}
|
|
74
|
-
/** Test only: forget the recorded setup and the
|
|
90
|
+
/** Test only: forget the recorded setup, the latch and the unlock. Not part of the public API. */
|
|
75
91
|
export function resetSetupForTests() {
|
|
76
92
|
recorded = undefined;
|
|
77
93
|
latched = false;
|
|
94
|
+
replaceable = false;
|
|
78
95
|
}
|
|
79
96
|
//# sourceMappingURL=setup.js.map
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAiB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAchE,IAAI,QAAkC,CAAC;AACvC,sEAAsE;AACtE,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,4LAA4L;AAC5L,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,qNAAqN;AACrN,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,SAAS,QAAQ,CAAC,CAAe;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3I,OAAO,QAAQ,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,QAAQ,EAAE,CAAC;AACnG,CAAC;AAED,SAAS,IAAI,CAAC,CAAe,EAAE,CAAe;IAC5C,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrH,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,KAAK,CAAC,OAAO,GAAiB,EAAE;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,iDAAiD,OAAO,QAAQ,EAAE,CAAC,CAAC;IAC1H,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC;IACnE,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO;IAC3D,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,MAAM,UAAU,CAAC,8BAA8B,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,QAAQ,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAC5K,CAAC;IACD,wHAAwH;IACxH,QAAQ,GAAG,IAAI,CAAC;IAChB,WAAW,GAAG,KAAK,CAAC;IACpB,UAAU,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,4KAA4K;AAC5K,MAAM,UAAU,WAAW;IACzB,QAAQ,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5C,WAAW,GAAG,KAAK,CAAC;IACpB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,wMAAwM;AACxM,MAAM,UAAU,UAAU;IACxB,OAAO,GAAG,IAAI,CAAC;IACf,WAAW,GAAG,KAAK,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,OAAO,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO;IACtE,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,kBAAkB;IAChC,QAAQ,GAAG,SAAS,CAAC;IACrB,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAG,KAAK,CAAC;AACtB,CAAC"}
|