@agoric/internal 0.3.3-dev-17b5fb3.0.17b5fb3 → 0.3.3-dev-999dc44.0.999dc44
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/package.json +5 -5
- package/src/build-cache.d.ts.map +1 -1
- package/src/build-cache.js +1 -0
- package/src/debug.d.ts +2 -2
- package/src/debug.d.ts.map +1 -1
- package/src/debug.js +19 -3
- package/src/keyMirror.d.ts.map +1 -1
- package/src/keyMirror.js +1 -4
- package/src/kv-store.d.ts +1 -1
- package/src/kv-store.d.ts.map +1 -1
- package/src/kv-store.js +8 -0
- package/src/lib-nodejs/ava-unhandled-rejection.d.ts.map +1 -1
- package/src/lib-nodejs/ava-unhandled-rejection.js +7 -0
- package/src/lib-nodejs/gc-and-finalize.d.ts +2 -1
- package/src/lib-nodejs/gc-and-finalize.d.ts.map +1 -1
- package/src/lib-nodejs/gc-and-finalize.js +1 -0
- package/src/lib-nodejs/spawnSubprocessWorker.d.ts +11 -4
- package/src/lib-nodejs/spawnSubprocessWorker.d.ts.map +1 -1
- package/src/lib-nodejs/spawnSubprocessWorker.js +11 -0
- package/src/metrics.d.ts.map +1 -1
- package/src/metrics.js +5 -0
- package/src/module-utils.d.ts.map +1 -1
- package/src/module-utils.js +1 -0
- package/src/natural-sort.d.ts.map +1 -1
- package/src/natural-sort.js +6 -2
- package/src/node/createBundles.d.ts +7 -3
- package/src/node/createBundles.d.ts.map +1 -1
- package/src/node/createBundles.js +28 -4
- package/src/node/fs-stream.d.ts +2 -1
- package/src/node/fs-stream.d.ts.map +1 -1
- package/src/node/fs-stream.js +8 -4
- package/src/node/shutdown.d.ts +5 -3
- package/src/node/shutdown.d.ts.map +1 -1
- package/src/node/shutdown.js +7 -0
- package/src/priority-senders.d.ts.map +1 -1
- package/src/priority-senders.js +1 -0
- package/src/queue.d.ts.map +1 -1
- package/src/queue.js +10 -0
- package/src/scratch.d.ts +32 -10
- package/src/scratch.d.ts.map +1 -1
- package/src/scratch.js +11 -0
- package/src/ses-utils.d.ts.map +1 -1
- package/src/ses-utils.js +2 -1
- package/src/work-pool.d.ts.map +1 -1
- package/src/work-pool.js +9 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/internal",
|
|
3
|
-
"version": "0.3.3-dev-
|
|
3
|
+
"version": "0.3.3-dev-999dc44.0.999dc44",
|
|
4
4
|
"description": "Externally unsupported utilities internal to agoric-sdk",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"lint:types": "yarn run -T tsgo --tsBuildInfoFile tsconfig.tsgo.tsbuildinfo"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@agoric/base-zone": "0.1.1-dev-
|
|
27
|
+
"@agoric/base-zone": "0.1.1-dev-999dc44.0.999dc44",
|
|
28
28
|
"@endo/cache-map": "^1.1.0",
|
|
29
29
|
"@endo/common": "^1.4.0",
|
|
30
30
|
"@endo/compartment-mapper": "^2.3.0",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"jessie.js": "^0.3.4"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@agoric/cosmic-proto": "0.4.1-dev-
|
|
45
|
+
"@agoric/cosmic-proto": "0.4.1-dev-999dc44.0.999dc44",
|
|
46
46
|
"@endo/exo": "^1.7.0",
|
|
47
47
|
"@endo/init": "^1.1.13",
|
|
48
48
|
"@endo/ses-ava": "^1.4.2",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"access": "public"
|
|
69
69
|
},
|
|
70
70
|
"typeCoverage": {
|
|
71
|
-
"atLeast":
|
|
71
|
+
"atLeast": 95.63
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "999dc4420f28ba9d27ba2f0dce7d12e3ff78ccbe"
|
|
74
74
|
}
|
package/src/build-cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-cache.d.ts","sourceRoot":"","sources":["build-cache.js"],"names":[],"mappings":"AAUO,0CAFI,mBAAmB;
|
|
1
|
+
{"version":3,"file":"build-cache.d.ts","sourceRoot":"","sources":["build-cache.js"],"names":[],"mappings":"AAUO,0CAFI,mBAAmB;oBAmEjB,MAAM,QACN,MAAM,OAAO,CAAC,GAAG,CAAC;EAsF9B;AAgBM,kEAVI;IACN,EAAE,EAAE,IAAI,CAAC,cAAc,kBAAkB,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,iBASH;yCAnLsD,wBAAwB"}
|
package/src/build-cache.js
CHANGED
package/src/debug.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export function makeTracer(label: string, enable?: boolean | "verbose"): ((..._args:
|
|
2
|
-
sub: (subLabel:
|
|
1
|
+
export function makeTracer(label: string, enable?: boolean | "verbose"): ((..._args: unknown[]) => void) & {
|
|
2
|
+
sub: (subLabel: string, subEnable?: boolean | "verbose") => ((..._args: unknown[]) => void) & /*elided*/ any;
|
|
3
3
|
};
|
|
4
4
|
export type TraceLogger = ReturnType<typeof makeTracer>;
|
|
5
5
|
//# sourceMappingURL=debug.d.ts.map
|
package/src/debug.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["debug.js"],"names":[],"mappings":"AAQO,kCAHI,MAAM,WACN,OAAO,GAAG,SAAS
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["debug.js"],"names":[],"mappings":"AAQO,kCAHI,MAAM,WACN,OAAO,GAAG,SAAS,eAcT,OAAO,EAAA;oBAVf,MAAM,cACN,OAAO,GAAG,SAAS,iBASX,OAAO,EAAA;EA0C3B;0BAIY,UAAU,CAAC,OAAO,UAAU,CAAC"}
|
package/src/debug.js
CHANGED
|
@@ -7,6 +7,10 @@ let debugInstance = 1;
|
|
|
7
7
|
* @param {boolean | 'verbose'} enable
|
|
8
8
|
*/
|
|
9
9
|
export const makeTracer = (label, enable = true) => {
|
|
10
|
+
/**
|
|
11
|
+
* @param {string} subLabel
|
|
12
|
+
* @param {boolean | 'verbose'} [subEnable]
|
|
13
|
+
*/
|
|
10
14
|
const sub = (subLabel, subEnable = enable) =>
|
|
11
15
|
makeTracer(`${label}.${subLabel}`, subEnable);
|
|
12
16
|
const key = `----- ${label},${debugInstance} `;
|
|
@@ -14,17 +18,23 @@ export const makeTracer = (label, enable = true) => {
|
|
|
14
18
|
// the cases below define a named variable to provide better debug info
|
|
15
19
|
switch (enable) {
|
|
16
20
|
case false: {
|
|
21
|
+
/** @param {...unknown} _args */
|
|
17
22
|
const logDisabled = (..._args) => {};
|
|
18
23
|
return harden(Object.assign(logDisabled, { sub }));
|
|
19
24
|
}
|
|
20
25
|
case 'verbose': {
|
|
26
|
+
/**
|
|
27
|
+
* @param {unknown} optLog
|
|
28
|
+
* @param {...unknown} args
|
|
29
|
+
*/
|
|
21
30
|
const infoTick = (optLog, ...args) => {
|
|
22
31
|
// XXX Sniff tests such as this are inherently unreliable and smell bad.
|
|
23
32
|
// Even aside from the security hazard of
|
|
24
33
|
// https://github.com/Agoric/agoric-sdk/issues/11845
|
|
25
34
|
// an object intended as a normal logging argument may accidentally
|
|
26
35
|
// pass this sniff test, causing confusion.
|
|
27
|
-
|
|
36
|
+
const maybeLogger = /** @type {{ log?: unknown }} */ (optLog);
|
|
37
|
+
if (typeof maybeLogger?.log === 'function') {
|
|
28
38
|
console.info(key, ...args);
|
|
29
39
|
} else {
|
|
30
40
|
console.info(key, optLog, ...args);
|
|
@@ -33,10 +43,16 @@ export const makeTracer = (label, enable = true) => {
|
|
|
33
43
|
return harden(Object.assign(infoTick, { sub }));
|
|
34
44
|
}
|
|
35
45
|
default: {
|
|
46
|
+
/**
|
|
47
|
+
* @param {unknown} optLog
|
|
48
|
+
* @param {...unknown} args
|
|
49
|
+
*/
|
|
36
50
|
const debugTick = (optLog, ...args) => {
|
|
37
51
|
// Another unreliable sniff test like the one above
|
|
38
|
-
|
|
39
|
-
|
|
52
|
+
const maybeLogger =
|
|
53
|
+
/** @type {{ log?: (...args: unknown[]) => void }} */ (optLog);
|
|
54
|
+
if (typeof maybeLogger?.log === 'function') {
|
|
55
|
+
maybeLogger.log(key, ...args);
|
|
40
56
|
} else {
|
|
41
57
|
console.info(key, optLog, ...args);
|
|
42
58
|
}
|
package/src/keyMirror.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyMirror.d.ts","sourceRoot":"","sources":["keyMirror.js"],"names":[],"mappings":"AA0BO,0BAJoF,IAAI,SAAjF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAE,UAC/E,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,CAAC,GAAE,GACpE,eAAe,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"keyMirror.d.ts","sourceRoot":"","sources":["keyMirror.js"],"names":[],"mappings":"AA0BO,0BAJoF,IAAI,SAAjF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAE,UAC/E,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,CAAC,GAAE,GACpE,eAAe,CAAC,IAAI,CAAC,CAkBjC;4BArC0F,IAAI,SAAjF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAE,IAC7E,EAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC,GAAE"}
|
package/src/keyMirror.js
CHANGED
|
@@ -30,10 +30,7 @@ export const keyMirror = record => {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
/** @type {Record<string, string>} */
|
|
33
|
-
const mirrored =
|
|
34
|
-
// @ts-expect-error Record confused by null prototype
|
|
35
|
-
__proto__: null,
|
|
36
|
-
};
|
|
33
|
+
const mirrored = Object.create(null);
|
|
37
34
|
for (const [key, value] of entries(record)) {
|
|
38
35
|
if (value !== null && value !== key) {
|
|
39
36
|
throw TypeError(
|
package/src/kv-store.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* @returns {KVStore}
|
|
21
21
|
*/
|
|
22
22
|
export function makeKVStore(db: Database, beforeMutation: () => void, trace: (...args: string[]) => void): KVStore;
|
|
23
|
-
export function compareByCodePoints(left:
|
|
23
|
+
export function compareByCodePoints(left: string, right: string): 0 | 1 | -1;
|
|
24
24
|
export function makeKVStoreFromMap<T = unknown>(map: Map<string, T>): KVStore<T>;
|
|
25
25
|
export type KVStore<T = string> = {
|
|
26
26
|
has: (key: string) => boolean;
|
package/src/kv-store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv-store.d.ts","sourceRoot":"","sources":["kv-store.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AAEH,gCARW,QAAQ,kBACR,MAAM,IAAI,SAEV,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,GAEzB,OAAO,CA0InB;
|
|
1
|
+
{"version":3,"file":"kv-store.d.ts","sourceRoot":"","sources":["kv-store.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AAEH,gCARW,QAAQ,kBACR,MAAM,IAAI,SAEV,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,GAEzB,OAAO,CA0InB;AAWM,0CAHI,MAAM,SACN,MAAM,cAsBhB;AAOM,mCAJO,CAAC,iBACJ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GACZ,OAAO,CAAC,CAAC,CAAC,CAkEtB;oBAhQa,CAAC,aACF;IACR,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;8BAXuB,gBAAgB"}
|
package/src/kv-store.js
CHANGED
|
@@ -167,6 +167,10 @@ export function makeKVStore(db, beforeMutation, trace) {
|
|
|
167
167
|
// available.
|
|
168
168
|
// https://github.com/Agoric/agoric-sdk/pull/10299
|
|
169
169
|
|
|
170
|
+
/**
|
|
171
|
+
* @param {string} left
|
|
172
|
+
* @param {string} right
|
|
173
|
+
*/
|
|
170
174
|
export const compareByCodePoints = (left, right) => {
|
|
171
175
|
const leftIter = left[Symbol.iterator]();
|
|
172
176
|
const rightIter = right[Symbol.iterator]();
|
|
@@ -195,8 +199,11 @@ export const compareByCodePoints = (left, right) => {
|
|
|
195
199
|
* @returns {KVStore<T>}
|
|
196
200
|
*/
|
|
197
201
|
export const makeKVStoreFromMap = map => {
|
|
202
|
+
/** @type {string[] | undefined} */
|
|
198
203
|
let sortedKeys;
|
|
204
|
+
/** @type {string | undefined} */
|
|
199
205
|
let priorKeyReturned;
|
|
206
|
+
/** @type {number} */
|
|
200
207
|
let priorKeyIndex;
|
|
201
208
|
|
|
202
209
|
const ensureSorted = () => {
|
|
@@ -222,6 +229,7 @@ export const makeKVStoreFromMap = map => {
|
|
|
222
229
|
getNextKey: priorKey => {
|
|
223
230
|
assert.typeof(priorKey, 'string');
|
|
224
231
|
ensureSorted();
|
|
232
|
+
assert(sortedKeys, 'sortedKeys should be defined after ensureSorted');
|
|
225
233
|
const start =
|
|
226
234
|
priorKeyReturned === undefined
|
|
227
235
|
? 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ava-unhandled-rejection.d.ts","sourceRoot":"","sources":["ava-unhandled-rejection.js"],"names":[],"mappings":"AAOA;;GAEG;AAEH,4DAA4D;AAC5D,qDACE,wCAAwC,CAAC;AAC3C,iCAAiC;AACjC,uFACyC;
|
|
1
|
+
{"version":3,"file":"ava-unhandled-rejection.d.ts","sourceRoot":"","sources":["ava-unhandled-rejection.js"],"names":[],"mappings":"AAOA;;GAEG;AAEH,4DAA4D;AAC5D,qDACE,wCAAwC,CAAC;AAC3C,iCAAiC;AACjC,uFACyC;AAkFlC,qCAJI,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,qBAEhC;IAAoC,aAAa,EAAzC,MAAM,OAAO,CAAC,IAAI,CAAC;CAC7B;;;;GA4BA;AAeM,6CARM,CAAC,wCAEX;IAA0B,IAAI,EAAtB,OAAO,CAAC,CAAC;IACQ,UAAU;IACZ,aAAa,EAA5B,MAAM;CACd,GAAU,CAAE,iBAAiB,EAAE,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EACzE,iBAAqB,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAkEpC;AASM,kDANO,CAAC,kDAEZ;IAA0B,IAAI,EAAtB,OAAO,CAAC,CAAC;IACQ,UAAU;IACZ,aAAa,EAA5B,MAAM;CAChB,IAiBS,cAJG,MAIS,EAAE,aAHX,MAAM,CAAC,EAAE,CAAC,CAGW,KAFnB,MAAM,CAAC,EAAE,CAAC,CAAC,CAmCzB;4BA9P2F,KAAK;sCAAL,KAAK;2BAAL,KAAK"}
|
|
@@ -22,7 +22,9 @@ const settleUnhandled = async () => {
|
|
|
22
22
|
await delayTurn();
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
+
/** @param {'unhandledRejection' | 'rejectionHandled'} event */
|
|
25
26
|
const stripListeners = event => {
|
|
27
|
+
// @ts-expect-error the overload is per specific event name and can't handle the union
|
|
26
28
|
const listeners = process.listeners(event);
|
|
27
29
|
for (const listener of listeners) {
|
|
28
30
|
process.off(event, listener);
|
|
@@ -52,6 +54,10 @@ const makeUnhandledTracker = () => {
|
|
|
52
54
|
}
|
|
53
55
|
});
|
|
54
56
|
|
|
57
|
+
/**
|
|
58
|
+
* @param {unknown} _reason
|
|
59
|
+
* @param {Promise<unknown>} promise
|
|
60
|
+
*/
|
|
55
61
|
const onUnhandled = (_reason, promise) => {
|
|
56
62
|
seenUnhandled += 1;
|
|
57
63
|
const token = Symbol('unhandledRejection');
|
|
@@ -60,6 +66,7 @@ const makeUnhandledTracker = () => {
|
|
|
60
66
|
registry.register(promise, token, token);
|
|
61
67
|
};
|
|
62
68
|
|
|
69
|
+
/** @param {Promise<unknown>} promise */
|
|
63
70
|
const onHandledLate = promise => {
|
|
64
71
|
const token = tokenByPromise.get(promise);
|
|
65
72
|
tokenByPromise.delete(promise);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gc-and-finalize.d.ts","sourceRoot":"","sources":["gc-and-finalize.js"],"names":[],"mappings":"AAkEA,
|
|
1
|
+
{"version":3,"file":"gc-and-finalize.d.ts","sourceRoot":"","sources":["gc-and-finalize.js"],"names":[],"mappings":"AAkEA,4CAA4C;AAC5C,2CADY,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,uBAyB/B"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @param {string} execPath
|
|
3
|
+
* @param {readonly string[]} [procArgs]
|
|
4
|
+
* @param {{ netstringMaxChunkSize?: number }} [options]
|
|
5
|
+
*/
|
|
6
|
+
export function startSubprocessWorker(execPath: string, procArgs?: readonly string[], { netstringMaxChunkSize }?: {
|
|
7
|
+
netstringMaxChunkSize?: number;
|
|
3
8
|
}): {
|
|
4
9
|
fromChild: {
|
|
5
|
-
|
|
10
|
+
/** @param {...unknown} args */
|
|
11
|
+
on: (...args: unknown[]) => import("stream").Transform;
|
|
6
12
|
};
|
|
7
13
|
toChild: {
|
|
8
|
-
|
|
14
|
+
/** @param {...unknown} args */
|
|
15
|
+
write: (...args: unknown[]) => boolean;
|
|
9
16
|
};
|
|
10
17
|
terminate: () => void;
|
|
11
18
|
done: Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawnSubprocessWorker.d.ts","sourceRoot":"","sources":["spawnSubprocessWorker.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawnSubprocessWorker.d.ts","sourceRoot":"","sources":["spawnSubprocessWorker.js"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,gDAJW,MAAM,aACN,SAAS,MAAM,EAAE,8BACjB;IAAE,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAAE;;QAyCzC,+BAA+B;sBAAhB,OAAO,EAAA;;;QAQtB,+BAA+B;yBAAhB,OAAO,EAAA;;;;EAazB"}
|
|
@@ -18,6 +18,10 @@ import {
|
|
|
18
18
|
// toChild, fromChild } pair of Streams which accept/emit hardened Arrays of
|
|
19
19
|
// JSON-serializable data.
|
|
20
20
|
|
|
21
|
+
/**
|
|
22
|
+
* @param {unknown} _first
|
|
23
|
+
* @param {...unknown} _args
|
|
24
|
+
*/
|
|
21
25
|
function parentLog(_first, ..._args) {
|
|
22
26
|
// console.error(`--parent: ${_first}`, ..._args);
|
|
23
27
|
}
|
|
@@ -29,6 +33,11 @@ function parentLog(_first, ..._args) {
|
|
|
29
33
|
/** @type {IOType[]} */
|
|
30
34
|
const stdio = harden(['inherit', 'inherit', 'inherit', 'pipe', 'pipe']);
|
|
31
35
|
|
|
36
|
+
/**
|
|
37
|
+
* @param {string} execPath
|
|
38
|
+
* @param {readonly string[]} [procArgs]
|
|
39
|
+
* @param {{ netstringMaxChunkSize?: number }} [options]
|
|
40
|
+
*/
|
|
32
41
|
export function startSubprocessWorker(
|
|
33
42
|
execPath,
|
|
34
43
|
procArgs = [],
|
|
@@ -68,6 +77,7 @@ export function startSubprocessWorker(
|
|
|
68
77
|
// that get used
|
|
69
78
|
/* @type {typeof fromChild} */
|
|
70
79
|
const wrappedFromChild = {
|
|
80
|
+
/** @param {...unknown} args */
|
|
71
81
|
on: (...args) =>
|
|
72
82
|
fromChild.on(
|
|
73
83
|
.../** @type {Parameters<(typeof fromChild)['on']>} */ (args),
|
|
@@ -75,6 +85,7 @@ export function startSubprocessWorker(
|
|
|
75
85
|
};
|
|
76
86
|
/* @type {typeof toChild} */
|
|
77
87
|
const wrappedToChild = {
|
|
88
|
+
/** @param {...unknown} args */
|
|
78
89
|
write: (...args) =>
|
|
79
90
|
toChild.write(
|
|
80
91
|
.../** @type {Parameters<(typeof toChild)['write']>} */ (args),
|
package/src/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["metrics.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAqH2C,MAAM,EAAE;;;;;;;;;;gCAQrC,CAAC,OAAO,iBAAiB,EAAE,MAAM,OAAO,iBAAiB,CAAC;;;;;;AAiBjE,iDAPI,MAAM,cACN,MAAM,GACJ,MAAM,CACd,iBAAiB,EACrB;IAAM,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAC5C,CAoBH;AA0BM,iCARe,SAAS,SAAlB,MAAQ,mDAElB;IAA0B,SAAS,EAA3B,SAAS;IACM,UAAU,EAAzB,MAAM;IACS,UAAU,EAAzB,MAAM;IACyB,OAAO;CAC9C,GAAU,YAAY,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["metrics.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAqH2C,MAAM,EAAE;;;;;;;;;;gCAQrC,CAAC,OAAO,iBAAiB,EAAE,MAAM,OAAO,iBAAiB,CAAC;;;;;;AAiBjE,iDAPI,MAAM,cACN,MAAM,GACJ,MAAM,CACd,iBAAiB,EACrB;IAAM,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAC5C,CAoBH;AA0BM,iCARe,SAAS,SAAlB,MAAQ,mDAElB;IAA0B,SAAS,EAA3B,SAAS;IACM,UAAU,EAAzB,MAAM;IACS,UAAU,EAAzB,MAAM;IACyB,OAAO;CAC9C,GAAU,YAAY,CAAC,SAAS,CAAC,CAmHnC;AAQD;;;;;;;;GAQG;AACH,qDAAqD;AACrD,uCADW,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,CAkF/C;AAEF,qDAAqD;AACrD,0CADW,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,CA4D/C;AAGF,iCAAiC;AACjC,mCADW,gBAAgB,EAAE,CAI1B;yBAhTmB,SAAS,SAAlB,MAAQ;;;;;iBAEP,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,IAAI;mBAE5C,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,IAAI;;;;;eAC5C,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI;;;;;eAE1C,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI;;yBAoI1C,CAAC,OAAO,UAAU,EAAE,MAAM,OAAO,UAAU,CAAC;;SAO5C,MAAM;UACN,MAAM;;mBACO,MAAM;eAAS,MAAM;;iBAClC,MAAM;;gBAEN,UAAU;;AAxRxB,6DACuD;AApBvD;;;GAGG;AAEH,wDAaE;sCAjBqD,oBAAoB;wCAApB,oBAAoB"}
|
package/src/metrics.js
CHANGED
|
@@ -230,6 +230,11 @@ export const makeQueueMetrics = ({
|
|
|
230
230
|
|
|
231
231
|
let ready = false;
|
|
232
232
|
const lengths = /** @type {TotalMap<string, number>} */ (new Map());
|
|
233
|
+
/**
|
|
234
|
+
* @param {string} queueName
|
|
235
|
+
* @param {number} delta
|
|
236
|
+
* @param {boolean} [init]
|
|
237
|
+
*/
|
|
233
238
|
const nudge = (queueName, delta, init = false) => {
|
|
234
239
|
if (!lengths.has(queueName)) {
|
|
235
240
|
if (!init) console?.warn('Unknown queue', queueName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-utils.d.ts","sourceRoot":"","sources":["module-utils.js"],"names":[],"mappings":"AAcO,sCAHI,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"module-utils.d.ts","sourceRoot":"","sources":["module-utils.js"],"names":[],"mappings":"AAcO,sCAHI,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAe3B;AAWM,yCAJI,MAAM,WACN,MAAM,GACJ,MAAM,CAMlB"}
|
package/src/module-utils.js
CHANGED
|
@@ -15,6 +15,7 @@ import { Fail } from '@endo/errors';
|
|
|
15
15
|
export const getSpecifier = async fileUrl => {
|
|
16
16
|
// eslint-disable-next-line no-new
|
|
17
17
|
new URL(fileUrl); // validates fileUrl
|
|
18
|
+
/** @param {string} location */
|
|
18
19
|
const read = async location => {
|
|
19
20
|
const path = fileURLToPath(new URL(location, fileUrl));
|
|
20
21
|
return readFile(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"natural-sort.d.ts","sourceRoot":"","sources":["natural-sort.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"natural-sort.d.ts","sourceRoot":"","sources":["natural-sort.js"],"names":[],"mappings":"AAoDO,kCAJI,MAAM,KACN,MAAM,GACJ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAmCtB"}
|
package/src/natural-sort.js
CHANGED
|
@@ -15,13 +15,17 @@ const compareNats = (a, b) => {
|
|
|
15
15
|
(Number.isFinite(diff) && diff) ||
|
|
16
16
|
(a === b ? 0 : Number(BigInt(a) - BigInt(b)) || a.length - b.length);
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
return Math.sign(finiteDiff);
|
|
18
|
+
return /** @type {-1 | 0 | 1} */ (Math.sign(finiteDiff));
|
|
20
19
|
};
|
|
21
20
|
|
|
22
21
|
// TODO: compareByCodePoints
|
|
23
22
|
// https://github.com/endojs/endo/pull/2008
|
|
24
23
|
|
|
24
|
+
/**
|
|
25
|
+
* @param {string} a
|
|
26
|
+
* @param {string} b
|
|
27
|
+
* @returns {-1 | 0 | 1}
|
|
28
|
+
*/
|
|
25
29
|
const compareStrings = (a, b) => (a > b ? 1 : a < b ? -1 : 0);
|
|
26
30
|
|
|
27
31
|
const rCaptureDigits = /([0-9]+)/;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export function createBundlesFromAbsolute(sourceBundles:
|
|
2
|
-
export function createBundles(sourceBundles:
|
|
3
|
-
export function extractProposalBundles(dirProposalBuilder:
|
|
1
|
+
export function createBundlesFromAbsolute(sourceBundles: Iterable<readonly [srcPath: string, bundlePath: string]>): Promise<void>;
|
|
2
|
+
export function createBundles(sourceBundles: Array<readonly [srcPath: string, bundlePath: string]>, dirname?: string): Promise<void>;
|
|
3
|
+
export function extractProposalBundles(dirProposalBuilder: Array<readonly [dir: string, proposalBuilder: ProposalBuilder]>, dirname?: string): Promise<void>;
|
|
4
|
+
export type ProposalBuilder = (powers: {
|
|
5
|
+
publishRef: (x: unknown) => unknown;
|
|
6
|
+
install: (src: string, bundleName?: string) => Promise<void>;
|
|
7
|
+
}) => Promise<unknown>;
|
|
4
8
|
//# sourceMappingURL=createBundles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBundles.d.ts","sourceRoot":"","sources":["createBundles.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createBundles.d.ts","sourceRoot":"","sources":["createBundles.js"],"names":[],"mappings":"AAWO,yDADK,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,iBAiCnE;AAMM,6CAHI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,YACrD,MAAM,iBAWhB;AAYM,2DAHI,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,YAC/D,MAAM,iBA0ChB;8BAjDY,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IACpC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D,KAAK,OAAO,CAAC,OAAO,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { Fail, q } from '@endo/errors';
|
|
|
8
8
|
const BUNDLE_SOURCE_PROGRAM = 'bundle-source';
|
|
9
9
|
const req = createRequire(import.meta.url);
|
|
10
10
|
|
|
11
|
+
/** @param {Iterable<readonly [srcPath: string, bundlePath: string]>} sourceBundles */
|
|
11
12
|
export const createBundlesFromAbsolute = async sourceBundles => {
|
|
12
13
|
const prog = req.resolve(`.bin/${BUNDLE_SOURCE_PROGRAM}`);
|
|
13
14
|
|
|
@@ -42,24 +43,47 @@ export const createBundlesFromAbsolute = async sourceBundles => {
|
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
45
|
|
|
46
|
+
/**
|
|
47
|
+
* @param {Array<readonly [srcPath: string, bundlePath: string]>} sourceBundles
|
|
48
|
+
* @param {string} [dirname]
|
|
49
|
+
*/
|
|
45
50
|
export const createBundles = async (sourceBundles, dirname = '.') => {
|
|
46
|
-
const absBundleSources = sourceBundles.map(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
const absBundleSources = sourceBundles.map(
|
|
52
|
+
([srcPath, bundlePath]) =>
|
|
53
|
+
/** @type {readonly [string, string]} */ ([
|
|
54
|
+
req.resolve(srcPath, { paths: [dirname] }),
|
|
55
|
+
path.resolve(dirname, bundlePath),
|
|
56
|
+
]),
|
|
57
|
+
);
|
|
50
58
|
return createBundlesFromAbsolute(absBundleSources);
|
|
51
59
|
};
|
|
52
60
|
|
|
61
|
+
/**
|
|
62
|
+
* @typedef {(powers: {
|
|
63
|
+
* publishRef: (x: unknown) => unknown,
|
|
64
|
+
* install: (src: string, bundleName?: string) => Promise<void>,
|
|
65
|
+
* }) => Promise<unknown>} ProposalBuilder
|
|
66
|
+
*/
|
|
67
|
+
/**
|
|
68
|
+
* @param {Array<readonly [dir: string, proposalBuilder: ProposalBuilder]>} dirProposalBuilder
|
|
69
|
+
* @param {string} [dirname]
|
|
70
|
+
*/
|
|
53
71
|
export const extractProposalBundles = async (
|
|
54
72
|
dirProposalBuilder,
|
|
55
73
|
dirname = '.',
|
|
56
74
|
) => {
|
|
75
|
+
/** @type {Map<string, string>} */
|
|
57
76
|
const toBundle = new Map();
|
|
58
77
|
|
|
59
78
|
await Promise.all(
|
|
60
79
|
dirProposalBuilder.map(async ([dir, proposalBuilder]) => {
|
|
61
80
|
const home = path.resolve(dirname, dir);
|
|
81
|
+
/** @param {unknown} x */
|
|
62
82
|
const publishRef = x => x;
|
|
83
|
+
/**
|
|
84
|
+
* @param {string} src
|
|
85
|
+
* @param {string} [bundleName]
|
|
86
|
+
*/
|
|
63
87
|
const install = async (src, bundleName) => {
|
|
64
88
|
if (bundleName) {
|
|
65
89
|
const bundlePath = path.resolve(home, bundleName);
|
package/src/node/fs-stream.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export function fsStreamReady(stream: StreamLike): Promise<void>;
|
|
2
2
|
export function makeFsStreamWriter(filePath: string | undefined | null): Promise<{
|
|
3
|
-
write: (data:
|
|
3
|
+
write: (data: string | Uint8Array) => Promise<void>;
|
|
4
4
|
flush: () => Promise<void>;
|
|
5
5
|
close: () => Promise<void>;
|
|
6
6
|
} | undefined>;
|
|
7
7
|
export type StreamLike = ReadStream | WriteStream | Socket;
|
|
8
8
|
export type EventName = "drain" | "ready";
|
|
9
|
+
export type WriteBufferIsFull = boolean;
|
|
9
10
|
export type FsStreamWriter = NonNullable<Awaited<ReturnType<typeof makeFsStreamWriter>>>;
|
|
10
11
|
import type { ReadStream } from 'node:fs';
|
|
11
12
|
import type { WriteStream } from 'node:fs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-stream.d.ts","sourceRoot":"","sources":["fs-stream.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fs-stream.d.ts","sourceRoot":"","sources":["fs-stream.js"],"names":[],"mappings":"AAiBO,sCAHI,UAAU,GACR,OAAO,CAAC,IAAI,CAAC,CAgCtB;AA6GG,6CADK,MAAM,GAAG,SAAS,GAAG,IAAI;kBA0CvB,MAAM,GAAG,UAAU;;;eAgChC;yBA5Na,UAAU,GAAG,WAAW,GAAG,MAAM;wBACjC,OAAO,GAAG,OAAO;gCACjB,OAAO;6BA+IP,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;gCArJ/B,SAAS;iCAAT,SAAS;4BAC1B,UAAU"}
|
package/src/node/fs-stream.js
CHANGED
|
@@ -9,6 +9,7 @@ import { promisify } from 'node:util';
|
|
|
9
9
|
|
|
10
10
|
/** @typedef {ReadStream | WriteStream | Socket} StreamLike */
|
|
11
11
|
/** @typedef {'drain' | 'ready'} EventName */
|
|
12
|
+
/** @typedef {boolean} WriteBufferIsFull */
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* @param {StreamLike} stream
|
|
@@ -134,13 +135,12 @@ const onceWithError = makeMemoizedOnceWithError(subscribeOnceWithError);
|
|
|
134
135
|
/**
|
|
135
136
|
* @param {WriteStream | Socket} stream
|
|
136
137
|
* @param {string | Uint8Array} data
|
|
137
|
-
* @returns {Promise<
|
|
138
|
+
* @returns {Promise<WriteBufferIsFull>} whether caller must await drain
|
|
138
139
|
*/
|
|
139
140
|
const writeChunk = (stream, data) =>
|
|
140
141
|
new Promise((resolve, reject) => {
|
|
141
|
-
let waitForDrain;
|
|
142
142
|
try {
|
|
143
|
-
waitForDrain = !stream.write(data, err => {
|
|
143
|
+
const waitForDrain = !stream.write(data, err => {
|
|
144
144
|
if (err) {
|
|
145
145
|
reject(err);
|
|
146
146
|
return;
|
|
@@ -174,15 +174,18 @@ export const makeFsStreamWriter = async filePath => {
|
|
|
174
174
|
? undefined
|
|
175
175
|
: promisify(/** @type {WriteStream} */ (stream).close.bind(stream));
|
|
176
176
|
|
|
177
|
-
|
|
177
|
+
/** @type {Promise<WriteBufferIsFull>} */
|
|
178
|
+
let flushed = Promise.resolve(false);
|
|
178
179
|
let closed = false;
|
|
179
180
|
|
|
181
|
+
/** @param {Promise<WriteBufferIsFull>} p */
|
|
180
182
|
const updateFlushed = p => {
|
|
181
183
|
flushed = flushed.then(
|
|
182
184
|
() => p,
|
|
183
185
|
err =>
|
|
184
186
|
p.then(
|
|
185
187
|
() => Promise.reject(err),
|
|
188
|
+
/** @param {Error} pError */
|
|
186
189
|
pError =>
|
|
187
190
|
Promise.reject(
|
|
188
191
|
pError !== err ? AggregateError([err, pError]) : err,
|
|
@@ -192,6 +195,7 @@ export const makeFsStreamWriter = async filePath => {
|
|
|
192
195
|
flushed.catch(() => {});
|
|
193
196
|
};
|
|
194
197
|
|
|
198
|
+
/** @param {string | Uint8Array} data */
|
|
195
199
|
const write = async data => {
|
|
196
200
|
const written = closed
|
|
197
201
|
? Promise.reject(Error('Stream closed'))
|
package/src/node/shutdown.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export function makeFreshShutdown(verbose?: boolean): {
|
|
2
|
-
|
|
2
|
+
/** @param {(isSigInt: boolean) => unknown} thunk */
|
|
3
|
+
registerShutdown: (thunk: (isSigInt: boolean) => unknown) => () => void;
|
|
3
4
|
};
|
|
4
|
-
export function makeCachedShutdown(
|
|
5
|
-
|
|
5
|
+
export function makeCachedShutdown(verbose?: boolean | undefined): {
|
|
6
|
+
/** @param {(isSigInt: boolean) => unknown} thunk */
|
|
7
|
+
registerShutdown: (thunk: (isSigInt: boolean) => unknown) => () => void;
|
|
6
8
|
};
|
|
7
9
|
export { makeCachedShutdown as makeShutdown };
|
|
8
10
|
//# sourceMappingURL=shutdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["shutdown.js"],"names":[],"mappings":"AAKO
|
|
1
|
+
{"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["shutdown.js"],"names":[],"mappings":"AAKO;IA4DH,oDAAoD;8BAAxC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO;EAQ7C;AAKM;IAbH,oDAAoD;8BAAxC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO;EAoB7C"}
|
package/src/node/shutdown.js
CHANGED
|
@@ -4,6 +4,7 @@ import anylogger from '../../vendor/anylogger.js';
|
|
|
4
4
|
const console = anylogger('shutdown');
|
|
5
5
|
|
|
6
6
|
export const makeFreshShutdown = (verbose = true) => {
|
|
7
|
+
/** @type {Set<(isSigInt: boolean) => unknown>} */
|
|
7
8
|
const shutdownThunks = new Set();
|
|
8
9
|
|
|
9
10
|
let shuttingDown = false;
|
|
@@ -40,12 +41,16 @@ export const makeFreshShutdown = (verbose = true) => {
|
|
|
40
41
|
.catch(error => verbose && console.warn('Error shutting down', error))
|
|
41
42
|
.finally(() => {
|
|
42
43
|
// Let `beforeExit` exit cleanly
|
|
44
|
+
// `code` may be a signal string; the loose `>=` comparison is
|
|
45
|
+
// intentional. The cast is type-only (erased at runtime), so it
|
|
46
|
+
// preserves the original comparison semantics.
|
|
43
47
|
if (!(code >= 0)) {
|
|
44
48
|
process.exit();
|
|
45
49
|
}
|
|
46
50
|
});
|
|
47
51
|
};
|
|
48
52
|
|
|
53
|
+
/** @type {NodeJS.UncaughtExceptionListener} */
|
|
49
54
|
const uncaughtShutdown = e => {
|
|
50
55
|
console.error(e);
|
|
51
56
|
shutdown(-1);
|
|
@@ -58,6 +63,7 @@ export const makeFreshShutdown = (verbose = true) => {
|
|
|
58
63
|
process.on('uncaughtException', uncaughtShutdown);
|
|
59
64
|
|
|
60
65
|
return {
|
|
66
|
+
/** @param {(isSigInt: boolean) => unknown} thunk */
|
|
61
67
|
registerShutdown: thunk => {
|
|
62
68
|
shutdownThunks.add(thunk);
|
|
63
69
|
return () => {
|
|
@@ -69,6 +75,7 @@ export const makeFreshShutdown = (verbose = true) => {
|
|
|
69
75
|
|
|
70
76
|
/** @type {ReturnType<typeof makeFreshShutdown> | null} */
|
|
71
77
|
let cachedShutdown = null;
|
|
78
|
+
/** @param {Parameters<typeof makeFreshShutdown>} args */
|
|
72
79
|
export const makeCachedShutdown = (...args) => {
|
|
73
80
|
// It's possible our caller has specified different arguments.
|
|
74
81
|
// Since they control verbosity only, first-one-wins is acceptable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priority-senders.d.ts","sourceRoot":"","sources":["priority-senders.js"],"names":[],"mappings":"AAUA,4CAA4C;AAC5C,uCADW,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAMtC;AAQK,wDAFI,KAAK,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"priority-senders.d.ts","sourceRoot":"","sources":["priority-senders.js"],"names":[],"mappings":"AAUA,4CAA4C;AAC5C,uCADW,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAMtC;AAQK,wDAFI,KAAK,WAAW,CAAC;IA2CxB;;;;OAIG;wBAHQ,MAAM,WACN,MAAM,KACJ,OAAO,CAAC,IAAI,CAAC;IAe1B;;;;OAIG;2BAHQ,MAAM,WACN,MAAM,KACJ,OAAO,CAAC,IAAI,CAAC;;IArB1B;;;;OAIG;wBAHQ,MAAM,WACN,MAAM,KACJ,OAAO,CAAC,IAAI,CAAC;IAe1B;;;;OAIG;2BAHQ,MAAM,WACN,MAAM,KACJ,OAAO,CAAC,IAAI,CAAC;GAuB7B;qCAGa,UAAU,CAAC,OAAO,0BAA0B,CAAC;iCA3G7B,uBAAuB;0BAD9B,WAAW"}
|
package/src/priority-senders.js
CHANGED
package/src/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["queue.js"],"names":[],"mappings":"AAMO,
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["queue.js"],"names":[],"mappings":"AAMO,kCAoCqB,OAFf,CAEoB,MAKH,GAAG,MAHlB,UAAU,CAAC,CAAC,CAGU,KAFpB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAmB/C"}
|
package/src/queue.js
CHANGED
|
@@ -5,6 +5,15 @@ import { makePromiseKit } from '@endo/promise-kit';
|
|
|
5
5
|
* of them (in order) is running at a time.
|
|
6
6
|
*/
|
|
7
7
|
export const makeWithQueue = () => {
|
|
8
|
+
/**
|
|
9
|
+
* @type {Array<
|
|
10
|
+
* [
|
|
11
|
+
* thunk: (value?: unknown) => unknown,
|
|
12
|
+
* resolve: (value: unknown) => void,
|
|
13
|
+
* reject: (reason?: unknown) => void,
|
|
14
|
+
* ]
|
|
15
|
+
* >}
|
|
16
|
+
*/
|
|
8
17
|
const queue = [];
|
|
9
18
|
|
|
10
19
|
// Execute the thunk at the front of the queue.
|
|
@@ -39,6 +48,7 @@ export const makeWithQueue = () => {
|
|
|
39
48
|
return function queueCall(...args) {
|
|
40
49
|
// Curry the arguments into the inner function, and
|
|
41
50
|
// resolve/reject with whatever the inner function does.
|
|
51
|
+
/** @param {unknown} _ */
|
|
42
52
|
const thunk = _ => inner(...args);
|
|
43
53
|
const pr = makePromiseKit();
|
|
44
54
|
queue.push([thunk, pr.resolve, pr.reject]);
|
package/src/scratch.d.ts
CHANGED
|
@@ -1,19 +1,41 @@
|
|
|
1
1
|
export default function makeScratchPad(): {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/** @param {import('@endo/far').ERef<unknown>} keyP */
|
|
3
|
+
delete: (keyP: import("@endo/far").ERef<unknown>) => Promise<void>;
|
|
4
|
+
/** @param {import('@endo/far').ERef<unknown>} keyP */
|
|
5
|
+
get: (keyP: import("@endo/far").ERef<unknown>) => Promise<any>;
|
|
6
|
+
/** @param {...unknown} path */
|
|
7
|
+
lookup: (...path: unknown[]) => any;
|
|
8
|
+
/**
|
|
9
|
+
* @param {import('@endo/far').ERef<unknown>} keyP
|
|
10
|
+
* @param {import('@endo/far').ERef<unknown>} objP
|
|
11
|
+
*/
|
|
12
|
+
init: (keyP: import("@endo/far").ERef<unknown>, objP: import("@endo/far").ERef<unknown>) => Promise<unknown>;
|
|
6
13
|
keys: () => Promise<any[]>;
|
|
7
14
|
list: () => Promise<any[]>;
|
|
8
|
-
|
|
15
|
+
/**
|
|
16
|
+
* @param {import('@endo/far').ERef<unknown>} keyP
|
|
17
|
+
* @param {import('@endo/far').ERef<unknown>} objP
|
|
18
|
+
*/
|
|
19
|
+
set: (keyP: import("@endo/far").ERef<unknown>, objP: import("@endo/far").ERef<unknown>) => Promise<unknown>;
|
|
9
20
|
} & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
21
|
+
/** @param {import('@endo/far').ERef<unknown>} keyP */
|
|
22
|
+
delete: (keyP: import("@endo/far").ERef<unknown>) => Promise<void>;
|
|
23
|
+
/** @param {import('@endo/far').ERef<unknown>} keyP */
|
|
24
|
+
get: (keyP: import("@endo/far").ERef<unknown>) => Promise<any>;
|
|
25
|
+
/** @param {...unknown} path */
|
|
26
|
+
lookup: (...path: unknown[]) => any;
|
|
27
|
+
/**
|
|
28
|
+
* @param {import('@endo/far').ERef<unknown>} keyP
|
|
29
|
+
* @param {import('@endo/far').ERef<unknown>} objP
|
|
30
|
+
*/
|
|
31
|
+
init: (keyP: import("@endo/far").ERef<unknown>, objP: import("@endo/far").ERef<unknown>) => Promise<unknown>;
|
|
14
32
|
keys: () => Promise<any[]>;
|
|
15
33
|
list: () => Promise<any[]>;
|
|
16
|
-
|
|
34
|
+
/**
|
|
35
|
+
* @param {import('@endo/far').ERef<unknown>} keyP
|
|
36
|
+
* @param {import('@endo/far').ERef<unknown>} objP
|
|
37
|
+
*/
|
|
38
|
+
set: (keyP: import("@endo/far").ERef<unknown>, objP: import("@endo/far").ERef<unknown>) => Promise<unknown>;
|
|
17
39
|
}>;
|
|
18
40
|
export type ScratchPad = ReturnType<typeof makeScratchPad>;
|
|
19
41
|
//# sourceMappingURL=scratch.d.ts.map
|
package/src/scratch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scratch.d.ts","sourceRoot":"","sources":["scratch.js"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"scratch.d.ts","sourceRoot":"","sources":["scratch.js"],"names":[],"mappings":"AAEA;IASI,sDAAsD;mBAA1C,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;IAK7C,sDAAsD;gBAA1C,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;IAK7C,+BAA+B;sBAAhB,OAAO,EAAA;IActB;;;OAGG;iBAFQ,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,QACjC,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;;;IAa5C;;;OAGG;gBAFQ,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,QACjC,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;;IAzC5C,sDAAsD;mBAA1C,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;IAK7C,sDAAsD;gBAA1C,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;IAK7C,+BAA+B;sBAAhB,OAAO,EAAA;IActB;;;OAGG;iBAFQ,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,QACjC,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;;;IAa5C;;;OAGG;gBAFQ,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,QACjC,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;GAS/C;yBACa,UAAU,CAAC,OAAO,cAAc,CAAC"}
|
package/src/scratch.js
CHANGED
|
@@ -9,14 +9,17 @@ export default function makeScratchPad() {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
const scratch = Far('scratchPad', {
|
|
12
|
+
/** @param {import('@endo/far').ERef<unknown>} keyP */
|
|
12
13
|
delete: async keyP => {
|
|
13
14
|
const key = await keyP;
|
|
14
15
|
map.delete(key);
|
|
15
16
|
},
|
|
17
|
+
/** @param {import('@endo/far').ERef<unknown>} keyP */
|
|
16
18
|
get: async keyP => {
|
|
17
19
|
const key = await keyP;
|
|
18
20
|
return map.get(key);
|
|
19
21
|
},
|
|
22
|
+
/** @param {...unknown} path */
|
|
20
23
|
lookup: (...path) => {
|
|
21
24
|
if (path.length === 0) {
|
|
22
25
|
return scratch;
|
|
@@ -30,6 +33,10 @@ export default function makeScratchPad() {
|
|
|
30
33
|
},
|
|
31
34
|
// Initialize a key only if it doesn't already exist. Needed for atomicity
|
|
32
35
|
// between multiple invocations.
|
|
36
|
+
/**
|
|
37
|
+
* @param {import('@endo/far').ERef<unknown>} keyP
|
|
38
|
+
* @param {import('@endo/far').ERef<unknown>} objP
|
|
39
|
+
*/
|
|
33
40
|
init: async (keyP, objP) => {
|
|
34
41
|
const [key, obj] = await Promise.all([keyP, objP]);
|
|
35
42
|
if (map.has(key)) {
|
|
@@ -41,6 +48,10 @@ export default function makeScratchPad() {
|
|
|
41
48
|
keys,
|
|
42
49
|
// Legacy alias for `keys`.
|
|
43
50
|
list: keys,
|
|
51
|
+
/**
|
|
52
|
+
* @param {import('@endo/far').ERef<unknown>} keyP
|
|
53
|
+
* @param {import('@endo/far').ERef<unknown>} objP
|
|
54
|
+
*/
|
|
44
55
|
set: async (keyP, objP) => {
|
|
45
56
|
const [key, obj] = await Promise.all([keyP, objP]);
|
|
46
57
|
map.set(key, obj);
|
package/src/ses-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ses-utils.d.ts","sourceRoot":"","sources":["ses-utils.js"],"names":[],"mappings":"AAkCO,+CADK,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAKvC,cAAc,CACjC;AAGD;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;GAKG;AAEH;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,oCAFU,CAAC,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAKxE;AAwBK,oCAJI,MAAM,OACN,MAAM,GACJ,MAAM,CAKlB;AAeM,+BAPe,IAAI,SAAb,MAAQ,WACV,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,QAC/B,IAAI,SACJ,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;IACxC,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,SAUH;AAkBM,uBATgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EACxB,CAAC,sBACJ,CAAC,kBACD,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,WAGjB,UAAU,CAAC,CAAC,CAAC,GACX,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAwB7B;AAUM,uCAJI,MAAM,WACN,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"ses-utils.d.ts","sourceRoot":"","sources":["ses-utils.js"],"names":[],"mappings":"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"}
|
package/src/ses-utils.js
CHANGED
|
@@ -183,7 +183,8 @@ export const tryJsonParse = (jsonText, onError) => {
|
|
|
183
183
|
const transformError =
|
|
184
184
|
typeof onError === 'function'
|
|
185
185
|
? onError
|
|
186
|
-
:
|
|
186
|
+
: /** @param {Error} err */
|
|
187
|
+
err => Fail([`${onError}: ${err.message} for input `, ''], jsonText);
|
|
187
188
|
return tryNow(() => {
|
|
188
189
|
const type = typeof jsonText;
|
|
189
190
|
type === 'string' || Fail`Input must be a string, not ${b(type)}`;
|
package/src/work-pool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-pool.d.ts","sourceRoot":"","sources":["work-pool.js"],"names":[],"mappings":"AAgFO,6BAlBM,CAAC,EACA,CAAC,MACsB,CAAC,SAAxB,KAAK,GAAG,YAAa,kBACxB,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,UAC9B,SAAS,GACb,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GACrB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAA;CAAE,iBAC3B,CACN,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC3B,cAAc,CAC1B,CACM,CAAC,SAAS,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC5E,MAAY,CACP,CACF,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,KAAK,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"work-pool.d.ts","sourceRoot":"","sources":["work-pool.js"],"names":[],"mappings":"AAgFO,6BAlBM,CAAC,EACA,CAAC,MACsB,CAAC,SAAxB,KAAK,GAAG,YAAa,kBACxB,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,UAC9B,SAAS,GACb,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GACrB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAA;CAAE,iBAC3B,CACN,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC3B,cAAc,CAC1B,CACM,CAAC,SAAS,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC5E,MAAY,CACP,CACF,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,KAAK,CAAA;CAAE,CAiKnD;uBA7NY,CAAC;aAEA,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI;YACnC,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI;aACrB,OAAO,CAAC,CAAC,CAAC"}
|
package/src/work-pool.js
CHANGED
|
@@ -93,8 +93,15 @@ export const makeWorkPool = (
|
|
|
93
93
|
throw RangeError('mode must be "all" or "allSettled"');
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
// Normalize source into an `inputs` iterator.
|
|
97
|
-
|
|
96
|
+
// Normalize source into an `inputs` iterator. `source` is an async- or
|
|
97
|
+
// sync-iterable; type the fallback (`Symbol.iterator`) as present so `||`
|
|
98
|
+
// yields a defined factory.
|
|
99
|
+
const iterableSource =
|
|
100
|
+
/** @type {{ [Symbol.asyncIterator]?: () => AsyncIterator<Awaited<T>>; [Symbol.iterator]: () => Iterator<Awaited<T>> }} */ (
|
|
101
|
+
source
|
|
102
|
+
);
|
|
103
|
+
const makeInputs =
|
|
104
|
+
iterableSource[Symbol.asyncIterator] || iterableSource[Symbol.iterator];
|
|
98
105
|
const inputs =
|
|
99
106
|
/** @type {AsyncIterator<Awaited<T>> | Iterator<Awaited<T>>} */ (
|
|
100
107
|
Reflect.apply(makeInputs, source, [])
|