@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 +7 -6
- package/src/E.d.ts +4 -4
- package/src/E.d.ts.map +1 -1
- package/src/E.js +20 -16
- package/src/exports.d.ts +7 -0
- package/src/no-shim.d.ts +1 -1
- package/src/no-shim.d.ts.map +1 -1
- package/src/no-shim.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@endo/eventual-send",
|
|
3
|
-
"version": "1.
|
|
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
|
|
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.
|
|
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": "
|
|
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": "
|
|
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>> :
|
|
98
|
-
export type ECallableOrMethods<T> = (T extends Callable ? ECallable<T> & 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
|
-
*
|
|
403
|
-
* ?
|
|
404
|
-
* :
|
|
405
|
-
* ?
|
|
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
|
-
*
|
|
414
|
-
* ?
|
|
415
|
-
* :
|
|
416
|
-
* ?
|
|
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
|
-
*
|
|
443
|
-
* ? (
|
|
444
|
-
* :
|
|
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
|
-
*
|
|
454
|
-
* ?
|
|
455
|
-
* : T extends
|
|
456
|
-
* ?
|
|
457
|
-
* : 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,
|
|
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>;
|
package/src/no-shim.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-shim.d.ts","sourceRoot":"","sources":["no-shim.js"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH;;;;;;;;;EAA2B;;;
|
|
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,
|
|
5
|
+
/** @import {ECallableOrMethods, EGetters, ERef, ESendOnlyCallableOrMethods, LocalRecord, RemoteFunctions} from './E.js' */
|
|
6
6
|
|
|
7
7
|
const hp = HandledPromise;
|
|
8
8
|
|