@agoric/vow 0.1.1-dev-776528e.0.776528e → 0.1.1-dev-5ff5e7a.0.5ff5e7a
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 +12 -12
- package/src/E.d.ts +18 -30
- package/src/E.d.ts.map +1 -1
- package/src/E.js +75 -74
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -1
- package/src/rejection-tracker.d.ts +4 -1
- package/src/rejection-tracker.d.ts.map +1 -1
- package/src/retryable.d.ts +69 -2
- package/src/retryable.d.ts.map +1 -1
- package/src/retryable.js +1 -1
- package/src/types.d.ts +9 -1
- package/src/types.d.ts.map +1 -1
- package/src/types.js +15 -5
- package/src/vow-utils.d.ts +25 -1
- package/src/vow-utils.d.ts.map +1 -1
- package/src/vow-utils.js +36 -5
- package/src/watch-utils.d.ts +9 -1
- package/src/watch-utils.d.ts.map +1 -1
- package/src/watch.d.ts +1 -1
- package/src/watch.d.ts.map +1 -1
- package/src/watch.js +3 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/vow",
|
|
3
|
-
"version": "0.1.1-dev-
|
|
3
|
+
"version": "0.1.1-dev-5ff5e7a.0.5ff5e7a",
|
|
4
4
|
"description": "Remote (shortening and disconnection-tolerant) Promise-likes",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,21 +24,21 @@
|
|
|
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-
|
|
28
|
-
"@agoric/internal": "0.3.3-dev-
|
|
27
|
+
"@agoric/base-zone": "0.1.1-dev-5ff5e7a.0.5ff5e7a",
|
|
28
|
+
"@agoric/internal": "0.3.3-dev-5ff5e7a.0.5ff5e7a",
|
|
29
29
|
"@endo/env-options": "^1.1.11",
|
|
30
|
-
"@endo/errors": "^1.
|
|
31
|
-
"@endo/eventual-send": "^1.
|
|
32
|
-
"@endo/pass-style": "^1.
|
|
33
|
-
"@endo/patterns": "^1.
|
|
34
|
-
"@endo/promise-kit": "^1.1
|
|
30
|
+
"@endo/errors": "^1.3.1",
|
|
31
|
+
"@endo/eventual-send": "^1.5.0",
|
|
32
|
+
"@endo/pass-style": "^1.8.1",
|
|
33
|
+
"@endo/patterns": "^1.9.1",
|
|
34
|
+
"@endo/promise-kit": "^1.2.1"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@agoric/internal": "workspace:*",
|
|
38
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
39
|
-
"@agoric/zone": "0.2.3-dev-
|
|
38
|
+
"@agoric/swingset-vat": "0.32.3-dev-5ff5e7a.0.5ff5e7a",
|
|
39
|
+
"@agoric/zone": "0.2.3-dev-5ff5e7a.0.5ff5e7a",
|
|
40
40
|
"@endo/far": "^1.1.14",
|
|
41
|
-
"@endo/init": "^1.1.
|
|
41
|
+
"@endo/init": "^1.1.13",
|
|
42
42
|
"ava": "^7.0.0",
|
|
43
43
|
"tsd": "^0.33.0"
|
|
44
44
|
},
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"typeCoverage": {
|
|
63
63
|
"atLeast": 92.06
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "5ff5e7aa9e8c42795c47aabc7222eb56a2915011"
|
|
66
66
|
}
|
package/src/E.d.ts
CHANGED
|
@@ -1,44 +1,32 @@
|
|
|
1
1
|
export default makeE;
|
|
2
2
|
export type Callable = (...args: unknown[]) => any;
|
|
3
3
|
export type EProxy = ReturnType<typeof makeE>;
|
|
4
|
+
export type DataOnly<T> = import("@endo/eventual-send").DataOnly<T>;
|
|
5
|
+
export type EGetters<T> = import("@endo/eventual-send").EGetters<T>;
|
|
6
|
+
export type ESendOnlyCallable<T extends Callable> = import("@endo/eventual-send").ESendOnlyCallable<T>;
|
|
7
|
+
export type ESendOnlyMethods<T> = import("@endo/eventual-send").ESendOnlyMethods<T>;
|
|
8
|
+
export type ESendOnlyCallableOrMethods<T> = import("@endo/eventual-send").ESendOnlyCallableOrMethods<T>;
|
|
9
|
+
export type FilteredKeys<T, U> = import("@endo/eventual-send").FilteredKeys<T, U>;
|
|
10
|
+
export type EOnly<T> = import("@endo/eventual-send").EOnly<T>;
|
|
4
11
|
/**
|
|
5
|
-
*
|
|
6
|
-
* properties that are *not* functions.
|
|
12
|
+
* Maps a callable to its remotely called type, with Vow auto-unwrapping.
|
|
7
13
|
*/
|
|
8
|
-
export type
|
|
9
|
-
export type ECallable<T extends Callable> = ReturnType<T> extends Promise<EUnwrap<ReturnType<T>>> ? T : (...args: Parameters<T>) => Promise<EUnwrap<ReturnType<T>>>;
|
|
14
|
+
export type ECallable<T extends Callable> = (ReturnType<T> extends Promise<EUnwrap<ReturnType<T>>> ? T : (...args: Parameters<T>) => Promise<EUnwrap<ReturnType<T>>>);
|
|
10
15
|
export type EMethods<T> = { readonly [P in keyof T]: T[P] extends Callable ? ECallable<T[P]> : never; };
|
|
11
|
-
export type
|
|
12
|
-
export type ESendOnlyCallable<T extends Callable> = (...args: Parameters<T>) => Promise<void>;
|
|
13
|
-
export type ESendOnlyMethods<T> = { readonly [P in keyof T]: T[P] extends Callable ? ESendOnlyCallable<T[P]> : never; };
|
|
14
|
-
export type ESendOnlyCallableOrMethods<T> = (T extends Callable ? ESendOnlyCallable<T> & ESendOnlyMethods<Required<T>> : ESendOnlyMethods<Required<T>>);
|
|
15
|
-
export type ECallableOrMethods<T> = (T extends Callable ? ECallable<T> & EMethods<Required<T>> : EMethods<Required<T>>);
|
|
16
|
-
/**
|
|
17
|
-
* Return a union of property names/symbols/numbers P for which the record element T[P]'s type extends U.
|
|
18
|
-
*
|
|
19
|
-
* Given const x = { a: 123, b: 'hello', c: 42, 49: () => {}, 53: 67 },
|
|
20
|
-
*
|
|
21
|
-
* FilteredKeys<typeof x, number> is the type 'a' | 'c' | 53.
|
|
22
|
-
* FilteredKeys<typeof x, string> is the type 'b'.
|
|
23
|
-
* FilteredKeys<typeof x, 42 | 67> is the type 'c' | 53.
|
|
24
|
-
* FilteredKeys<typeof x, boolean> is the type never.
|
|
25
|
-
*/
|
|
26
|
-
export type FilteredKeys<T, U> = { [P in keyof T]: T[P] extends U ? P : never; }[keyof T];
|
|
16
|
+
export type ECallableOrMethods<T> = (0 extends (1 & T) ? any : T extends Callable ? ECallable<T> & EMethods<Required<T>> : EMethods<Required<T>>);
|
|
27
17
|
/**
|
|
28
18
|
* `PickCallable<T>` means to return a single root callable or a record type
|
|
29
|
-
* consisting only of properties that are functions.
|
|
19
|
+
* consisting only of properties that are functions. Like Endo's
|
|
20
|
+
* `PickCallable` but with an extra guard against `Pick<T, never>` collapse
|
|
21
|
+
* when `T` has no callable members.
|
|
30
22
|
*/
|
|
31
|
-
export type PickCallable<T> = (T extends Callable ? (...args: Parameters<T>) => ReturnType<T> : FilteredKeys<T, Callable> extends never ? never : Pick<T, FilteredKeys<T, Callable>>);
|
|
23
|
+
export type PickCallable<T> = (0 extends (1 & T) ? any : T extends Callable ? (...args: Parameters<T>) => ReturnType<T> : FilteredKeys<T, Callable> extends never ? never : Pick<T, FilteredKeys<T, Callable>>);
|
|
32
24
|
/**
|
|
33
|
-
* `RemoteFunctions<T>` means to return the functions and properties that are
|
|
25
|
+
* `RemoteFunctions<T>` means to return the functions and properties that are
|
|
26
|
+
* remotely callable, after unwrapping any Vow chain via `EUnwrap`.
|
|
34
27
|
*/
|
|
35
|
-
export type RemoteFunctions<T> = (EUnwrap<T> extends RemotableBrand<any, infer R> ? PickCallable<R> : PickCallable<EUnwrap<T>>);
|
|
28
|
+
export type RemoteFunctions<T> = (0 extends (1 & T) ? any : EUnwrap<T> extends RemotableBrand<any, infer R> ? PickCallable<R> : PickCallable<EUnwrap<T>>);
|
|
36
29
|
export type LocalRecord<T> = (T extends RemotableBrand<infer L, any> ? L : EUnwrap<T>);
|
|
37
|
-
/**
|
|
38
|
-
* Type for an object that must only be invoked with E. It supports a given
|
|
39
|
-
* interface but declares all the functions as asyncable.
|
|
40
|
-
*/
|
|
41
|
-
export type EOnly<T> = (T extends Callable ? (...args: Parameters<T>) => ERef<Awaited<EOnly<ReturnType<T>>>> : T extends Record<PropertyKey, Callable> ? { [K in keyof T]: T[K] extends Callable ? (...args: Parameters<T[K]>) => ERef<Awaited<EOnly<ReturnType<T[K]>>>> : T[K]; } : T);
|
|
42
30
|
/**
|
|
43
31
|
* @template [A={}]
|
|
44
32
|
* @param {HandledPromiseConstructor} HandledPromise
|
|
@@ -99,6 +87,6 @@ declare function makeE<A = {}>(HandledPromise: HandledPromiseConstructor, powers
|
|
|
99
87
|
} & A;
|
|
100
88
|
import type { EUnwrap } from './types.js';
|
|
101
89
|
import type { RemotableBrand } from '@endo/eventual-send';
|
|
102
|
-
import type { ERef } from '@endo/far';
|
|
103
90
|
import type { HandledPromiseConstructor } from '@endo/eventual-send';
|
|
91
|
+
import type { ERef } from '@endo/far';
|
|
104
92
|
//# sourceMappingURL=E.d.ts.map
|
package/src/E.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E.d.ts","sourceRoot":"","sources":["E.js"],"names":[],"mappings":";uBAiCc,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG;qBAuR3B,UAAU,CAAC,OAAO,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"E.d.ts","sourceRoot":"","sources":["E.js"],"names":[],"mappings":"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"}
|
package/src/E.js
CHANGED
|
@@ -312,108 +312,127 @@ export default makeE;
|
|
|
312
312
|
|
|
313
313
|
/** @typedef {ReturnType<typeof makeE>} EProxy */
|
|
314
314
|
|
|
315
|
+
// =====================================================================
|
|
316
|
+
// Type helpers re-exported from `@endo/eventual-send`.
|
|
317
|
+
//
|
|
318
|
+
// These helpers are byte-equivalent (or close enough) to Endo's, so we
|
|
319
|
+
// re-export rather than maintain duplicate definitions. This file
|
|
320
|
+
// keeps only the helpers whose semantics differ because vow needs to
|
|
321
|
+
// recursively unwrap Vows via `EUnwrap` (a no-op in plain Endo, where
|
|
322
|
+
// `Awaited` is sufficient).
|
|
323
|
+
//
|
|
324
|
+
// Re-exporting via JSDoc `@typedef` preserves the public type names
|
|
325
|
+
// for external consumers (e.g.
|
|
326
|
+
// `import type { ECallable } from '@agoric/vow/src/E.js'`) while
|
|
327
|
+
// pointing the actual definition at Endo.
|
|
328
|
+
// =====================================================================
|
|
329
|
+
|
|
315
330
|
/**
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
331
|
+
* @template T
|
|
332
|
+
* @typedef {import('@endo/eventual-send').DataOnly<T>} DataOnly
|
|
333
|
+
*/
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* @template T
|
|
337
|
+
* @typedef {import('@endo/eventual-send').EGetters<T>} EGetters
|
|
321
338
|
*/
|
|
322
339
|
|
|
323
340
|
/**
|
|
324
341
|
* @template {Callable} T
|
|
325
|
-
* @typedef {
|
|
326
|
-
* ? T
|
|
327
|
-
* : (...args: Parameters<T>) => Promise<EUnwrap<ReturnType<T>>>} ECallable
|
|
342
|
+
* @typedef {import('@endo/eventual-send').ESendOnlyCallable<T>} ESendOnlyCallable
|
|
328
343
|
*/
|
|
329
344
|
|
|
330
345
|
/**
|
|
331
346
|
* @template T
|
|
332
|
-
* @typedef {
|
|
333
|
-
* readonly [P in keyof T]: T[P] extends Callable
|
|
334
|
-
* ? ECallable<T[P]>
|
|
335
|
-
* : never;
|
|
336
|
-
* }} EMethods
|
|
347
|
+
* @typedef {import('@endo/eventual-send').ESendOnlyMethods<T>} ESendOnlyMethods
|
|
337
348
|
*/
|
|
338
349
|
|
|
339
350
|
/**
|
|
340
351
|
* @template T
|
|
341
|
-
* @typedef {
|
|
342
|
-
* readonly [P in keyof T]: T[P] extends PromiseLike<any>
|
|
343
|
-
* ? T[P]
|
|
344
|
-
* : Promise<Awaited<T[P]>>;
|
|
345
|
-
* }} EGetters
|
|
352
|
+
* @typedef {import('@endo/eventual-send').ESendOnlyCallableOrMethods<T>} ESendOnlyCallableOrMethods
|
|
346
353
|
*/
|
|
347
354
|
|
|
348
355
|
/**
|
|
349
|
-
* @template
|
|
350
|
-
* @
|
|
356
|
+
* @template T
|
|
357
|
+
* @template U
|
|
358
|
+
* @typedef {import('@endo/eventual-send').FilteredKeys<T, U>} FilteredKeys
|
|
351
359
|
*/
|
|
352
360
|
|
|
353
361
|
/**
|
|
354
362
|
* @template T
|
|
355
|
-
* @typedef {
|
|
356
|
-
* readonly [P in keyof T]: T[P] extends Callable
|
|
357
|
-
* ? ESendOnlyCallable<T[P]>
|
|
358
|
-
* : never;
|
|
359
|
-
* }} ESendOnlyMethods
|
|
363
|
+
* @typedef {import('@endo/eventual-send').EOnly<T>} EOnly
|
|
360
364
|
*/
|
|
361
365
|
|
|
366
|
+
// =====================================================================
|
|
367
|
+
// Vow-specific type helpers.
|
|
368
|
+
//
|
|
369
|
+
// These helpers diverge from Endo's because vow auto-unwraps the Vow
|
|
370
|
+
// chain via `EUnwrap`, while Endo only unwraps Promises via `Awaited`.
|
|
371
|
+
// `ECallable` is the root of the divergence — every helper that
|
|
372
|
+
// transitively references it (`EMethods`, `ECallableOrMethods`,
|
|
373
|
+
// `RemoteFunctions`, `LocalRecord`) must stay local.
|
|
374
|
+
// =====================================================================
|
|
375
|
+
|
|
362
376
|
/**
|
|
363
|
-
*
|
|
377
|
+
* Maps a callable to its remotely called type, with Vow auto-unwrapping.
|
|
378
|
+
*
|
|
379
|
+
* @template {Callable} T
|
|
364
380
|
* @typedef {(
|
|
365
|
-
* T extends
|
|
366
|
-
* ?
|
|
367
|
-
* :
|
|
368
|
-
* )}
|
|
381
|
+
* ReturnType<T> extends Promise<EUnwrap<ReturnType<T>>>
|
|
382
|
+
* ? T
|
|
383
|
+
* : (...args: Parameters<T>) => Promise<EUnwrap<ReturnType<T>>>
|
|
384
|
+
* )} ECallable
|
|
369
385
|
*/
|
|
370
386
|
|
|
371
387
|
/**
|
|
372
388
|
* @template T
|
|
373
|
-
* @typedef {
|
|
374
|
-
* T extends Callable
|
|
375
|
-
* ? ECallable<T>
|
|
376
|
-
* :
|
|
377
|
-
*
|
|
389
|
+
* @typedef {{
|
|
390
|
+
* readonly [P in keyof T]: T[P] extends Callable
|
|
391
|
+
* ? ECallable<T[P]>
|
|
392
|
+
* : never;
|
|
393
|
+
* }} EMethods
|
|
378
394
|
*/
|
|
379
395
|
|
|
380
396
|
/**
|
|
381
|
-
* Return a union of property names/symbols/numbers P for which the record element T[P]'s type extends U.
|
|
382
|
-
*
|
|
383
|
-
* Given const x = { a: 123, b: 'hello', c: 42, 49: () => {}, 53: 67 },
|
|
384
|
-
*
|
|
385
|
-
* FilteredKeys<typeof x, number> is the type 'a' | 'c' | 53.
|
|
386
|
-
* FilteredKeys<typeof x, string> is the type 'b'.
|
|
387
|
-
* FilteredKeys<typeof x, 42 | 67> is the type 'c' | 53.
|
|
388
|
-
* FilteredKeys<typeof x, boolean> is the type never.
|
|
389
|
-
*
|
|
390
397
|
* @template T
|
|
391
|
-
* @
|
|
392
|
-
*
|
|
398
|
+
* @typedef {(
|
|
399
|
+
* 0 extends (1 & T) // if T is any
|
|
400
|
+
* ? any // propagate any cleanly (avoid distributive collapse)
|
|
401
|
+
* : T extends Callable
|
|
402
|
+
* ? ECallable<T> & EMethods<Required<T>>
|
|
403
|
+
* : EMethods<Required<T>>
|
|
404
|
+
* )} ECallableOrMethods
|
|
393
405
|
*/
|
|
394
406
|
|
|
395
407
|
/**
|
|
396
408
|
* `PickCallable<T>` means to return a single root callable or a record type
|
|
397
|
-
* consisting only of properties that are functions.
|
|
409
|
+
* consisting only of properties that are functions. Like Endo's
|
|
410
|
+
* `PickCallable` but with an extra guard against `Pick<T, never>` collapse
|
|
411
|
+
* when `T` has no callable members.
|
|
398
412
|
*
|
|
399
413
|
* @template T
|
|
400
414
|
* @typedef {(
|
|
401
|
-
*
|
|
402
|
-
* ?
|
|
403
|
-
* :
|
|
404
|
-
*
|
|
405
|
-
*
|
|
415
|
+
* 0 extends (1 & T) // if T is any
|
|
416
|
+
* ? any // propagate any cleanly (avoid Pick<any, string> distributive collapse)
|
|
417
|
+
* : T extends Callable
|
|
418
|
+
* ? (...args: Parameters<T>) => ReturnType<T> // a root callable, no methods
|
|
419
|
+
* : FilteredKeys<T, Callable> extends never
|
|
420
|
+
* ? never
|
|
421
|
+
* : Pick<T, FilteredKeys<T, Callable>> // any callable methods
|
|
406
422
|
* )} PickCallable
|
|
407
423
|
*/
|
|
408
424
|
|
|
409
425
|
/**
|
|
410
|
-
* `RemoteFunctions<T>` means to return the functions and properties that are
|
|
426
|
+
* `RemoteFunctions<T>` means to return the functions and properties that are
|
|
427
|
+
* remotely callable, after unwrapping any Vow chain via `EUnwrap`.
|
|
411
428
|
*
|
|
412
429
|
* @template T
|
|
413
430
|
* @typedef {(
|
|
414
|
-
*
|
|
415
|
-
* ?
|
|
416
|
-
* :
|
|
431
|
+
* 0 extends (1 & T) // if T is any
|
|
432
|
+
* ? any // propagate any cleanly
|
|
433
|
+
* : EUnwrap<T> extends RemotableBrand<any, infer R> // if a given T will settle to some remote interface R
|
|
434
|
+
* ? PickCallable<R> // then return the callable properties of R
|
|
435
|
+
* : PickCallable<EUnwrap<T>> // otherwise return the callable properties of the settled T
|
|
417
436
|
* )} RemoteFunctions
|
|
418
437
|
*/
|
|
419
438
|
|
|
@@ -425,21 +444,3 @@ export default makeE;
|
|
|
425
444
|
* : EUnwrap<T>
|
|
426
445
|
* )} LocalRecord
|
|
427
446
|
*/
|
|
428
|
-
|
|
429
|
-
/**
|
|
430
|
-
* Type for an object that must only be invoked with E. It supports a given
|
|
431
|
-
* interface but declares all the functions as asyncable.
|
|
432
|
-
*
|
|
433
|
-
* @template T
|
|
434
|
-
* @typedef {(
|
|
435
|
-
* T extends Callable
|
|
436
|
-
* ? (...args: Parameters<T>) => ERef<Awaited<EOnly<ReturnType<T>>>>
|
|
437
|
-
* : T extends Record<PropertyKey, Callable>
|
|
438
|
-
* ? {
|
|
439
|
-
* [K in keyof T]: T[K] extends Callable
|
|
440
|
-
* ? (...args: Parameters<T[K]>) => ERef<Awaited<EOnly<ReturnType<T[K]>>>>
|
|
441
|
-
* : T[K];
|
|
442
|
-
* }
|
|
443
|
-
* : T
|
|
444
|
-
* )} EOnly
|
|
445
|
-
*/
|
package/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "../vat.js";
|
|
2
2
|
export * from "./types-index.js";
|
|
3
3
|
export { default as makeE } from "./E.js";
|
|
4
|
-
export { VowShape, toPassableCap } from "./vow-utils.js";
|
|
4
|
+
export { VowShape, Vow$, toPassableCap } from "./vow-utils.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/src/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// reconfigure if not running under SwingSet.
|
|
5
5
|
export * from '../vat.js';
|
|
6
6
|
export { default as makeE } from './E.js';
|
|
7
|
-
export { VowShape, toPassableCap } from './vow-utils.js';
|
|
7
|
+
export { VowShape, Vow$, toPassableCap } from './vow-utils.js';
|
|
8
8
|
|
|
9
9
|
// eslint-disable-next-line import/export
|
|
10
10
|
export * from './types-index.js';
|
|
@@ -8,7 +8,10 @@ export function prepareVowRejectionTracker(zone: Zone): import("@endo/exo").Guar
|
|
|
8
8
|
* @param {any} reason
|
|
9
9
|
*/
|
|
10
10
|
reject(vowCap: PassableCap, reason: any): void;
|
|
11
|
-
}
|
|
11
|
+
}, import("@endo/patterns").InterfaceGuard<{
|
|
12
|
+
handle: import("@endo/patterns").MethodGuard<"sync", [import("@endo/patterns").MatcherOf<"remotable", any>], import("@endo/patterns").ArgGuard[], any, import("@endo/patterns").SyncValueGuard>;
|
|
13
|
+
reject: import("@endo/patterns").MethodGuard<"sync", [import("@endo/patterns").MatcherOf<"remotable", any>, import("@endo/patterns").RawGuard], import("@endo/patterns").ArgGuard[], any, import("@endo/patterns").SyncValueGuard>;
|
|
14
|
+
}>>;
|
|
12
15
|
export type VowRejectionTracker = ReturnType<typeof prepareVowRejectionTracker>;
|
|
13
16
|
import type { Zone } from '@agoric/base-zone';
|
|
14
17
|
import type { PassableCap } from '@endo/pass-style';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rejection-tracker.d.ts","sourceRoot":"","sources":["rejection-tracker.js"],"names":[],"mappings":"AA4BO,iDADK,IAAI;IA4BV;;OAEG;mBADQ,WAAW;IAetB;;;OAGG;mBAFQ,WAAW,UACX,GAAG;
|
|
1
|
+
{"version":3,"file":"rejection-tracker.d.ts","sourceRoot":"","sources":["rejection-tracker.js"],"names":[],"mappings":"AA4BO,iDADK,IAAI;IA4BV;;OAEG;mBADQ,WAAW;IAetB;;;OAGG;mBAFQ,WAAW,UACX,GAAG;;;;IA8BnB;kCAEa,UAAU,CAAC,OAAO,0BAA0B,CAAC;0BA/FpC,mBAAmB;iCAFZ,kBAAkB"}
|
package/src/retryable.d.ts
CHANGED
|
@@ -12,6 +12,41 @@ export function prepareRetryableTools(outerZone: Zone, outerOptions: Preparation
|
|
|
12
12
|
onFulfilled(value: any, runId: any): void;
|
|
13
13
|
onRejected(reason: any, runId: any): void;
|
|
14
14
|
};
|
|
15
|
+
}, {
|
|
16
|
+
flow: import("@endo/patterns").InterfaceGuard<{
|
|
17
|
+
restart: import("@endo/patterns").MethodGuard<"sync", [], import("@endo/patterns").ArgGuard[], any, import("@endo/patterns").SyncValueGuard>;
|
|
18
|
+
getOutcome: import("@endo/patterns").MethodGuard<"sync", [], import("@endo/patterns").ArgGuard[], (string & {
|
|
19
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
20
|
+
}) | (number & {
|
|
21
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
22
|
+
}) | (bigint & {
|
|
23
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
24
|
+
}) | (false & {
|
|
25
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
26
|
+
}) | (true & {
|
|
27
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
28
|
+
}) | (symbol & {
|
|
29
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
30
|
+
}) | (void & {
|
|
31
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
32
|
+
}) | (ArrayBuffer & {
|
|
33
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
34
|
+
}) | (import("@endo/pass-style").RemotableObject<string> & {
|
|
35
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
36
|
+
}) | (import("@endo/eventual-send").RemotableBrand<any, any> & {
|
|
37
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
38
|
+
}) | (import("@endo/pass-style").CopyArrayInterface<PassableCap, Error> & {
|
|
39
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
40
|
+
}) | (import("@endo/pass-style").CopyRecordInterface<PassableCap, Error> & {
|
|
41
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
42
|
+
}) | (import("@endo/pass-style").CopyTaggedInterface<PassableCap, Error> & {
|
|
43
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
44
|
+
}), import("@endo/patterns").SyncValueGuard>;
|
|
45
|
+
}>;
|
|
46
|
+
resultWatcher: import("@endo/patterns").InterfaceGuard<{
|
|
47
|
+
onFulfilled: import("@endo/patterns").MethodGuard<"sync", [import("@endo/patterns").RawGuard], import("@endo/patterns").ArgGuard[], import("@endo/patterns").MatcherOf<"kind", "undefined">, import("@endo/patterns").RawGuard>;
|
|
48
|
+
onRejected: import("@endo/patterns").MethodGuard<"sync", [import("@endo/patterns").RawGuard], import("@endo/patterns").ArgGuard[], import("@endo/patterns").MatcherOf<"kind", "undefined">, import("@endo/patterns").RawGuard>;
|
|
49
|
+
}>;
|
|
15
50
|
}>;
|
|
16
51
|
adminRetryableFlow: import("@endo/exo").Guarded<{
|
|
17
52
|
/**
|
|
@@ -24,8 +59,39 @@ export function prepareRetryableTools(outerZone: Zone, outerOptions: Preparation
|
|
|
24
59
|
*/
|
|
25
60
|
restart(): void;
|
|
26
61
|
getOutcome(): Vow<any>;
|
|
27
|
-
}
|
|
28
|
-
|
|
62
|
+
}, import("@endo/patterns").InterfaceGuard<{
|
|
63
|
+
restart: import("@endo/patterns").MethodGuard<"sync", [], import("@endo/patterns").ArgGuard[], any, import("@endo/patterns").SyncValueGuard>;
|
|
64
|
+
getOutcome: import("@endo/patterns").MethodGuard<"sync", [], import("@endo/patterns").ArgGuard[], (string & {
|
|
65
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
66
|
+
}) | (number & {
|
|
67
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
68
|
+
}) | (bigint & {
|
|
69
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
70
|
+
}) | (false & {
|
|
71
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
72
|
+
}) | (true & {
|
|
73
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
74
|
+
}) | (symbol & {
|
|
75
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
76
|
+
}) | (void & {
|
|
77
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
78
|
+
}) | (ArrayBuffer & {
|
|
79
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
80
|
+
}) | (import("@endo/pass-style").RemotableObject<string> & {
|
|
81
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
82
|
+
}) | (import("@endo/eventual-send").RemotableBrand<any, any> & {
|
|
83
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
84
|
+
}) | (import("@endo/pass-style").CopyArrayInterface<PassableCap, Error> & {
|
|
85
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
86
|
+
}) | (import("@endo/pass-style").CopyRecordInterface<PassableCap, Error> & {
|
|
87
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
88
|
+
}) | (import("@endo/pass-style").CopyTaggedInterface<PassableCap, Error> & {
|
|
89
|
+
"Symbol(castedType)"?: Vow | undefined;
|
|
90
|
+
}), import("@endo/patterns").SyncValueGuard>;
|
|
91
|
+
}>>;
|
|
92
|
+
}, import("@endo/patterns").InterfaceGuard<{
|
|
93
|
+
getFlowForOutcomeVow: import("@endo/patterns").MethodGuard<"sync", [import("@endo/patterns").CastedPattern<Vow>], import("@endo/patterns").ArgGuard[], import("@endo/patterns").MatcherOf<"or", [import("@endo/patterns").MatcherOf<"remotable", any>, import("@endo/patterns").MatcherOf<"kind", "undefined">]>, import("@endo/patterns").SyncValueGuard>;
|
|
94
|
+
}>>;
|
|
29
95
|
retryable: import("./types.js").RetryableTool;
|
|
30
96
|
};
|
|
31
97
|
export type PreparationOptions = {
|
|
@@ -40,6 +106,7 @@ export type RetryableFlowKit = ReturnType<MakeRetryableFlowKit>;
|
|
|
40
106
|
export type RetryableFlow = RetryableFlowKit["flow"];
|
|
41
107
|
import type { Zone } from '@agoric/base-zone';
|
|
42
108
|
import type { Vow } from './types.js';
|
|
109
|
+
import type { PassableCap } from '@endo/pass-style';
|
|
43
110
|
import type { VowKit } from './types.js';
|
|
44
111
|
import type { IsRetryableReason } from './types.js';
|
|
45
112
|
import type { Passable } from '@endo/pass-style';
|
package/src/retryable.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryable.d.ts","sourceRoot":"","sources":["retryable.js"],"names":[],"mappings":"AAwCO,iDAHI,IAAI,gBACJ,kBAAkB;oCAoBhB,IAAI,OACJ,MAAM,iBACN,aAAa;;YAsBhB;;;eAGG
|
|
1
|
+
{"version":3,"file":"retryable.d.ts","sourceRoot":"","sources":["retryable.js"],"names":[],"mappings":"AAwCO,iDAHI,IAAI,gBACJ,kBAAkB;oCAoBhB,IAAI,OACJ,MAAM,iBACN,aAAa;;YAsBhB;;;eAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyGP;;WAEG;yCADQ,GAAG;YA7GV;;;eAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuHZ;;gBA9La,MAAM,OAAO,GAAG,CAAC;uBACjB,iBAAiB;;4BAIlB,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC;6BA6LrC,UAAU,CAAC,OAAO,qBAAqB,CAAC;iCAIxC,cAAc,CAAC,oBAAoB,CAAC;mCAIpC,UAAU,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;+BAIrD,UAAU,CAAC,oBAAoB,CAAC;4BAIhC,gBAAgB,CAAC,MAAM,CAAC;0BAzNd,mBAAmB;yBACiB,YAAY;iCAC/B,kBAAkB;4BADC,YAAY;uCAAZ,YAAY;8BAC/B,kBAAkB"}
|
package/src/retryable.js
CHANGED
|
@@ -148,7 +148,7 @@ export const prepareRetryableTools = (outerZone, outerOptions) => {
|
|
|
148
148
|
const retryableKit = internalMakeRetryableFlowKit(activationArgs);
|
|
149
149
|
const { flow } = retryableKit;
|
|
150
150
|
|
|
151
|
-
const vow = flow.getOutcome();
|
|
151
|
+
const vow = /** @type {Vow} */ (flow.getOutcome());
|
|
152
152
|
flowForOutcomeVowKey.init(toPassableCap(vow), flow);
|
|
153
153
|
flow.restart();
|
|
154
154
|
return retryableKit;
|
package/src/types.d.ts
CHANGED
|
@@ -124,7 +124,15 @@ export type VowTools = {
|
|
|
124
124
|
* @deprecated use `retryable`
|
|
125
125
|
*/
|
|
126
126
|
retriable: RetryableTool;
|
|
127
|
-
|
|
127
|
+
/**
|
|
128
|
+
* @remarks The watcher type is decoupled from the caller's `watcherArgs`
|
|
129
|
+
* type. The watcher accepts `any[]` args (since its inferred guard
|
|
130
|
+
* signature often has `Passable[]` rest args, which would otherwise
|
|
131
|
+
* propagate to the caller and reject contexts containing `Remote<T>`
|
|
132
|
+
* references). The caller passes whatever args they want; the watcher
|
|
133
|
+
* receives them at runtime as whatever its impl typed them.
|
|
134
|
+
*/
|
|
135
|
+
watch: <T = any, TResult1 = T, TResult2 = never, C extends unknown[] = []>(specimenP: EVow<T>, watcher?: Watcher<T, TResult1, TResult2, any[]> | undefined, ...watcherArgs: C) => Vow<Fulfilled<Exclude<TResult1, void> | Exclude<TResult2, void> extends never ? TResult1 : Exclude<TResult1, void> | Exclude<TResult2, void>>>;
|
|
128
136
|
/**
|
|
129
137
|
* Shorten `specimenP` until we achieve a final result.
|
|
130
138
|
*
|
package/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEpE,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,KAAK,GAAG,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI;IAClC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,GAAG,IAAI;IAChC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5D,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI;IAC5B,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACZ,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI;IACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,OAAO,CACjB,CAAC,GAAG,GAAG,EACP,QAAQ,GAAG,CAAC,EACZ,QAAQ,GAAG,KAAK,EAChB,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,IACrB;IACF,WAAW,CAAC,EACR,CAAC,CACC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,CAAC,KACP,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GACrD,SAAS,CAAC;IACd,UAAU,CAAC,EACP,CAAC,CACC,MAAM,EAAE,GAAG,EACX,GAAG,IAAI,EAAE,CAAC,KACP,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GACrD,SAAS,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAC3B,CAAC,GAAG,GAAG,EACP,QAAQ,GAAG,CAAC,EACZ,QAAQ,GAAG,KAAK,EAChB,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,IACrB,CACF,SAAS,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,SAAS,EACvD,WAAW,CAAC,EAAE,CAAC,GAAG,SAAS,KACxB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;OAUG;IACH,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACzC,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,GACJ,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAClD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GACzB,KAAK,CAAC;CACX;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB;;;;;;OAMG;IACH,GAAG,EAAE,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EACjC,SAAS,EAAE,EAAE,KACV,GAAG,CAAC;SACN,CAAC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAClC,CAAC,CAAC;IACH;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EACxC,SAAS,EAAE,EAAE,KACV,GAAG,CAAC;SACN,CAAC,IAAI,MAAM,EAAE,GAAG,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACxD,CAAC,CAAC;IACH;;OAEG;IACH,OAAO,EAAE,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EACrC,SAAS,EAAE,EAAE,KACV,GAAG,CAAC;SACN,CAAC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAClC,CAAC,CAAC;IACH;;OAEG;IACH,SAAS,EAAE,iBAAiB,CAAC;IAC7B;;;;OAIG;IACH,KAAK,EAAE,CAAC,CAAC,EACP,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,KACjE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,SAAS,EAAE,aAAa,CAAC;IACzB;;OAEG;IACH,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
|
package/src/types.js
CHANGED
package/src/vow-utils.d.ts
CHANGED
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
export function sink(): void;
|
|
2
2
|
export { basicE };
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Runtime pattern that matches a Vow (a tagged record with a vowV0
|
|
5
|
+
* shortener). Typed as `CastedPattern<Vow>` so it carries the Vow<any>
|
|
6
|
+
* type through `@endo/patterns`' TypeFromPattern resolution when used
|
|
7
|
+
* in guards. Use {@link Vow$} to narrow the resolved value type:
|
|
8
|
+
*
|
|
9
|
+
* query: M.call(...).returns(Vow$\<ResponseQuery[]\>(M.array()))
|
|
10
|
+
*/
|
|
11
|
+
export const VowShape: CastedPattern<Vow>;
|
|
12
|
+
/**
|
|
13
|
+
* Typed Vow shape factory. At runtime returns the fixed `VowShape` (the
|
|
14
|
+
* payload pattern is ignored — Vows are opaque at runtime). At the type
|
|
15
|
+
* level, the returned value is a {@link CastedPattern} of `Vow<T>`, so
|
|
16
|
+
* guards like
|
|
17
|
+
*
|
|
18
|
+
* query: M.call(...).returns(Vow$(M.arrayOf(M.record())))
|
|
19
|
+
*
|
|
20
|
+
* infer the method's return type as `Vow<{ ... }[]>` instead of the
|
|
21
|
+
* bare `CopyTagged<'Vow', Passable>`. Pass the desired resolved-value
|
|
22
|
+
* type as an explicit type parameter, e.g.
|
|
23
|
+
* `Vow$<JsonSafe<ResponseQuery>[]>(M.arrayOf(M.record()))`.
|
|
24
|
+
*/
|
|
25
|
+
export const Vow$: <T = any>(_resolvedShape: Pattern) => CastedPattern<Vow<T>>;
|
|
4
26
|
export function isVow(specimen: unknown): specimen is Vow;
|
|
5
27
|
export function getVowPayload<T>(specimen: any): VowPayload<T> | undefined;
|
|
6
28
|
export function toPassableCap(k: PassableCap | Vow): PassableCap;
|
|
7
29
|
export function makeAsVow(makeVowKit: MakeVowKit): <T extends unknown>(fn: (...args: any[]) => Vow<Awaited<T>> | Awaited<T> | PromiseVow<T>) => Vow<Awaited<T>>;
|
|
8
30
|
import { E as basicE } from '@endo/eventual-send';
|
|
9
31
|
import type { Vow } from './types.js';
|
|
32
|
+
import type { CastedPattern } from '@endo/patterns';
|
|
33
|
+
import type { Pattern } from '@endo/patterns';
|
|
10
34
|
import type { VowPayload } from './types.js';
|
|
11
35
|
import type { PassableCap } from '@endo/pass-style';
|
|
12
36
|
import type { MakeVowKit } from './vow.js';
|
package/src/vow-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vow-utils.d.ts","sourceRoot":"","sources":["vow-utils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vow-utils.d.ts","sourceRoot":"","sources":["vow-utils.js"],"names":[],"mappings":"AAaO,6BAAqB;;AAK5B;;;;;;;GAOG;AACH,uBAAmC,cAAc,GAAG,CAAC,CAOnD;AAEF;;;;;;;;;;;;GAYG;AACH,mBACa,CAAC,CAAC,GAAG,GAAG,EAAE,cAAc,EAAE,OAAO,KAAK,cAAc,IAAI,CAAC,CAAC,CAAC,CAEpE;AAOG,gCAHI,OAAO,GACL,QAAQ,IAAI,GAAG,CAGyB;AAc9C,8BAJM,CAAC,YACH,GAAG,GACD,WAAW,CAAC,CAAC,GAAG,SAAS,CASrC;AAoBM,iCAHI,WAAW,GAAG,GAAG,GACf,WAAW,CAUvB;AAIM,sCADK,UAAU,IAKD,CAAC,sBACT,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,KAC9D,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAiB7B;4BAtI2B,qBAAqB;yBAOH,YAAY;mCAE1B,gBAAgB;6BAHtB,gBAAgB;gCACI,YAAY;iCAF5B,kBAAkB;gCAGnB,UAAU;gCADO,YAAY"}
|
package/src/vow-utils.js
CHANGED
|
@@ -5,8 +5,10 @@ import { M, matches } from '@endo/patterns';
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @import {PassableCap} from '@endo/pass-style';
|
|
8
|
+
* @import {Pattern} from '@endo/patterns';
|
|
8
9
|
* @import {VowPayload, Vow, PromiseVow} from './types.js';
|
|
9
10
|
* @import {MakeVowKit} from './vow.js';
|
|
11
|
+
* @import {CastedPattern} from '@endo/patterns';
|
|
10
12
|
*/
|
|
11
13
|
|
|
12
14
|
export const sink = () => {};
|
|
@@ -14,13 +16,42 @@ harden(sink);
|
|
|
14
16
|
|
|
15
17
|
export { basicE };
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Runtime pattern that matches a Vow (a tagged record with a vowV0
|
|
21
|
+
* shortener). Typed as `CastedPattern<Vow>` so it carries the Vow<any>
|
|
22
|
+
* type through `@endo/patterns`' TypeFromPattern resolution when used
|
|
23
|
+
* in guards. Use {@link Vow$} to narrow the resolved value type:
|
|
24
|
+
*
|
|
25
|
+
* query: M.call(...).returns(Vow$\<ResponseQuery[]\>(M.array()))
|
|
26
|
+
*/
|
|
27
|
+
export const VowShape = /** @type {CastedPattern<Vow>} */ (
|
|
28
|
+
M.tagged(
|
|
29
|
+
'Vow',
|
|
30
|
+
M.splitRecord({
|
|
31
|
+
vowV0: M.remotable('VowV0'),
|
|
32
|
+
}),
|
|
33
|
+
)
|
|
22
34
|
);
|
|
23
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Typed Vow shape factory. At runtime returns the fixed `VowShape` (the
|
|
38
|
+
* payload pattern is ignored — Vows are opaque at runtime). At the type
|
|
39
|
+
* level, the returned value is a {@link CastedPattern} of `Vow<T>`, so
|
|
40
|
+
* guards like
|
|
41
|
+
*
|
|
42
|
+
* query: M.call(...).returns(Vow$(M.arrayOf(M.record())))
|
|
43
|
+
*
|
|
44
|
+
* infer the method's return type as `Vow<{ ... }[]>` instead of the
|
|
45
|
+
* bare `CopyTagged<'Vow', Passable>`. Pass the desired resolved-value
|
|
46
|
+
* type as an explicit type parameter, e.g.
|
|
47
|
+
* `Vow$<JsonSafe<ResponseQuery>[]>(M.arrayOf(M.record()))`.
|
|
48
|
+
*/
|
|
49
|
+
export const Vow$ =
|
|
50
|
+
/** @type {<T = any>(_resolvedShape: Pattern) => CastedPattern<Vow<T>>} */ (
|
|
51
|
+
_resolvedShape => VowShape
|
|
52
|
+
);
|
|
53
|
+
harden(Vow$);
|
|
54
|
+
|
|
24
55
|
/**
|
|
25
56
|
* @param {unknown} specimen
|
|
26
57
|
* @returns {specimen is Vow}
|
package/src/watch-utils.d.ts
CHANGED
|
@@ -17,7 +17,15 @@ export function prepareWatchUtils(zone: Zone, { watch, when, makeVowKit, isRetry
|
|
|
17
17
|
*/
|
|
18
18
|
allSettled<S extends readonly unknown[]>(specimens: S): Vow<{ [P in keyof S]: PromiseSettledResult<Fulfilled<S[P]>>; }>;
|
|
19
19
|
asPromise(specimenP: any, watcher?: import("./types.js").Watcher<any, any, never, any[]> | undefined, watcherArgs?: any[] | undefined): Promise<any>;
|
|
20
|
-
}
|
|
20
|
+
}, import("@endo/patterns").InterfaceGuard<{
|
|
21
|
+
all: import("@endo/patterns").MethodGuard<"sync", [import("@endo/patterns").MatcherOf<"arrayOf", import("@endo/patterns").MatcherOf<"any", any>>], import("@endo/patterns").ArgGuard[], import("@endo/patterns").MatcherOf<"tagged", ["Vow", {
|
|
22
|
+
vowV0: import("@endo/patterns").MatcherOf<"remotable", import("@endo/pass-style").Passable<import("@endo/pass-style").PassableCap, Error>>;
|
|
23
|
+
}]>, import("@endo/patterns").SyncValueGuard>;
|
|
24
|
+
allSettled: import("@endo/patterns").MethodGuard<"sync", [import("@endo/patterns").MatcherOf<"arrayOf", import("@endo/patterns").MatcherOf<"any", any>>], import("@endo/patterns").ArgGuard[], import("@endo/patterns").MatcherOf<"tagged", ["Vow", {
|
|
25
|
+
vowV0: import("@endo/patterns").MatcherOf<"remotable", import("@endo/pass-style").Passable<import("@endo/pass-style").PassableCap, Error>>;
|
|
26
|
+
}]>, import("@endo/patterns").SyncValueGuard>;
|
|
27
|
+
asPromise: import("@endo/patterns").MethodGuard<"sync", [import("@endo/patterns").RawGuard], import("@endo/patterns").ArgGuard[], import("@endo/patterns").MatcherOf<"promise", any>, import("@endo/patterns").RawGuard>;
|
|
28
|
+
}>>;
|
|
21
29
|
import type { Zone } from '@agoric/base-zone';
|
|
22
30
|
import type { Watch } from './watch.js';
|
|
23
31
|
import type { When } from './when.js';
|
package/src/watch-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-utils.d.ts","sourceRoot":"","sources":["watch-utils.js"],"names":[],"mappings":"AA+BO,wCAPI,IAAI,kDAEZ;IAAsB,KAAK,EAAnB,KAAK;IACQ,IAAI,EAAjB,IAAI;IACsB,UAAU,EAApC,MAAM,OAAO,GAAG,CAAC;IACS,iBAAiB,EAA3C,iBAAiB;CAC3B;IA4CO;;;;OAIG;QAH+B,CAAC,SAAtB,SAAU,OAAO,EAAG,aACtB,CAAC,GACC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC;IAOrD;;;;OAIG;eAH+B,CAAC,SAAtB,SAAU,OAAO,EAAG,aACtB,CAAC,GACC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC
|
|
1
|
+
{"version":3,"file":"watch-utils.d.ts","sourceRoot":"","sources":["watch-utils.js"],"names":[],"mappings":"AA+BO,wCAPI,IAAI,kDAEZ;IAAsB,KAAK,EAAnB,KAAK;IACQ,IAAI,EAAjB,IAAI;IACsB,UAAU,EAApC,MAAM,OAAO,GAAG,CAAC;IACS,iBAAiB,EAA3C,iBAAiB;CAC3B;IA4CO;;;;OAIG;QAH+B,CAAC,SAAtB,SAAU,OAAO,EAAG,aACtB,CAAC,GACC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC;IAOrD;;;;OAIG;eAH+B,CAAC,SAAtB,SAAU,OAAO,EAAG,aACtB,CAAC,GACC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC;;;;;;;;;;IA6LlF;0BA1QsB,mBAAmB;2BAClB,YAAY;0BACb,WAAW;4BAC6C,YAAY;uCAAZ,YAAY;+BAAZ,YAAY;yBAAZ,YAAY"}
|
package/src/watch.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function prepareWatch(zone: Zone, makeVowKit: () => VowKit<any>, isRetryableReason?: (reason: any, lastValue: any) => any): <T = any, TResult1 = T, TResult2 = never, C extends any[] = any[]>(specimenP: EVow<T>, watcher?: Watcher<T, TResult1, TResult2, C>, ...watcherArgs: C) => import("./types.js").Vow<Exclude<TResult1, void> | Exclude<TResult2, void> extends never ? TResult1 : Exclude<TResult1, void> | Exclude<TResult2, void
|
|
1
|
+
export function prepareWatch(zone: Zone, makeVowKit: () => VowKit<any>, isRetryableReason?: (reason: any, lastValue: any) => any): <T = any, TResult1 = T, TResult2 = never, C extends any[] = any[]>(specimenP: EVow<T>, watcher?: Watcher<T, TResult1, TResult2, C>, ...watcherArgs: C) => import("./types.js").Vow<import("./types.js").Fulfilled<Exclude<TResult1, void> | Exclude<TResult2, void> extends never ? TResult1 : Exclude<TResult1, void> | Exclude<TResult2, void>>>;
|
|
2
2
|
export type Watch = ReturnType<typeof prepareWatch>;
|
|
3
3
|
import type { Zone } from '@agoric/base-zone';
|
|
4
4
|
import type { VowKit } from './types.js';
|
package/src/watch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["watch.js"],"names":[],"mappings":"AA4KO,mCAJI,IAAI,cACJ,MAAM,OAAO,GAAG,CAAC,sBACjB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,IAe/B,CAAC,QACD,QAAQ,MACR,QAAQ,UACA,CAAC,SAAT,GAAG,EAAG,qBACT,KAAK,CAAC,CAAC,YACP,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,kBACjC,CAAC,
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["watch.js"],"names":[],"mappings":"AA4KO,mCAJI,IAAI,cACJ,MAAM,OAAO,GAAG,CAAC,sBACjB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,IAe/B,CAAC,QACD,QAAQ,MACR,QAAQ,UACA,CAAC,SAAT,GAAG,EAAG,qBACT,KAAK,CAAC,CAAC,YACP,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,kBACjC,CAAC,8LAuBb;oBAIa,UAAU,CAAC,OAAO,YAAY,CAAC;0BAnNJ,mBAAmB;4BACc,YAAY;0BAAZ,YAAY;6BAAZ,YAAY"}
|
package/src/watch.js
CHANGED
|
@@ -194,7 +194,9 @@ export const prepareWatch = (
|
|
|
194
194
|
const watch = (specimenP, watcher, ...watcherArgs) => {
|
|
195
195
|
/** @typedef {Exclude<TResult1, void> | Exclude<TResult2, void>} Voidless */
|
|
196
196
|
/** @typedef {Voidless extends never ? TResult1 : Voidless} Narrowest */
|
|
197
|
-
|
|
197
|
+
// Unwrap any nested VowLikes in Narrowest so the returned Vow's
|
|
198
|
+
// payload is the final fulfilled value, never another Vow.
|
|
199
|
+
/** @type {VowKit<import('./types.js').Fulfilled<Narrowest>>} */
|
|
198
200
|
const { resolver, vow } = makeVowKit();
|
|
199
201
|
|
|
200
202
|
// Create a promise watcher to track vows, retrying upon rejection as
|