@endo/eventual-send 1.2.7 → 1.3.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 +5 -5
- package/src/E.d.ts +18 -5
- package/src/E.d.ts.map +1 -1
- package/src/E.js +41 -15
- package/src/exports.d.ts +1 -0
- package/src/exports.test-d.ts +14 -1
- package/src/handled-promise.d.ts.map +1 -1
- package/src/handled-promise.js +3 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@endo/eventual-send",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.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",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://github.com/endojs/endo#readme",
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@endo/env-options": "^1.1.
|
|
39
|
+
"@endo/env-options": "^1.1.8"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@endo/lockdown": "^1.0.
|
|
42
|
+
"@endo/lockdown": "^1.0.14",
|
|
43
43
|
"ava": "^6.1.3",
|
|
44
44
|
"c8": "^7.14.0",
|
|
45
45
|
"tsd": "^0.31.2",
|
|
46
|
-
"typescript": "~5.6.
|
|
46
|
+
"typescript": "~5.6.3"
|
|
47
47
|
},
|
|
48
48
|
"keywords": [
|
|
49
49
|
"eventual send",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"typeCoverage": {
|
|
78
78
|
"atLeast": 77.81
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "e0683e0bfdbfc84351af332c9e78813d7b67ef89"
|
|
81
81
|
}
|
package/src/E.d.ts
CHANGED
|
@@ -51,8 +51,11 @@ export type EProxy = ReturnType<(HandledPromise: HandledPromiseConstructor) => (
|
|
|
51
51
|
readonly when: <T, U = T>(x: T | PromiseLike<T>, onfulfilled?: ((value: T) => ERef<U>) | undefined, onrejected?: ((reason: any) => ERef<U>) | undefined) => Promise<U>;
|
|
52
52
|
}>;
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
54
|
+
* Declare an object that is potentially a far reference of type Primary whose
|
|
55
|
+
* auxilliary data has type Local. This should be used only for consumers of
|
|
56
|
+
* Far objects in arguments and declarations; the only creators of Far objects
|
|
57
|
+
* are distributed object creator components like the `Far` or `Remotable`
|
|
58
|
+
* functions.
|
|
56
59
|
*/
|
|
57
60
|
export type FarRef<Primary, Local = DataOnly<Primary>> = ERef<Local & import("./types.js").RemotableBrand<Local, Primary>>;
|
|
58
61
|
/**
|
|
@@ -60,8 +63,17 @@ export type FarRef<Primary, Local = DataOnly<Primary>> = ERef<Local & import("./
|
|
|
60
63
|
* properties that are *not* functions.
|
|
61
64
|
*/
|
|
62
65
|
export type DataOnly<T> = Omit<T, FilteredKeys<T, import("./types.js").Callable>>;
|
|
66
|
+
/**
|
|
67
|
+
* Declare that `T` may or may not be a Promise. This should be used only for
|
|
68
|
+
* consumers of arguments and declarations; return values should specifically be
|
|
69
|
+
* `Promise<T>` or `T` itself.
|
|
70
|
+
*/
|
|
63
71
|
export type ERef<T> = PromiseLike<T> | T;
|
|
64
|
-
|
|
72
|
+
/**
|
|
73
|
+
* The awaited return type of a function.
|
|
74
|
+
*/
|
|
75
|
+
export type EReturn<T extends (...args: any[]) => any> = T extends (...args: any[]) => infer R ? Awaited<R> : never;
|
|
76
|
+
export type ECallable<T extends import("./types.js").Callable> = (ReturnType<T> extends PromiseLike<infer U> ? T : (...args: Parameters<T>) => Promise<EReturn<T>>);
|
|
65
77
|
export type EMethods<T> = { readonly [P in keyof T]: T[P] extends import("./types.js").Callable ? ECallable<T[P]> : never; };
|
|
66
78
|
export type EGetters<T> = { readonly [P in keyof T]: T[P] extends PromiseLike<infer U> ? T[P] : Promise<Awaited<T[P]>>; };
|
|
67
79
|
export type ESendOnlyCallable<T extends import("./types.js").Callable> = (...args: Parameters<T>) => Promise<void>;
|
|
@@ -94,8 +106,9 @@ export type EPromiseKit<R = unknown> = {
|
|
|
94
106
|
settler: import("./types.js").Settler<R>;
|
|
95
107
|
};
|
|
96
108
|
/**
|
|
97
|
-
*
|
|
98
|
-
* interface but
|
|
109
|
+
* Declare a near object that must only be invoked with E, even locally. It
|
|
110
|
+
* supports the `T` interface but additionally permits `T`'s methods to return
|
|
111
|
+
* `PromiseLike`s even if `T` declares them as only synchronous.
|
|
99
112
|
*/
|
|
100
113
|
export type EOnly<T> = (T extends import("./types.js").Callable ? (...args: Parameters<T>) => ERef<Awaited<EOnly<ReturnType<T>>>> : T extends Record<PropertyKey, import("./types.js").Callable> ? { [K in keyof T]: T[K] extends import("./types.js").Callable ? (...args: Parameters<T[K]>) => ERef<Awaited<EOnly<ReturnType<T[K]>>>> : T[K]; } : T);
|
|
101
114
|
/**
|
package/src/E.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E.d.ts","sourceRoot":"","sources":["E.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"E.d.ts","sourceRoot":"","sources":["E.js"],"names":[],"mappings":"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"}
|
package/src/E.js
CHANGED
|
@@ -2,7 +2,7 @@ import { trackTurns } from './track-turns.js';
|
|
|
2
2
|
import { makeMessageBreakpointTester } from './message-breakpoints.js';
|
|
3
3
|
|
|
4
4
|
const { details: X, quote: q, Fail, error: makeError } = assert;
|
|
5
|
-
const { assign,
|
|
5
|
+
const { assign, freeze } = Object;
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @import { HandledPromiseConstructor } from './types.js';
|
|
@@ -167,6 +167,23 @@ const makeEGetProxyHandler = (x, HandledPromise) =>
|
|
|
167
167
|
get: (_target, prop) => HandledPromise.get(x, prop),
|
|
168
168
|
});
|
|
169
169
|
|
|
170
|
+
/**
|
|
171
|
+
* `freeze` but not `harden` the proxy target so it remains trapping.
|
|
172
|
+
* Thus, it should not be shared outside this module.
|
|
173
|
+
*
|
|
174
|
+
* @see https://github.com/endojs/endo/blob/master/packages/ses/docs/preparing-for-stabilize.md
|
|
175
|
+
*/
|
|
176
|
+
const funcTarget = freeze(() => {});
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
/**
|
|
180
|
+
* `freeze` but not `harden` the proxy target so it remains trapping.
|
|
181
|
+
* Thus, it should not be shared outside this module.
|
|
182
|
+
*
|
|
183
|
+
* @see https://github.com/endojs/endo/blob/master/packages/ses/docs/preparing-for-stabilize.md
|
|
184
|
+
*/
|
|
185
|
+
const objTarget = freeze({ __proto__: null });
|
|
186
|
+
|
|
170
187
|
/**
|
|
171
188
|
* @param {HandledPromiseConstructor} HandledPromise
|
|
172
189
|
*/
|
|
@@ -183,7 +200,7 @@ const makeE = HandledPromise => {
|
|
|
183
200
|
* @returns {ECallableOrMethods<RemoteFunctions<T>>} method/function call proxy
|
|
184
201
|
*/
|
|
185
202
|
// @ts-expect-error XXX typedef
|
|
186
|
-
x =>
|
|
203
|
+
x => new Proxy(funcTarget, makeEProxyHandler(x, HandledPromise)),
|
|
187
204
|
{
|
|
188
205
|
/**
|
|
189
206
|
* E.get(x) returns a proxy on which you can get arbitrary properties.
|
|
@@ -196,11 +213,8 @@ const makeE = HandledPromise => {
|
|
|
196
213
|
* @returns {EGetters<LocalRecord<T>>} property get proxy
|
|
197
214
|
* @readonly
|
|
198
215
|
*/
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
harden(
|
|
202
|
-
new Proxy(create(null), makeEGetProxyHandler(x, HandledPromise)),
|
|
203
|
-
),
|
|
216
|
+
// @ts-expect-error XXX typedef
|
|
217
|
+
get: x => new Proxy(objTarget, makeEGetProxyHandler(x, HandledPromise)),
|
|
204
218
|
|
|
205
219
|
/**
|
|
206
220
|
* E.resolve(x) converts x to a handled promise. It is
|
|
@@ -224,9 +238,7 @@ const makeE = HandledPromise => {
|
|
|
224
238
|
*/
|
|
225
239
|
sendOnly: x =>
|
|
226
240
|
// @ts-expect-error XXX typedef
|
|
227
|
-
|
|
228
|
-
new Proxy(() => {}, makeESendOnlyProxyHandler(x, HandledPromise)),
|
|
229
|
-
),
|
|
241
|
+
new Proxy(funcTarget, makeESendOnlyProxyHandler(x, HandledPromise)),
|
|
230
242
|
|
|
231
243
|
/**
|
|
232
244
|
* E.when(x, res, rej) is equivalent to
|
|
@@ -254,8 +266,11 @@ export default makeE;
|
|
|
254
266
|
/** @typedef {ReturnType<makeE>} EProxy */
|
|
255
267
|
|
|
256
268
|
/**
|
|
257
|
-
*
|
|
258
|
-
*
|
|
269
|
+
* Declare an object that is potentially a far reference of type Primary whose
|
|
270
|
+
* auxilliary data has type Local. This should be used only for consumers of
|
|
271
|
+
* Far objects in arguments and declarations; the only creators of Far objects
|
|
272
|
+
* are distributed object creator components like the `Far` or `Remotable`
|
|
273
|
+
* functions.
|
|
259
274
|
*
|
|
260
275
|
* @template Primary The type of the primary reference.
|
|
261
276
|
* @template [Local=DataOnly<Primary>] The local properties of the object.
|
|
@@ -274,6 +289,16 @@ export default makeE;
|
|
|
274
289
|
* @see {@link https://github.com/microsoft/TypeScript/issues/31394}
|
|
275
290
|
* @template T
|
|
276
291
|
* @typedef {PromiseLike<T> | T} ERef
|
|
292
|
+
* Declare that `T` may or may not be a Promise. This should be used only for
|
|
293
|
+
* consumers of arguments and declarations; return values should specifically be
|
|
294
|
+
* `Promise<T>` or `T` itself.
|
|
295
|
+
*/
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* The awaited return type of a function.
|
|
299
|
+
*
|
|
300
|
+
* @template {(...args: any[]) => any} T
|
|
301
|
+
* @typedef {T extends (...args: any[]) => infer R ? Awaited<R> : never} EReturn
|
|
277
302
|
*/
|
|
278
303
|
|
|
279
304
|
/**
|
|
@@ -281,7 +306,7 @@ export default makeE;
|
|
|
281
306
|
* @typedef {(
|
|
282
307
|
* ReturnType<T> extends PromiseLike<infer U> // if function returns a promise
|
|
283
308
|
* ? T // return the function
|
|
284
|
-
* : (...args: Parameters<T>) => Promise<
|
|
309
|
+
* : (...args: Parameters<T>) => Promise<EReturn<T>> // make it return a promise
|
|
285
310
|
* )} ECallable
|
|
286
311
|
*/
|
|
287
312
|
|
|
@@ -399,8 +424,9 @@ export default makeE;
|
|
|
399
424
|
*/
|
|
400
425
|
|
|
401
426
|
/**
|
|
402
|
-
*
|
|
403
|
-
* interface but
|
|
427
|
+
* Declare a near object that must only be invoked with E, even locally. It
|
|
428
|
+
* supports the `T` interface but additionally permits `T`'s methods to return
|
|
429
|
+
* `PromiseLike`s even if `T` declares them as only synchronous.
|
|
404
430
|
*
|
|
405
431
|
* @template T
|
|
406
432
|
* @typedef {(
|
package/src/exports.d.ts
CHANGED
package/src/exports.test-d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @endo/no-polymorphic-call, import/no-extraneous-dependencies, no-restricted-globals */
|
|
2
2
|
import { expectType } from 'tsd';
|
|
3
3
|
import { E } from '../test/_get-hp.js';
|
|
4
|
-
import type { ERef, FarRef } from './exports.js';
|
|
4
|
+
import type { ERef, EReturn, FarRef } from './exports.js';
|
|
5
5
|
|
|
6
6
|
// Check the legacy ERef type
|
|
7
7
|
const foo = async (a: ERef<{ bar(): string; baz: number }>) => {
|
|
@@ -21,6 +21,19 @@ const foo = async (a: ERef<{ bar(): string; baz: number }>) => {
|
|
|
21
21
|
a.bar();
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
// EReturn
|
|
25
|
+
{
|
|
26
|
+
const makeFoo = async () => 'foo' as const;
|
|
27
|
+
expectType<Promise<'foo'>>(makeFoo());
|
|
28
|
+
type Foo = EReturn<typeof makeFoo>;
|
|
29
|
+
expectType<Foo>('foo');
|
|
30
|
+
|
|
31
|
+
const fooP = Promise.resolve('foo' as const);
|
|
32
|
+
expectType<Promise<'foo'>>(fooP);
|
|
33
|
+
// @ts-expect-error takes only functions
|
|
34
|
+
EReturn<typeof fooP>;
|
|
35
|
+
}
|
|
36
|
+
|
|
24
37
|
// FarRef<T>
|
|
25
38
|
const foo2 = async (a: FarRef<{ bar(): string; baz: number }>) => {
|
|
26
39
|
const { baz } = await a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handled-promise.d.ts","sourceRoot":"","sources":["handled-promise.js"],"names":[],"mappings":"AAyDO;SAyIe,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,uBAAuB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;eAAa,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"handled-promise.d.ts","sourceRoot":"","sources":["handled-promise.js"],"names":[],"mappings":"AAyDO;SAyIe,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,uBAAuB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;eAAa,OAAO,CAAC,OAAO,CAAC;qDA2Y9I;oBAGY,CAAC,IACD;IACR,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACrE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7E,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1G,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClF;0CAIc,CAAC,SAAN,EAAI,IACJ;IACR,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,OAAO,CAAC;QAChB,eAAe,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;KAC7C,CAAC;CACH;4BAIU,CAAC,cACF,CACR,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,EACnC,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,EACzC,mBAAmB,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,6BAA6B,CAAC,EAAE,CAAC,KAAK,MAAM,KACvG,IAAI;oBAIE,CAAC,cACF;IACR,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,mBAAmB,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,6BAA6B,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;CACzG;0CAIS;IACR,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9D,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/E,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CACvD;wCAGU,UAAU,CAAC,OAAO,kBAAkB,CAAC"}
|
package/src/handled-promise.js
CHANGED
|
@@ -309,6 +309,9 @@ export const makeHandledPromise = () => {
|
|
|
309
309
|
if (proxyOpts) {
|
|
310
310
|
const {
|
|
311
311
|
handler: proxyHandler,
|
|
312
|
+
// The proxy target can be frozen but should not be hardened
|
|
313
|
+
// so it remains trapping.
|
|
314
|
+
// See https://github.com/endojs/endo/blob/master/packages/ses/docs/preparing-for-stabilize.md
|
|
312
315
|
target: proxyTarget,
|
|
313
316
|
revokerCallback,
|
|
314
317
|
} = proxyOpts;
|