@agoric/internal 0.3.3-dev-ec5a11e.0.ec5a11e → 0.3.3-dev-bb8d87e.0.bb8d87e

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.
Files changed (45) hide show
  1. package/package.json +5 -5
  2. package/src/build-cache.d.ts.map +1 -1
  3. package/src/build-cache.js +1 -0
  4. package/src/debug.d.ts +2 -2
  5. package/src/debug.d.ts.map +1 -1
  6. package/src/debug.js +19 -3
  7. package/src/keyMirror.d.ts.map +1 -1
  8. package/src/keyMirror.js +1 -4
  9. package/src/kv-store.d.ts +1 -1
  10. package/src/kv-store.d.ts.map +1 -1
  11. package/src/kv-store.js +8 -0
  12. package/src/lib-nodejs/ava-unhandled-rejection.d.ts.map +1 -1
  13. package/src/lib-nodejs/ava-unhandled-rejection.js +7 -0
  14. package/src/lib-nodejs/gc-and-finalize.d.ts +2 -1
  15. package/src/lib-nodejs/gc-and-finalize.d.ts.map +1 -1
  16. package/src/lib-nodejs/gc-and-finalize.js +1 -0
  17. package/src/lib-nodejs/spawnSubprocessWorker.d.ts +11 -4
  18. package/src/lib-nodejs/spawnSubprocessWorker.d.ts.map +1 -1
  19. package/src/lib-nodejs/spawnSubprocessWorker.js +11 -0
  20. package/src/metrics.d.ts.map +1 -1
  21. package/src/metrics.js +5 -0
  22. package/src/module-utils.d.ts.map +1 -1
  23. package/src/module-utils.js +1 -0
  24. package/src/natural-sort.d.ts.map +1 -1
  25. package/src/natural-sort.js +6 -2
  26. package/src/node/createBundles.d.ts +7 -3
  27. package/src/node/createBundles.d.ts.map +1 -1
  28. package/src/node/createBundles.js +28 -4
  29. package/src/node/fs-stream.d.ts +2 -1
  30. package/src/node/fs-stream.d.ts.map +1 -1
  31. package/src/node/fs-stream.js +8 -4
  32. package/src/node/shutdown.d.ts +5 -3
  33. package/src/node/shutdown.d.ts.map +1 -1
  34. package/src/node/shutdown.js +7 -0
  35. package/src/priority-senders.d.ts.map +1 -1
  36. package/src/priority-senders.js +1 -0
  37. package/src/queue.d.ts.map +1 -1
  38. package/src/queue.js +10 -0
  39. package/src/scratch.d.ts +32 -10
  40. package/src/scratch.d.ts.map +1 -1
  41. package/src/scratch.js +11 -0
  42. package/src/ses-utils.d.ts.map +1 -1
  43. package/src/ses-utils.js +2 -1
  44. package/src/work-pool.d.ts.map +1 -1
  45. 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-ec5a11e.0.ec5a11e",
3
+ "version": "0.3.3-dev-bb8d87e.0.bb8d87e",
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-ec5a11e.0.ec5a11e",
27
+ "@agoric/base-zone": "0.1.1-dev-bb8d87e.0.bb8d87e",
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-ec5a11e.0.ec5a11e",
45
+ "@agoric/cosmic-proto": "0.4.1-dev-bb8d87e.0.bb8d87e",
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": 92.84
71
+ "atLeast": 95.63
72
72
  },
73
- "gitHead": "ec5a11edbf3c1bf0e1879f66f50103f57a8f0e06"
73
+ "gitHead": "bb8d87e22a0a5c7b2579588108517c2378e7d5c2"
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-cache.d.ts","sourceRoot":"","sources":["build-cache.js"],"names":[],"mappings":"AAUO,0CAFI,mBAAmB;oBAkEjB,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;yCAlLsD,wBAAwB"}
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"}
@@ -20,6 +20,7 @@ export const makeDirectoryLock = powers => {
20
20
  acquireTimeoutMs,
21
21
  onEvent = () => {},
22
22
  } = powers;
23
+ /** @param {BuildCacheEvent} event */
23
24
  const safeEmit = event => {
24
25
  try {
25
26
  onEvent(event);
package/src/debug.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export function makeTracer(label: string, enable?: boolean | "verbose"): ((..._args: any[]) => void) & {
2
- sub: (subLabel: any, subEnable?: boolean | "verbose") => ((..._args: any[]) => void) & /*elided*/ any;
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
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["debug.js"],"names":[],"mappings":"AAQO,kCAHI,MAAM,WACN,OAAO,GAAG,SAAS;;EAwC7B;0BAIY,UAAU,CAAC,OAAO,UAAU,CAAC"}
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
- if (typeof optLog?.log === 'function') {
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
- if (typeof optLog?.log === 'function') {
39
- optLog.log(key, ...args);
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
  }
@@ -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,CAqBjC;4BAxC0F,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"}
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: any, right: any): 0 | 1 | -1;
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;
@@ -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;AAOM,uEAoBN;AAOM,mCAJO,CAAC,iBACJ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GACZ,OAAO,CAAC,CAAC,CAAC,CA8DtB;oBAxPa,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"}
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;AA2ElC,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;4BAvP2F,KAAK;sCAAL,KAAK;2BAAL,KAAK"}
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,2 +1,3 @@
1
- export function makeGcAndFinalize(gcPower: any): () => Promise<void>;
1
+ /** @param {(() => void) | false} gcPower */
2
+ export function makeGcAndFinalize(gcPower: (() => void) | false): () => Promise<void>;
2
3
  //# sourceMappingURL=gc-and-finalize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gc-and-finalize.d.ts","sourceRoot":"","sources":["gc-and-finalize.js"],"names":[],"mappings":"AAkEA,qEAwBC"}
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"}
@@ -64,6 +64,7 @@
64
64
  * dummy pre-resolved Promise.
65
65
  */
66
66
 
67
+ /** @param {(() => void) | false} gcPower */
67
68
  export function makeGcAndFinalize(gcPower) {
68
69
  if (typeof gcPower !== 'function') {
69
70
  if (gcPower !== false) {
@@ -1,11 +1,18 @@
1
- export function startSubprocessWorker(execPath: any, procArgs?: any[], { netstringMaxChunkSize }?: {
2
- netstringMaxChunkSize?: undefined;
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
- on: (...args: any[]) => import("stream").Transform;
10
+ /** @param {...unknown} args */
11
+ on: (...args: unknown[]) => import("stream").Transform;
6
12
  };
7
13
  toChild: {
8
- write: (...args: any[]) => boolean;
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":"AA+BA;;;;;;;;;;;EA0DC"}
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),
@@ -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,CA8GnC;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;yBA3SmB,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;;yBA+H1C,CAAC,OAAO,UAAU,EAAE,MAAM,OAAO,UAAU,CAAC;;SAO5C,MAAM;UACN,MAAM;;mBACO,MAAM;eAAS,MAAM;;iBAClC,MAAM;;gBAEN,UAAU;;AAnRxB,6DACuD;AApBvD;;;GAGG;AAEH,wDAaE;sCAjBqD,oBAAoB;wCAApB,oBAAoB"}
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,CAc3B;AAWM,yCAJI,MAAM,WACN,MAAM,GACJ,MAAM,CAMlB"}
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"}
@@ -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":"AAgDO,kCAJI,MAAM,KACN,MAAM,GACJ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAmCtB"}
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"}
@@ -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
- // @ts-expect-error this call really does return -1 | 0 | 1
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: any): Promise<void>;
2
- export function createBundles(sourceBundles: any, dirname?: string): Promise<void>;
3
- export function extractProposalBundles(dirProposalBuilder: any, dirname?: string): Promise<void>;
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":"AAUO,6EAgCN;AAEM,mFAMN;AAEM,iGAkCN"}
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(([srcPath, bundlePath]) => [
47
- req.resolve(srcPath, { paths: [dirname] }),
48
- path.resolve(dirname, bundlePath),
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);
@@ -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: any) => Promise<void>;
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":"AAgBO,sCAHI,UAAU,GACR,OAAO,CAAC,IAAI,CAAC,CAgCtB;AA8GG,6CADK,MAAM,GAAG,SAAS,GAAG,IAAI;;;;eAsEpC;yBAxNa,UAAU,GAAG,WAAW,GAAG,MAAM;wBACjC,OAAO,GAAG,OAAO;6BAgJjB,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;gCArJ/B,SAAS;iCAAT,SAAS;4BAC1B,UAAU"}
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"}
@@ -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<boolean>} whether caller must await drain
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
- let flushed = Promise.resolve();
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'))
@@ -1,8 +1,10 @@
1
1
  export function makeFreshShutdown(verbose?: boolean): {
2
- registerShutdown: (thunk: any) => () => void;
2
+ /** @param {(isSigInt: boolean) => unknown} thunk */
3
+ registerShutdown: (thunk: (isSigInt: boolean) => unknown) => () => void;
3
4
  };
4
- export function makeCachedShutdown(...args: any[]): {
5
- registerShutdown: (thunk: any) => () => void;
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;;EA8DN;AAIM;;EAON"}
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"}
@@ -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;IA0CxB;;;;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;iCA1G7B,uBAAuB;0BAD9B,WAAW"}
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"}
@@ -47,6 +47,7 @@ export const makePrioritySendersManager = sendersNode => {
47
47
  );
48
48
  };
49
49
 
50
+ /** @param {string} address */
50
51
  const provideRecordForAddress = async address => {
51
52
  const extant = addressRecords.get(address);
52
53
  if (extant) {
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["queue.js"],"names":[],"mappings":"AAMO,kCA2BqB,OAFf,CAEoB,MAKH,GAAG,MAHlB,UAAU,CAAC,CAAC,CAGU,KAFpB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAkB/C"}
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
- delete: (keyP: any) => Promise<void>;
3
- get: (keyP: any) => Promise<any>;
4
- lookup: (...path: any[]) => any;
5
- init: (keyP: any, objP: any) => Promise<any>;
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
- set: (keyP: any, objP: any) => Promise<any>;
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
- delete: (keyP: any) => Promise<void>;
11
- get: (keyP: any) => Promise<any>;
12
- lookup: (...path: any[]) => any;
13
- init: (keyP: any, objP: any) => Promise<any>;
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
- set: (keyP: any, objP: any) => Promise<any>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"scratch.d.ts","sourceRoot":"","sources":["scratch.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgDC;yBACa,UAAU,CAAC,OAAO,cAAc,CAAC"}
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);
@@ -1 +1 @@
1
- {"version":3,"file":"ses-utils.d.ts","sourceRoot":"","sources":["ses-utils.js"],"names":[],"mappings":"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"}
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,OAc5C;AAOM,mCAJM,CAAC,SACH,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,GAC7B,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBxB;AAQM,oCALM,CAAC,SACH,MAAM,OAAO,CAAC,CAAC,CAAC,aAChB,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC,CAYpB;AAWI,oCANM,CAAC,MACH,CACN,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KACvD,OAAO,CAAC,CAAC,CAAC,GACL,OAAO,CAAC,CAAC,CAAC,CAmBtB;AAED;;;GAGG;AAEH;;;;;;GAMG;AACH,+BAHU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAanF;AAaK,0BARM,CAAC,EACW,CAAC,SAAb,OAAQ,CAAC,CAAE,YACb,CAAC,UACD,CAAC,cACD,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,GAE5D,WAAW,CAAC,EAAE,CAAC,CAAC,CA6C5B;AAQD,+CAAoD;AAS7C,0BANM,CAAC,WACH,MAAM,CAAC,GAGL,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAYlC;AASG,0BANM,CAAC,WACH,MAAM,CAAC,GAGL,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAelC;AAEJ,mDAAmD;AACnD,kBADW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CACsB;AAErE;;;;GAIG;AACH,wBAJU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,EACzC,GAAG,EAAE,CAAC,KACH,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAKhD;AAWK,gCAJO,CAAC,0BACJ,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAC5B,MAAM,mCA0GhB;;;;;;qBA1dY,CAAC,IACD,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAE,GAAG,EAAE;uBAMzC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;gCAIlB,CAAC,SAAN,EAAI,IACJ,GACP,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACnE;0BAIS,CAAC,IACD,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,GAC9B,OAAO,CAAC,CAAC,CAAC,GACV,CAAC,SAAS,eAAe,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,GAClD,CAAC,GACD,CAAC,SAAS,EAAE,GACV,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC;uBAmMgB,CAAC,SAA1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAE,IACzB,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAE;0BAlQ/B,4BAA4B;8BACxB,iCAAiC;kCAC7B,qCAAqC;oCAWtC,eAAe;0BAVQ,cAAc;4BAkBhC,YAAY;gCAAZ,YAAY;0BAH1B,WAAW;oCACD,qBAAqB;qCACT,kBAAkB"}
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
- : err => Fail([`${onError}: ${err.message} for input `, ''], jsonText);
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)}`;
@@ -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,CA0JnD;uBAtNY,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"}
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
- const makeInputs = source[Symbol.asyncIterator] || source[Symbol.iterator];
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, [])