@endo/eventual-send 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@endo/eventual-send",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Extend a Promise class to implement the eventual-send API",
5
5
  "type": "module",
6
6
  "main": "src/no-shim.js",
@@ -9,8 +9,8 @@
9
9
  "test:c8": "c8 ${C8_OPTIONS:-} ava",
10
10
  "test:xs": "exit 0",
11
11
  "build": "exit 0",
12
- "clean": "git clean -fX \"*.d.ts*\" \"*.d.cts*\" \"*.d.mts*\" \"*.tsbuildinfo\"",
13
- "prepack": "tsc --build tsconfig.build.json",
12
+ "clean": "git clean -fX -e node_modules/",
13
+ "prepack": "git clean -fX -e node_modules/ && tsc --build tsconfig.build.json",
14
14
  "postpack": "yarn clean",
15
15
  "lint-fix": "yarn lint:eslint --fix && yarn lint:types",
16
16
  "lint": "yarn lint:types && yarn lint:eslint",
@@ -39,12 +39,13 @@
39
39
  "@endo/harden": "^1.1.0"
40
40
  },
41
41
  "devDependencies": {
42
- "@endo/lockdown": "^1.0.18",
42
+ "@endo/lockdown": "^1.0.19",
43
43
  "ava": "catalog:dev",
44
44
  "c8": "catalog:dev",
45
45
  "eslint": "catalog:dev",
46
+ "ses": "^2.0.0",
46
47
  "tsd": "catalog:dev",
47
- "typescript": "~5.9.2"
48
+ "typescript": "catalog:dev"
48
49
  },
49
50
  "keywords": [
50
51
  "eventual send",
@@ -78,5 +79,5 @@
78
79
  "typeCoverage": {
79
80
  "atLeast": 77.81
80
81
  },
81
- "gitHead": "f91329e8616a19f131d009356a5f11ef11c839cc"
82
+ "gitHead": "e74ed050e9d1122d692b00ee14971299c6afbf30"
82
83
  }
package/src/E.d.ts CHANGED
@@ -94,8 +94,8 @@ export type EMethods<T> = { readonly [P in keyof T]: T[P] extends Callable ? ECa
94
94
  export type EGetters<T> = { readonly [P in keyof T]: T[P] extends PromiseLike<infer U> ? T[P] : Promise<Awaited<T[P]>>; };
95
95
  export type ESendOnlyCallable<T extends Callable> = (...args: Parameters<T>) => Promise<void>;
96
96
  export type ESendOnlyMethods<T> = { readonly [P in keyof T]: T[P] extends Callable ? ESendOnlyCallable<T[P]> : never; };
97
- export type ESendOnlyCallableOrMethods<T> = (T extends Callable ? ESendOnlyCallable<T> & ESendOnlyMethods<Required<T>> : 0 extends (1 & T) ? never : ESendOnlyMethods<Required<T>>);
98
- export type ECallableOrMethods<T> = (T extends Callable ? ECallable<T> & EMethods<Required<T>> : 0 extends (1 & T) ? never : EMethods<Required<T>>);
97
+ export type ESendOnlyCallableOrMethods<T> = (0 extends (1 & T) ? any : T extends Callable ? ESendOnlyCallable<T> & ESendOnlyMethods<Required<T>> : ESendOnlyMethods<Required<T>>);
98
+ export type ECallableOrMethods<T> = (0 extends (1 & T) ? any : T extends Callable ? ECallable<T> & EMethods<Required<T>> : EMethods<Required<T>>);
99
99
  /**
100
100
  * Return a union of property names/symbols/numbers P for which the record element T[P]'s type extends U.
101
101
  *
@@ -111,11 +111,11 @@ export type FilteredKeys<T, U> = { [P in keyof T]: T[P] extends U ? P : never; }
111
111
  * `PickCallable<T>` means to return a single root callable or a record type
112
112
  * consisting only of properties that are functions.
113
113
  */
114
- export type PickCallable<T> = (T extends Callable ? (...args: Parameters<T>) => ReturnType<T> : Pick<T, FilteredKeys<T, Callable>>);
114
+ export type PickCallable<T> = (0 extends (1 & T) ? any : T extends Callable ? (...args: Parameters<T>) => ReturnType<T> : Pick<T, FilteredKeys<T, Callable>>);
115
115
  /**
116
116
  * `RemoteFunctions<T>` means to return the functions and properties that are remotely callable.
117
117
  */
118
- export type RemoteFunctions<T> = (T extends RemotableBrand<infer L, infer R> ? PickCallable<R> : T extends PromiseLike<infer U> ? RemoteFunctions<U> : T);
118
+ export type RemoteFunctions<T> = (0 extends (1 & T) ? any : T extends RemotableBrand<infer L, infer R> ? PickCallable<R> : T extends PromiseLike<infer U> ? RemoteFunctions<U> : T);
119
119
  export type LocalRecord<T> = (T extends RemotableBrand<infer L, infer R> ? L : T extends PromiseLike<infer U> ? LocalRecord<U> : T);
120
120
  export type EPromiseKit<R = unknown> = {
121
121
  promise: Promise<R>;
package/src/E.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"E.d.ts","sourceRoot":"","sources":["E.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"E.d.ts","sourceRoot":"","sources":["E.js"],"names":[],"mappings":"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"}
package/src/E.js CHANGED
@@ -399,10 +399,10 @@ export default makeE;
399
399
  /**
400
400
  * @template T
401
401
  * @typedef {(
402
- * T extends Callable
403
- * ? ESendOnlyCallable<T> & ESendOnlyMethods<Required<T>>
404
- * : 0 extends (1 & T)
405
- * ? never
402
+ * 0 extends (1 & T) // if T is any
403
+ * ? any // propagate any cleanly
404
+ * : T extends Callable
405
+ * ? ESendOnlyCallable<T> & ESendOnlyMethods<Required<T>>
406
406
  * : ESendOnlyMethods<Required<T>>
407
407
  * )} ESendOnlyCallableOrMethods
408
408
  */
@@ -410,10 +410,10 @@ export default makeE;
410
410
  /**
411
411
  * @template T
412
412
  * @typedef {(
413
- * T extends Callable
414
- * ? ECallable<T> & EMethods<Required<T>>
415
- * : 0 extends (1 & T)
416
- * ? never
413
+ * 0 extends (1 & T) // if T is any
414
+ * ? any // propagate any cleanly (avoid distributive expansion that displays Pick<any,string>)
415
+ * : T extends Callable
416
+ * ? ECallable<T> & EMethods<Required<T>>
417
417
  * : EMethods<Required<T>>
418
418
  * )} ECallableOrMethods
419
419
  */
@@ -439,9 +439,11 @@ export default makeE;
439
439
  *
440
440
  * @template T
441
441
  * @typedef {(
442
- * T extends Callable
443
- * ? (...args: Parameters<T>) => ReturnType<T> // a root callable, no methods
444
- * : Pick<T, FilteredKeys<T, Callable>> // any callable methods
442
+ * 0 extends (1 & T) // if T is any
443
+ * ? any // propagate any (avoid Pick<any, string> distributive collapse)
444
+ * : T extends Callable
445
+ * ? (...args: Parameters<T>) => ReturnType<T> // a root callable, no methods
446
+ * : Pick<T, FilteredKeys<T, Callable>> // any callable methods
445
447
  * )} PickCallable
446
448
  */
447
449
 
@@ -450,11 +452,13 @@ export default makeE;
450
452
  *
451
453
  * @template T
452
454
  * @typedef {(
453
- * T extends RemotableBrand<infer L, infer R> // if a given T is some remote interface R
454
- * ? PickCallable<R> // then return the callable properties of R
455
- * : T extends PromiseLike<infer U> // otherwise, if T is a promise
456
- * ? RemoteFunctions<U> // recurse on the resolved value of T
457
- * : T // otherwise, return T
455
+ * 0 extends (1 & T) // if T is any
456
+ * ? any // propagate any (avoid distributive collapse to Pick<any,string>)
457
+ * : T extends RemotableBrand<infer L, infer R> // if a given T is some remote interface R
458
+ * ? PickCallable<R> // then return the callable properties of R
459
+ * : T extends PromiseLike<infer U> // otherwise, if T is a promise
460
+ * ? RemoteFunctions<U> // recurse on the resolved value of T
461
+ * : T // otherwise, return T
458
462
  * )} RemoteFunctions
459
463
  */
460
464
 
package/src/exports.d.ts CHANGED
@@ -14,7 +14,14 @@ export type {
14
14
  EOnly,
15
15
  EReturn,
16
16
  EResult,
17
+ ECallable,
17
18
  ECallableReturn,
19
+ ECallableOrMethods,
20
+ EMethods,
21
+ EGetters,
22
+ ESendOnlyCallable,
23
+ ESendOnlyMethods,
24
+ ESendOnlyCallableOrMethods,
18
25
  RemoteFunctions,
19
26
  LocalRecord,
20
27
  FilteredKeys,
package/src/no-shim.d.ts CHANGED
@@ -27,7 +27,7 @@ import type { EGetters } from './E.js';
27
27
  import type { ESendOnlyCallableOrMethods } from './E.js';
28
28
  import type { ERef } from './E.js';
29
29
  /** @import {Handler, HandledExecutor} from './handled-promise.js' */
30
- /** @import {ECallableOrMethods, EGetters, ERef, ERemoteFunctions, ESendOnlyCallableOrMethods, LocalRecord, RemoteFunctions} from './E.js' */
30
+ /** @import {ECallableOrMethods, EGetters, ERef, ESendOnlyCallableOrMethods, LocalRecord, RemoteFunctions} from './E.js' */
31
31
  declare const hp: {
32
32
  new <R>(executor: HandledExecutor<R>, unfulfilledHandler?: Handler<Promise<unknown>>): Promise<R>;
33
33
  prototype: Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"no-shim.d.ts","sourceRoot":"","sources":["no-shim.js"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH;;;;;;;;;EAA2B;;;qCAduG,QAAQ;wCAAR,QAAQ;iCAAR,QAAQ;8BAAR,QAAQ;gDAAR,QAAQ;0BAAR,QAAQ;AAD1I,qEAAqE;AACrE,6IAA6I;AAE7I;;;oFAA0B;qCAHkB,sBAAsB;6BAAtB,sBAAsB"}
1
+ {"version":3,"file":"no-shim.d.ts","sourceRoot":"","sources":["no-shim.js"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH;;;;;;;;;EAA2B;;;qCAdqF,QAAQ;wCAAR,QAAQ;iCAAR,QAAQ;8BAAR,QAAQ;gDAAR,QAAQ;0BAAR,QAAQ;AADxH,qEAAqE;AACrE,2HAA2H;AAE3H;;;oFAA0B;qCAHkB,sBAAsB;6BAAtB,sBAAsB"}
package/src/no-shim.js CHANGED
@@ -2,7 +2,7 @@ import makeE from './E.js';
2
2
 
3
3
  // XXX module exports for HandledPromise fail if these aren't in scope
4
4
  /** @import {Handler, HandledExecutor} from './handled-promise.js' */
5
- /** @import {ECallableOrMethods, EGetters, ERef, ERemoteFunctions, ESendOnlyCallableOrMethods, LocalRecord, RemoteFunctions} from './E.js' */
5
+ /** @import {ECallableOrMethods, EGetters, ERef, ESendOnlyCallableOrMethods, LocalRecord, RemoteFunctions} from './E.js' */
6
6
 
7
7
  const hp = HandledPromise;
8
8