@agoric/async-flow 0.1.1-dev-24665a9.0 → 0.1.1-dev-a035bbe.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": "@agoric/async-flow",
3
- "version": "0.1.1-dev-24665a9.0+24665a9",
3
+ "version": "0.1.1-dev-a035bbe.0+a035bbe",
4
4
  "description": "Upgrade async functions at await points by replay",
5
5
  "type": "module",
6
6
  "repository": "https://github.com/Agoric/agoric-sdk",
@@ -24,9 +24,9 @@
24
24
  "author": "Agoric",
25
25
  "license": "Apache-2.0",
26
26
  "dependencies": {
27
- "@agoric/base-zone": "0.1.1-dev-24665a9.0+24665a9",
28
- "@agoric/store": "0.9.3-dev-24665a9.0+24665a9",
29
- "@agoric/vow": "0.1.1-dev-24665a9.0+24665a9",
27
+ "@agoric/base-zone": "0.1.1-dev-a035bbe.0+a035bbe",
28
+ "@agoric/store": "0.9.3-dev-a035bbe.0+a035bbe",
29
+ "@agoric/vow": "0.1.1-dev-a035bbe.0+a035bbe",
30
30
  "@endo/common": "^1.2.2",
31
31
  "@endo/errors": "^1.2.2",
32
32
  "@endo/eventual-send": "^1.2.2",
@@ -36,9 +36,9 @@
36
36
  "@endo/promise-kit": "^1.1.2"
37
37
  },
38
38
  "devDependencies": {
39
- "@agoric/internal": "0.3.3-dev-24665a9.0+24665a9",
40
- "@agoric/swingset-liveslots": "0.10.3-dev-24665a9.0+24665a9",
41
- "@agoric/zone": "0.2.3-dev-24665a9.0+24665a9",
39
+ "@agoric/internal": "0.3.3-dev-a035bbe.0+a035bbe",
40
+ "@agoric/swingset-liveslots": "0.10.3-dev-a035bbe.0+a035bbe",
41
+ "@agoric/zone": "0.2.3-dev-a035bbe.0+a035bbe",
42
42
  "@endo/env-options": "^1.1.4",
43
43
  "@endo/ses-ava": "^1.2.2",
44
44
  "ava": "^5.3.0"
@@ -62,5 +62,5 @@
62
62
  "typeCoverage": {
63
63
  "atLeast": 77.83
64
64
  },
65
- "gitHead": "24665a97248b854fcb01185d360429301470ed57"
65
+ "gitHead": "a035bbe9d3a46247ed2199e4ca707103a9e04bfd"
66
66
  }
@@ -15,8 +15,8 @@ export function prepareAsyncFlowTools(outerZone: Zone, outerOptions?: Preparatio
15
15
  */
16
16
  restart(eager?: boolean | undefined): void;
17
17
  wake(): void;
18
- getOutcome(): Vow<any>;
19
- dump(): ([op: "doFulfill", vow: Vow<Passable>, fulfillment: Passable] | [op: "doReject", vow: Vow<Passable>, reason: Passable] | [op: "doReturn", callIndex: number, result: Passable] | [op: "doThrow", callIndex: number, problem: Passable] | [op: "checkCall", target: Passable, optVerb: PropertyKey | undefined, args: Passable[], callIndex: number])[];
18
+ getOutcome(): import("@agoric/vow").Vow<any>;
19
+ dump(): ([op: "doFulfill", vow: import("@agoric/vow").Vow<import("@endo/pass-style").Passable>, fulfillment: import("@endo/pass-style").Passable] | [op: "doReject", vow: import("@agoric/vow").Vow<import("@endo/pass-style").Passable>, reason: import("@endo/pass-style").Passable] | [op: "doReturn", callIndex: number, result: import("@endo/pass-style").Passable] | [op: "doThrow", callIndex: number, problem: import("@endo/pass-style").Passable] | [op: "checkCall", target: import("@endo/pass-style").Passable, optVerb: PropertyKey | undefined, args: import("@endo/pass-style").Passable[], callIndex: number])[];
20
20
  getOptFatalProblem(): any;
21
21
  };
22
22
  admin: {
@@ -33,7 +33,7 @@ export function prepareAsyncFlowTools(outerZone: Zone, outerOptions?: Preparatio
33
33
  startEager?: boolean;
34
34
  } | undefined) => HostAsyncFuncWrapper;
35
35
  adminAsyncFlow: import("@endo/exo").Guarded<{
36
- getFailures(): import("@endo/patterns").CopyMap<any, Passable>;
36
+ getFailures(): import("@endo/patterns").CopyMap<any, import("@endo/pass-style").Passable>;
37
37
  wakeAll(): void;
38
38
  getFlowForOutcomeVow(outcomeVow: any): any;
39
39
  }>;
@@ -56,8 +56,8 @@ export type AsyncFlowTools = ReturnType<(outerZone: Zone, outerOptions?: Prepara
56
56
  */
57
57
  restart(eager?: boolean | undefined): void;
58
58
  wake(): void;
59
- getOutcome(): Vow<any>;
60
- dump(): ([op: "doFulfill", vow: Vow<Passable>, fulfillment: Passable] | [op: "doReject", vow: Vow<Passable>, reason: Passable] | [op: "doReturn", callIndex: number, result: Passable] | [op: "doThrow", callIndex: number, problem: Passable] | [op: "checkCall", target: Passable, optVerb: PropertyKey | undefined, args: Passable[], callIndex: number])[];
59
+ getOutcome(): import("@agoric/vow").Vow<any>;
60
+ dump(): ([op: "doFulfill", vow: import("@agoric/vow").Vow<import("@endo/pass-style").Passable>, fulfillment: import("@endo/pass-style").Passable] | [op: "doReject", vow: import("@agoric/vow").Vow<import("@endo/pass-style").Passable>, reason: import("@endo/pass-style").Passable] | [op: "doReturn", callIndex: number, result: import("@endo/pass-style").Passable] | [op: "doThrow", callIndex: number, problem: import("@endo/pass-style").Passable] | [op: "checkCall", target: import("@endo/pass-style").Passable, optVerb: PropertyKey | undefined, args: import("@endo/pass-style").Passable[], callIndex: number])[];
61
61
  getOptFatalProblem(): any;
62
62
  };
63
63
  admin: {
@@ -74,7 +74,7 @@ export type AsyncFlowTools = ReturnType<(outerZone: Zone, outerOptions?: Prepara
74
74
  startEager?: boolean | undefined;
75
75
  } | undefined) => HostAsyncFuncWrapper;
76
76
  adminAsyncFlow: import("@endo/exo").Guarded<{
77
- getFailures(): import("@endo/patterns").CopyMap<any, Passable>;
77
+ getFailures(): import("@endo/patterns").CopyMap<any, import("@endo/pass-style").Passable>;
78
78
  wakeAll(): void;
79
79
  getFlowForOutcomeVow(outcomeVow: any): any;
80
80
  }>;
@@ -84,4 +84,9 @@ export type AdminAsyncFlow = AsyncFlowTools["adminAsyncFlow"];
84
84
  export type MakeAsyncFlowKit = ReturnType<AsyncFlowTools["prepareAsyncFlowKit"]>;
85
85
  export type AsyncFlowKit = ReturnType<MakeAsyncFlowKit>;
86
86
  export type AsyncFlow = AsyncFlowKit["flow"];
87
+ import type { Zone } from '@agoric/base-zone';
88
+ import type { PreparationOptions } from '../src/types.js';
89
+ import type { GuestAsyncFunc } from '../src/types.js';
90
+ import type { FlowState } from '../src/types.js';
91
+ import type { HostAsyncFuncWrapper } from '../src/types.js';
87
92
  //# sourceMappingURL=async-flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"async-flow.d.ts","sourceRoot":"","sources":["async-flow.js"],"names":[],"mappings":"AA4CO;2CAuCM,MAAM,kBACN,cAAc;qBACC,OAAO;;;YA4BzB;;eAEG;4BADU,SAAS;YAkCtB;;;;;eAKG;;;;;;;;;;;;;;;;;iCAkRA,MAAM,aACN,cAAc;qBACC,OAAO;sBACpB,oBAAoB;;;;;;;EAkDlC;6BAIY,UAAU;2CAjZV,MAAM,kBACN,cAAc;;;;YA6BjB;;eAEG;;YAiCH;;;;;eAKG;;;;;;;;;;;;;;;;;iCAkRA,MAAM,aACN,cAAc;;;;;;;;;EAwDmB;6BAIjC,cAAc,CAAC,gBAAgB,CAAC;+BAIhC,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;2BAIjD,UAAU,CAAC,gBAAgB,CAAC;wBAI5B,YAAY,CAAC,MAAM,CAAC"}
1
+ {"version":3,"file":"async-flow.d.ts","sourceRoot":"","sources":["async-flow.js"],"names":[],"mappings":"AAmDO;2CAuCM,MAAM;qBAES,OAAO;;;YA4BzB;;eAEG;;YAiCH;;;;;eAKG;;;;;;;;;;;;;;;;;iCAkRA,MAAM;qBAES,OAAO;;;;;;;;EAmDlC;6BAIY,UAAU;2CAjZV,MAAM;;;;YA8BT;;eAEG;;YAiCH;;;;;eAKG;;;;;;;;;;;;;;;;;iCAkRA,MAAM;;;;;;;;;EAyD2B;6BAIjC,cAAc,CAAC,gBAAgB,CAAC;+BAIhC,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;2BAIjD,UAAU,CAAC,gBAAgB,CAAC;wBAI5B,YAAY,CAAC,MAAM,CAAC;0BA7eV,mBAAmB;wCAI4C,iBAAiB;oCAAjB,iBAAiB;+BAAjB,iBAAiB;0CAAjB,iBAAiB"}
package/src/async-flow.js CHANGED
@@ -10,7 +10,14 @@ import { prepareBijection } from './bijection.js';
10
10
  import { LogEntryShape, FlowStateShape } from './type-guards.js';
11
11
 
12
12
  /**
13
- * @import { WeakMapStore } from '@agoric/store'
13
+ * @import {WeakMapStore} from '@agoric/store'
14
+ * @import {PromiseKit} from '@endo/promise-kit'
15
+ * @import {Zone} from '@agoric/base-zone'
16
+ * @import {MapStore} from '@agoric/store';
17
+ * @import {LogStore} from '../src/log-store.js';
18
+ * @import {Bijection} from '../src/bijection.js';
19
+ * @import {FlowState, GuestAsyncFunc, HostAsyncFuncWrapper, PreparationOptions} from '../src/types.js';
20
+ * @import {ReplayMembrane} from '../src/replay-membrane.js';
14
21
  */
15
22
 
16
23
  const { defineProperties } = Object;
@@ -25,4 +25,5 @@ export type Bijection = ReturnType<ReturnType<(zone: Zone) => () => import("@end
25
25
  guestToHost(g: any): any;
26
26
  hostToGuest(h: any): any;
27
27
  }>>>;
28
+ import type { Zone } from '@agoric/base-zone';
28
29
  //# sourceMappingURL=bijection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bijection.d.ts","sourceRoot":"","sources":["bijection.js"],"names":[],"mappings":"AA0DO;;;;;;;;GAoEN;0BAzEa,UAAU,QAhCb,MAAM;;;;;;;;GAgCwB;wBA6E5B,UAAU,CAAC,UAAU;;;;;;;;GAAkB,CAAC"}
1
+ {"version":3,"file":"bijection.d.ts","sourceRoot":"","sources":["bijection.js"],"names":[],"mappings":"AAgEO;;;;;;;;GAoEN;0BAzEa,UAAU,QAhCb,MAAM;;;;;;;;GAgCwB;wBA6E5B,UAAU,CAAC,UAAU;;;;;;;;GAAkB,CAAC;0BAhI9B,mBAAmB"}
package/src/bijection.js CHANGED
@@ -4,6 +4,12 @@ import { Far } from '@endo/pass-style';
4
4
  import { toPassableCap } from '@agoric/vow';
5
5
  import { makeEphemera } from './ephemera.js';
6
6
 
7
+ /**
8
+ * @import {PromiseKit} from '@endo/promise-kit'
9
+ * @import {Zone} from '@agoric/base-zone'
10
+ * @import {Ephemera} from './types.js';
11
+ */
12
+
7
13
  const BijectionI = M.interface('Bijection', {
8
14
  reset: M.call().returns(),
9
15
  init: M.call(M.any(), M.any()).returns(),
package/src/convert.d.ts CHANGED
@@ -2,4 +2,5 @@ export function makeConvertKit(bijection: any, makeGuestForHostRemotable: any, m
2
2
  guestToHost: (specimen: Passable, label?: string | undefined) => any;
3
3
  hostToGuest: (specimen: Passable, label?: string | undefined) => any;
4
4
  };
5
+ import type { Passable } from '@endo/pass-style';
5
6
  //# sourceMappingURL=convert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["convert.js"],"names":[],"mappings":"AA2EO;;;EAsDN"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["convert.js"],"names":[],"mappings":"AA+EO;;;EAsDN;8BAxH0B,kBAAkB"}
package/src/convert.js CHANGED
@@ -10,6 +10,10 @@ import {
10
10
  import { isVow } from '@agoric/vow/src/vow-utils.js';
11
11
  import { objectMap } from '@endo/common/object-map.js';
12
12
 
13
+ /**
14
+ * @import {Passable} from '@endo/pass-style'
15
+ */
16
+
13
17
  const makeConvert = (convertRemotable, convertPromiseOrVow, convertError) => {
14
18
  const convertRecur = (specimen, label) => {
15
19
  // Open code the synchronous part of applyLabelingError, because
package/src/ephemera.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export function makeEphemera<S extends WeakKey = WeakKey, V extends unknown = any>(reinit: (self: S) => V): Ephemera<S, V>;
2
+ import type { Ephemera } from './types.js';
2
3
  //# sourceMappingURL=ephemera.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ephemera.d.ts","sourceRoot":"","sources":["ephemera.js"],"names":[],"mappings":"AAkBO,6BAFe,CAAC,4BAAC,CAAC,gCADd,CAAC,IAAI,EACM,CAAC,AADJ,KACK,CAAC,AADA,GACZ,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAiBzB"}
1
+ {"version":3,"file":"ephemera.d.ts","sourceRoot":"","sources":["ephemera.js"],"names":[],"mappings":"AAwBO,6BAFe,CAAC,4BAAC,CAAC,gCADd,CAAC,IAAI,EACM,CAAC,AADJ,KACK,CAAC,AADA,kBAkBxB;8BApC0B,YAAY"}
package/src/ephemera.js CHANGED
@@ -1,3 +1,9 @@
1
+ /**
2
+ * @import {PromiseKit} from '@endo/promise-kit'
3
+ * @import {Zone} from '@agoric/base-zone'
4
+ * @import {Ephemera} from './types.js';
5
+ */
6
+
1
7
  /**
2
8
  * Used by a possibly-durable exo to store per-instance ephemeral state.
3
9
  * Each ephemera is created at the exo class prepare level, and then
@@ -7,7 +7,7 @@ export function prepareLogStore(zone: Zone): () => import("@endo/exo").Guarded<{
7
7
  peekEntry(): LogEntry;
8
8
  nextEntry(): LogEntry;
9
9
  pushEntry(entry: any): number;
10
- dump(): ([op: "doFulfill", vow: Vow<Passable>, fulfillment: Passable] | [op: "doReject", vow: Vow<Passable>, reason: Passable] | [op: "doReturn", callIndex: number, result: Passable] | [op: "doThrow", callIndex: number, problem: Passable] | [op: "checkCall", target: Passable, optVerb: PropertyKey | undefined, args: Passable[], callIndex: number])[];
10
+ dump(): ([op: "doFulfill", vow: import("@agoric/vow").Vow<import("@endo/pass-style").Passable>, fulfillment: import("@endo/pass-style").Passable] | [op: "doReject", vow: import("@agoric/vow").Vow<import("@endo/pass-style").Passable>, reason: import("@endo/pass-style").Passable] | [op: "doReturn", callIndex: number, result: import("@endo/pass-style").Passable] | [op: "doThrow", callIndex: number, problem: import("@endo/pass-style").Passable] | [op: "checkCall", target: import("@endo/pass-style").Passable, optVerb: PropertyKey | undefined, args: import("@endo/pass-style").Passable[], callIndex: number])[];
11
11
  promiseReplayDone(): Promise<undefined>;
12
12
  }>;
13
13
  export type LogStore = ReturnType<ReturnType<(zone: Zone) => () => import("@endo/exo").Guarded<{
@@ -19,7 +19,9 @@ export type LogStore = ReturnType<ReturnType<(zone: Zone) => () => import("@endo
19
19
  peekEntry(): LogEntry;
20
20
  nextEntry(): LogEntry;
21
21
  pushEntry(entry: any): number;
22
- dump(): ([op: "doFulfill", vow: Vow<Passable>, fulfillment: Passable] | [op: "doReject", vow: Vow<Passable>, reason: Passable] | [op: "doReturn", callIndex: number, result: Passable] | [op: "doThrow", callIndex: number, problem: Passable] | [op: "checkCall", target: Passable, optVerb: PropertyKey | undefined, args: Passable[], callIndex: number])[];
22
+ dump(): ([op: "doFulfill", vow: import("@agoric/vow").Vow<import("@endo/pass-style").Passable>, fulfillment: import("@endo/pass-style").Passable] | [op: "doReject", vow: import("@agoric/vow").Vow<import("@endo/pass-style").Passable>, reason: import("@endo/pass-style").Passable] | [op: "doReturn", callIndex: number, result: import("@endo/pass-style").Passable] | [op: "doThrow", callIndex: number, problem: import("@endo/pass-style").Passable] | [op: "checkCall", target: import("@endo/pass-style").Passable, optVerb: PropertyKey | undefined, args: import("@endo/pass-style").Passable[], callIndex: number])[];
23
23
  promiseReplayDone(): Promise<undefined>;
24
24
  }>>>;
25
+ import type { Zone } from '@agoric/base-zone';
26
+ import type { LogEntry } from './types.js';
25
27
  //# sourceMappingURL=log-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-store.d.ts","sourceRoot":"","sources":["log-store.js"],"names":[],"mappings":"AA4BO;;;;;;;;;;;GAoIN;uBAGY,UAAU,CAAC,UAAU;;;;;;;;;;;GAAiB,CAAC"}
1
+ {"version":3,"file":"log-store.d.ts","sourceRoot":"","sources":["log-store.js"],"names":[],"mappings":"AA+BO;;;;;;;;;;;GAoIN;uBAGY,UAAU,CAAC,UAAU;;;;;;;;;;;GAAiB,CAAC;0BA9J7B,mBAAmB;8BAEL,YAAY"}
package/src/log-store.js CHANGED
@@ -5,7 +5,10 @@ import { LogEntryShape } from './type-guards.js';
5
5
  import { makeEphemera } from './ephemera.js';
6
6
 
7
7
  /**
8
- * @import {MapStore} from '@agoric/store'
8
+ * @import {PromiseKit} from '@endo/promise-kit'
9
+ * @import {Zone} from '@agoric/base-zone'
10
+ * @import {MapStore} from '@agoric/store';
11
+ * @import {Ephemera, LogEntry} from './types.js';
9
12
  */
10
13
 
11
14
  const LogStoreI = M.interface('LogStore', {
@@ -7,7 +7,7 @@ export function makeReplayMembrane(log: import("@endo/exo").Guarded<{
7
7
  peekEntry(): LogEntry;
8
8
  nextEntry(): LogEntry;
9
9
  pushEntry(entry: any): number;
10
- dump(): ([op: "doFulfill", vow: Vow<Passable>, fulfillment: Passable] | [op: "doReject", vow: Vow<Passable>, reason: Passable] | [op: "doReturn", callIndex: number, result: Passable] | [op: "doThrow", callIndex: number, problem: Passable] | [op: "checkCall", target: Passable, optVerb: PropertyKey | undefined, args: Passable[], callIndex: number])[];
10
+ dump(): ([op: "doFulfill", vow: Vow<import("@endo/pass-style").Passable>, fulfillment: import("@endo/pass-style").Passable] | [op: "doReject", vow: Vow<import("@endo/pass-style").Passable>, reason: import("@endo/pass-style").Passable] | [op: "doReturn", callIndex: number, result: import("@endo/pass-style").Passable] | [op: "doThrow", callIndex: number, problem: import("@endo/pass-style").Passable] | [op: "checkCall", target: import("@endo/pass-style").Passable, optVerb: PropertyKey | undefined, args: import("@endo/pass-style").Passable[], callIndex: number])[];
11
11
  promiseReplayDone(): Promise<undefined>;
12
12
  }>, bijection: import("@endo/exo").Guarded<{
13
13
  reset(): void;
@@ -19,33 +19,17 @@ export function makeReplayMembrane(log: import("@endo/exo").Guarded<{
19
19
  hostToGuest(h: any): any;
20
20
  }>, vowTools: {
21
21
  when: <T, TResult1 = import("@agoric/vow").EUnwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").EUnwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
22
- /**
23
- * When replaying, this comes from interpreting the log.
24
- * Otherwise, it is triggered by a watcher watching hostVow,
25
- * that must also log it.
26
- *
27
- * @param {HostVow} hostVow
28
- * @param {Host} hostFulfillment
29
- */
30
22
  watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = never, C = any>(specimenP: import("@agoric/vow").ERef<T_1 | Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: C | undefined) => Vow<Exclude<TResult1_1, void> | Exclude<TResult2_1, void> extends never ? TResult1_1 : Exclude<TResult1_1, void> | Exclude<TResult2_1, void>>;
31
- /**
32
- * When replaying, this comes from interpreting the log.
33
- * Otherwise, it is triggered by a watcher watching hostVow,
34
- * that must also log it.
35
- *
36
- * @param {HostVow} hostVow
37
- * @param {Host} hostFulfillment
38
- */
39
23
  makeVowKit: <T_2>() => import("@agoric/vow").VowKit<T_2>;
40
24
  allVows: (vows: unknown[]) => Vow<any[]>;
41
25
  }, watchWake: (vowish: Promise<any> | Vow) => void, panic: (problem: Error) => never): {
42
- hostToGuest: (specimen: Passable, label?: string | undefined) => any;
43
- guestToHost: (specimen: Passable, label?: string | undefined) => any;
26
+ hostToGuest: (specimen: import("@endo/pass-style").Passable, label?: string | undefined) => any;
27
+ guestToHost: (specimen: import("@endo/pass-style").Passable, label?: string | undefined) => any;
44
28
  wake: () => void;
45
29
  stop: () => void;
46
30
  } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
47
- hostToGuest: (specimen: Passable, label?: string | undefined) => any;
48
- guestToHost: (specimen: Passable, label?: string | undefined) => any;
31
+ hostToGuest: (specimen: import("@endo/pass-style").Passable, label?: string | undefined) => any;
32
+ guestToHost: (specimen: import("@endo/pass-style").Passable, label?: string | undefined) => any;
49
33
  wake: () => void;
50
34
  stop: () => void;
51
35
  }>;
@@ -58,7 +42,7 @@ export type ReplayMembrane = ReturnType<(log: import("@endo/exo").Guarded<{
58
42
  peekEntry(): LogEntry;
59
43
  nextEntry(): LogEntry;
60
44
  pushEntry(entry: any): number;
61
- dump(): ([op: "doFulfill", vow: Vow<Passable>, fulfillment: Passable] | [op: "doReject", vow: Vow<Passable>, reason: Passable] | [op: "doReturn", callIndex: number, result: Passable] | [op: "doThrow", callIndex: number, problem: Passable] | [op: "checkCall", target: Passable, optVerb: PropertyKey | undefined, args: Passable[], callIndex: number])[];
45
+ dump(): ([op: "doFulfill", vow: Vow<import("@endo/pass-style").Passable>, fulfillment: import("@endo/pass-style").Passable] | [op: "doReject", vow: Vow<import("@endo/pass-style").Passable>, reason: import("@endo/pass-style").Passable] | [op: "doReturn", callIndex: number, result: import("@endo/pass-style").Passable] | [op: "doThrow", callIndex: number, problem: import("@endo/pass-style").Passable] | [op: "checkCall", target: import("@endo/pass-style").Passable, optVerb: PropertyKey | undefined, args: import("@endo/pass-style").Passable[], callIndex: number])[];
62
46
  promiseReplayDone(): Promise<undefined>;
63
47
  }>, bijection: import("@endo/exo").Guarded<{
64
48
  reset(): void;
@@ -70,34 +54,20 @@ export type ReplayMembrane = ReturnType<(log: import("@endo/exo").Guarded<{
70
54
  hostToGuest(h: any): any;
71
55
  }>, vowTools: {
72
56
  when: <T, TResult1 = import("@agoric/vow").EUnwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").EUnwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
73
- /**
74
- * When replaying, this comes from interpreting the log.
75
- * Otherwise, it is triggered by a watcher watching hostVow,
76
- * that must also log it.
77
- *
78
- * @param {HostVow} hostVow
79
- * @param {Host} hostFulfillment
80
- */
81
57
  watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = never, C = any>(specimenP: import("@agoric/vow").ERef<T_1 | Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: C | undefined) => Vow<Exclude<TResult1_1, void> | Exclude<TResult2_1, void> extends never ? TResult1_1 : Exclude<TResult1_1, void> | Exclude<TResult2_1, void>>;
82
- /**
83
- * When replaying, this comes from interpreting the log.
84
- * Otherwise, it is triggered by a watcher watching hostVow,
85
- * that must also log it.
86
- *
87
- * @param {HostVow} hostVow
88
- * @param {Host} hostFulfillment
89
- */
90
58
  makeVowKit: <T_2>() => import("@agoric/vow").VowKit<T_2>;
91
59
  allVows: (vows: unknown[]) => Vow<any[]>;
92
60
  }, watchWake: (vowish: Promise<any> | Vow) => void, panic: (problem: Error) => never) => {
93
- hostToGuest: (specimen: Passable, label?: string | undefined) => any;
94
- guestToHost: (specimen: Passable, label?: string | undefined) => any;
61
+ hostToGuest: (specimen: import("@endo/pass-style").Passable, label?: string | undefined) => any;
62
+ guestToHost: (specimen: import("@endo/pass-style").Passable, label?: string | undefined) => any;
95
63
  wake: () => void;
96
64
  stop: () => void;
97
65
  } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
98
- hostToGuest: (specimen: Passable, label?: string | undefined) => any;
99
- guestToHost: (specimen: Passable, label?: string | undefined) => any;
66
+ hostToGuest: (specimen: import("@endo/pass-style").Passable, label?: string | undefined) => any;
67
+ guestToHost: (specimen: import("@endo/pass-style").Passable, label?: string | undefined) => any;
100
68
  wake: () => void;
101
69
  stop: () => void;
102
70
  }>>;
71
+ import type { LogEntry } from '../src/types.js';
72
+ import type { Vow } from '@agoric/vow';
103
73
  //# sourceMappingURL=replay-membrane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replay-membrane.d.ts","sourceRoot":"","sources":["replay-membrane.js"],"names":[],"mappings":"AAqBO;;;;;;;;;;;;;;;;;;;;wFATuC,CAAC;IA4B7C;;;;;;;OAOG;;IAPH;;;;;;;OAOG;;oBAbM,SAAS;8CAhBkB,IAAI,SAC/B,CAAC,OAAO,EAAE,KAAK,KAAK,KAAK;;;;;;;;;;GAqdnC;6BAGa,UAAU;;;;;;;;;;;;;;;;;;;;wFA/dsB,CAAC;IA4B7C;;;;;;;OAOG;;IAPH;;;;;;;OAOG;;oBAbM,SAAS;2DAfT,CAAC,OAAO,EAAE,KAAK,KAAK,KAAK;;;;;;;;;;GAwdQ"}
1
+ {"version":3,"file":"replay-membrane.d.ts","sourceRoot":"","sources":["replay-membrane.js"],"names":[],"mappings":"AA2BO;;;;;;;;;;;;;;;;;;;;wFAhBA,CAAC;;;oBAaG,SAAS;8CAAkB,IAAI,SAC/B,CAAC,OAAO,EAAE,KAAK,KAAK,KAAK;;;;;;;;;;GAqdnC;6BAGa,UAAU;;;;;;;;;;;;;;;;;;;;wFAtejB,CAAC;;;oBAaG,SAAS;2DACT,CAAC,OAAO,EAAE,KAAK,KAAK,KAAK;;;;;;;;;;GAwdQ;8BAleO,iBAAiB;yBAJpC,aAAa"}
@@ -8,6 +8,12 @@ import { makeConvertKit } from './convert.js';
8
8
 
9
9
  /**
10
10
  * @import {PromiseKit} from '@endo/promise-kit'
11
+ * @import {Zone} from '@agoric/base-zone';
12
+ * @import {Vow, VowTools} from '@agoric/vow'
13
+ * @import {AsyncFlow} from '../src/async-flow.js'
14
+ * @import {LogStore} from '../src/log-store.js';
15
+ * @import {Bijection} from '../src/bijection.js';
16
+ * @import {Host, HostVow, LogEntry, Outcome} from '../src/types.js';
11
17
  */
12
18
 
13
19
  const { fromEntries, defineProperties, assign } = Object;
package/src/types.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- type FlowState = "Running" | "Sleeping" | "Replaying" | "Failed" | "Done";
2
- type Guest<T extends Passable = Passable> = T;
3
- type Host<T extends Passable = Passable> = T;
1
+ export type FlowState = "Running" | "Sleeping" | "Replaying" | "Failed" | "Done";
2
+ export type Guest<T extends Passable = Passable> = T;
3
+ export type Host<T extends Passable = Passable> = T;
4
4
  /**
5
5
  * A HostVow must be durably storable. It corresponds to an
6
6
  * ephemeral guest promise.
7
7
  */
8
- type HostVow<T extends Passable = Passable> = import("@endo/pass-style").PassStyled<"tagged", "Vow"> & {
8
+ export type HostVow<T extends Passable = Passable> = import("@endo/pass-style").PassStyled<"tagged", "Vow"> & {
9
9
  payload: import("@agoric/vow").VowPayload<T>;
10
10
  };
11
- type GuestAsyncFunc = (...activationArgs: Guest[]) => Guest<Promise<any>>;
12
- type HostAsyncFuncWrapper = (...activationArgs: Host[]) => HostVow;
13
- type PreparationOptions = {
11
+ export type GuestAsyncFunc = (...activationArgs: Guest[]) => Guest<Promise<any>>;
12
+ export type HostAsyncFuncWrapper = (...activationArgs: Host[]) => HostVow;
13
+ export type PreparationOptions = {
14
14
  vowTools?: {
15
15
  when: <T, TResult1 = import("@agoric/vow").EUnwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").EUnwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
16
16
  watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = never, C = any>(specimenP: import("@agoric/vow").ERef<T_1 | Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: C | undefined) => Vow<Exclude<TResult1_1, void> | Exclude<TResult2_1, void> extends never ? TResult1_1 : Exclude<TResult1_1, void> | Exclude<TResult2_1, void>>;
@@ -39,15 +39,15 @@ type PreparationOptions = {
39
39
  hostToGuest(h: any): any;
40
40
  }>) | undefined;
41
41
  };
42
- type OutcomeKind = "return" | "throw";
43
- type Outcome = {
42
+ export type OutcomeKind = "return" | "throw";
43
+ export type Outcome = {
44
44
  kind: "return";
45
45
  result: any;
46
46
  } | {
47
47
  kind: "throw";
48
48
  problem: any;
49
49
  };
50
- type Ephemera<S extends WeakKey = WeakKey, V extends unknown = any> = {
50
+ export type Ephemera<S extends WeakKey = WeakKey, V extends unknown = any> = {
51
51
  for: (self: S) => V;
52
52
  resetFor: (self: S) => void;
53
53
  };
@@ -56,15 +56,9 @@ type Ephemera<S extends WeakKey = WeakKey, V extends unknown = any> = {
56
56
  * See comment below for the commented-out typedef for the full
57
57
  * membrane log entry, which we do not yet support.
58
58
  */
59
- type LogEntry = [// ///////////////// From Host to Guest /////////////////////////
59
+ export type LogEntry = [// ///////////////// From Host to Guest /////////////////////////
60
60
  op: "doFulfill", vow: HostVow, fulfillment: Host] | [op: "doReject", vow: HostVow, reason: Host] | [op: "doReturn", callIndex: number, result: Host] | [op: "doThrow", callIndex: number, problem: Host] | [// ///////////////////// From Guest to Host /////////////////////////
61
61
  op: "checkCall", target: Host, optVerb: PropertyKey | undefined, args: Host[], callIndex: number];
62
- import type { PromiseKit } from '@endo/promise-kit';
63
62
  import type { Passable } from '@endo/pass-style';
64
- import type { Zone } from '@agoric/base-zone';
65
63
  import type { Vow } from '@agoric/vow';
66
- import type { VowTools } from '@agoric/vow';
67
- import type { LogStore } from './log-store.js';
68
- import type { Bijection } from './bijection.js';
69
- import type { ReplayMembrane } from './replay-membrane.js';
70
64
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":"iBAWa,SAAS,GACrB,UAAsB,GACtB,WAAuB,GACvB,QAAoB,GACpB,MAAkB;WAMN,CAAC,gCAAD,CAAC;UAKD,CAAC,gCAAD,CAAC;;;;;aAQQ,CAAC;;;sBAIV,CAAC,GAAG,cAAc,EAAE,KAAK,EAAE,KAAK,KAAK,cAAS;4BAI9C,CAAC,GAAG,cAAc,EAAE,IAAI,EAAE,KAAK,OAAO;;;4FA1BlD,CAAA;;;wBA0BW,SAAQ;;;;;;;;;;;;;;;;;;;;;;;;mBAWP,QAAQ,GAAC,OAAO;eAIhB;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAC,GAC7B;IAAC,IAAI,EAAE,OAAO,CAAC;IAAE,OAAO,EAAE,GAAG,CAAA;CAAC;cAStB,CAAC,4BADK,CAAC;SAAd,CAAC,IAAI,EACE,CAAC,AADA,KAAK,CAAC;cACd,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI;;;;;;;gBAQlB,CAAE,iEAAiE;AAC/E,EAAQ,EAAE,WAAW,EACrB,GAAS,EAAE,OAAO,EAClB,WAAiB,EAAE,IAAI,CAClB,GAAG,CACR,EAAQ,EAAE,UAAU,EACpB,GAAS,EAAE,OAAO,EAClB,MAAY,EAAE,IAAI,CACb,GAAG,CACR,EAAQ,EAAE,UAAU,EACpB,SAAe,EAAE,MAAM,EACvB,MAAY,EAAE,IAAI,CACb,GAAG,CACR,EAAQ,EAAE,SAAS,EACnB,SAAe,EAAE,MAAM,EACvB,OAAa,EAAE,IAAI,CACd,GAAG,CAAE,qEAAqE;AAC/E,EAAQ,EAAE,WAAW,EACrB,MAAY,EAAE,IAAI,EAClB,OAAa,EAAE,WAAW,GAAC,SAAS,EACpC,IAAU,EAAE,IAAI,EAAE,EAClB,SAAe,EAAE,MAAM,CAClB;gCAhGuB,mBAAmB;8BACrB,kBAAkB;0BACtB,mBAAmB;yBACV,aAAa;8BAAb,aAAa;8BAClB,gBAAgB;+BACf,gBAAgB;oCACX,sBAAsB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":"wBAaa,SAAS,GACrB,UAAsB,GACtB,WAAuB,GACvB,QAAoB,GACpB,MAAkB;kBAMN,CAAC,gCAAD,CAAC;iBAKD,CAAC,gCAAD,CAAC;;;;;oBAQQ,CAAC;;;6BAIV,CAAC,GAAG,cAAc,EAAE,KAAK,EAAE,KAAK,KAAK,cAAS;mCAI9C,CAAC,GAAG,cAAc,EAAE,IAAI,EAAE,KAAK,OAAO;;;4FA1B1C,CAAC;;;wBA0BU,SAAS;;;;;;;;;;;;;;;;;;;;;;;;0BAWhB,QAAQ,GAAC,OAAO;sBAIhB;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAC,GAC7B;IAAC,IAAI,EAAE,OAAO,CAAC;IAAE,OAAO,EAAE,GAAG,CAAA;CAAC;qBAStB,CAAC,4BADK,CAAC;SAAd,CAAC,IAAI,EACE,CAAC,AADA,KAAK,CAAC;cACd,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI;;;;;;;uBAQlB,CAAE,iEAAiE;AAC/E,EAAQ,EAAE,WAAW,EACrB,GAAS,EAAE,OAAO,EAClB,WAAiB,EAAE,IAAI,CAClB,GAAG,CACR,EAAQ,EAAE,UAAU,EACpB,GAAS,EAAE,OAAO,EAClB,MAAY,EAAE,IAAI,CACb,GAAG,CACR,EAAQ,EAAE,UAAU,EACpB,SAAe,EAAE,MAAM,EACvB,MAAY,EAAE,IAAI,CACb,GAAG,CACR,EAAQ,EAAE,SAAS,EACnB,SAAe,EAAE,MAAM,EACvB,OAAa,EAAE,IAAI,CACd,GAAG,CAAE,qEAAqE;AAC/E,EAAQ,EAAE,WAAW,EACrB,MAAY,EAAE,IAAI,EAClB,OAAa,EAAE,WAAW,GAAC,SAAS,EACpC,IAAU,EAAE,IAAI,EAAE,EAClB,SAAe,EAAE,MAAM,CAClB;8BA/FqB,kBAAkB;yBAEb,aAAa"}
package/src/types.js CHANGED
@@ -1,5 +1,7 @@
1
+ // Ensure this is a module.
2
+ export {};
3
+
1
4
  /**
2
- * @import {PromiseKit} from '@endo/promise-kit'
3
5
  * @import {Passable} from '@endo/pass-style'
4
6
  * @import {Zone} from '@agoric/base-zone'
5
7
  * @import {Vow, VowTools} from '@agoric/vow'
@@ -16,6 +16,12 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
16
16
 
17
17
  import { prepareAsyncFlowTools } from '../src/async-flow.js';
18
18
 
19
+ /**
20
+ * @import {PromiseKit} from '@endo/promise-kit'
21
+ * @import {Zone} from '@agoric/base-zone'
22
+ * @import {Ephemera} from './types.js';
23
+ */
24
+
19
25
  const neverSettlesP = new Promise(() => {});
20
26
 
21
27
  /**
@@ -18,6 +18,8 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
18
18
  import { prepareAsyncFlowTools } from '../src/async-flow.js';
19
19
 
20
20
  /**
21
+ * @import {Zone} from '@agoric/base-zone';
22
+ * @import {Vow, VowTools} from '@agoric/vow'
21
23
  * @import {AsyncFlow} from '../src/async-flow.js'
22
24
  */
23
25
 
@@ -9,6 +9,12 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
9
9
 
10
10
  import { prepareAsyncFlowTools } from '../src/async-flow.js';
11
11
 
12
+ /**
13
+ * @import {Zone} from '@agoric/base-zone';
14
+ * @import {Vow, VowTools} from '@agoric/vow'
15
+ * @import {AsyncFlow} from '../src/async-flow.js'
16
+ */
17
+
12
18
  const { apply } = Reflect;
13
19
 
14
20
  /**
@@ -21,6 +21,9 @@ import { prepareAsyncFlowTools } from '../src/async-flow.js';
21
21
 
22
22
  /**
23
23
  * @import {AsyncFlow} from '../src/async-flow.js'
24
+ * @import {Vow, VowTools} from '@agoric/vow'
25
+ * @import {PromiseKit} from '@endo/promise-kit'
26
+ * @import {Zone} from '@agoric/base-zone'
24
27
  */
25
28
 
26
29
  /**
@@ -17,6 +17,11 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
17
17
 
18
18
  import { prepareAsyncFlowTools } from '../src/async-flow.js';
19
19
 
20
+ /**
21
+ * @import {PromiseKit} from '@endo/promise-kit'
22
+ * @import {Zone} from '@agoric/base-zone'
23
+ */
24
+
20
25
  const nonPassableFunc = () => 'non-passable-function';
21
26
  harden(nonPassableFunc);
22
27
  const guestCreatedPromise = harden(Promise.resolve('guest-created'));
@@ -15,6 +15,12 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
15
15
 
16
16
  import { prepareBijection } from '../src/bijection.js';
17
17
 
18
+ /**
19
+ * @import {PromiseKit} from '@endo/promise-kit'
20
+ * @import {Zone} from '@agoric/base-zone'
21
+ * @import {Ephemera} from './types.js';
22
+ */
23
+
18
24
  /**
19
25
  * @param {any} t
20
26
  * @param {Zone} zone
@@ -18,6 +18,11 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
18
18
  import { makeConvertKit } from '../src/convert.js';
19
19
  import { prepareBijection } from '../src/bijection.js';
20
20
 
21
+ /**
22
+ * @import {PromiseKit} from '@endo/promise-kit'
23
+ * @import {Zone} from '@agoric/base-zone'
24
+ */
25
+
21
26
  /**
22
27
  * @param {any} t
23
28
  * @param {Zone} zone
@@ -18,6 +18,10 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
18
18
  import { prepareBijection } from '../src/bijection.js';
19
19
  import { makeEquate } from '../src/equate.js';
20
20
 
21
+ /**
22
+ * @import {Zone} from '@agoric/base-zone'
23
+ */
24
+
21
25
  /**
22
26
  * @param {any} t
23
27
  * @param {Zone} zone
@@ -14,6 +14,14 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
14
14
 
15
15
  import { prepareLogStore } from '../src/log-store.js';
16
16
 
17
+ /**
18
+ * @import {PromiseKit} from '@endo/promise-kit'
19
+ * @import {Zone} from '@agoric/base-zone'
20
+ * @import {Vow, VowTools} from '@agoric/vow'
21
+ * @import {LogStore} from '../src/log-store.js';
22
+ * @import {Bijection} from '../src/bijection.js';
23
+ */
24
+
17
25
  /**
18
26
  * @param {any} t
19
27
  * @param {Zone} zone
@@ -18,6 +18,13 @@ import { prepareLogStore } from '../src/log-store.js';
18
18
  import { prepareBijection } from '../src/bijection.js';
19
19
  import { makeReplayMembrane } from '../src/replay-membrane.js';
20
20
 
21
+ /**
22
+ * @import {PromiseKit} from '@endo/promise-kit'
23
+ * @import {Zone} from '@agoric/base-zone'
24
+ * @import {LogStore} from '../src/log-store.js';
25
+ * @import {Bijection} from '../src/bijection.js';
26
+ */
27
+
21
28
  const watchWake = _vowish => {};
22
29
  const panic = problem => Fail`panic over ${problem}`;
23
30
 
@@ -17,6 +17,13 @@ import { prepareLogStore } from '../src/log-store.js';
17
17
  import { prepareBijection } from '../src/bijection.js';
18
18
  import { makeReplayMembrane } from '../src/replay-membrane.js';
19
19
 
20
+ /**
21
+ * @import {PromiseKit} from '@endo/promise-kit'
22
+ * @import {Zone} from '@agoric/base-zone'
23
+ * @import {LogStore} from '../src/log-store.js';
24
+ * @import {Bijection} from '../src/bijection.js';
25
+ */
26
+
20
27
  const watchWake = _vowish => {};
21
28
  const panic = problem => Fail`panic over ${problem}`;
22
29
 
@@ -17,6 +17,11 @@ import { prepareLogStore } from '../src/log-store.js';
17
17
  import { prepareBijection } from '../src/bijection.js';
18
18
  import { makeReplayMembrane } from '../src/replay-membrane.js';
19
19
 
20
+ /**
21
+ * @import {PromiseKit} from '@endo/promise-kit'
22
+ * @import {Zone} from '@agoric/base-zone'
23
+ */
24
+
20
25
  const watchWake = _vowish => {};
21
26
  const panic = problem => Fail`panic over ${problem}`;
22
27
 
@@ -18,6 +18,14 @@ import { prepareLogStore } from '../src/log-store.js';
18
18
  import { prepareBijection } from '../src/bijection.js';
19
19
  import { makeReplayMembrane } from '../src/replay-membrane.js';
20
20
 
21
+ /**
22
+ * @import {PromiseKit} from '@endo/promise-kit'
23
+ * @import {Zone} from '@agoric/base-zone'
24
+ * @import {MapStore} from '@agoric/store';
25
+ * @import {LogStore} from '../src/log-store.js';
26
+ * @import {Bijection} from '../src/bijection.js';
27
+ */
28
+
21
29
  const watchWake = _vowish => {};
22
30
  const panic = problem => Fail`panic over ${problem}`;
23
31