@agoric/internal 0.3.3-other-dev-fbe72e7.0.fbe72e7 → 0.3.3-other-dev-d15096d.0.d15096d

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.
Files changed (73) hide show
  1. package/README.md +1 -4
  2. package/package.json +7 -5
  3. package/src/batched-deliver.d.ts +6 -2
  4. package/src/batched-deliver.d.ts.map +1 -1
  5. package/src/batched-deliver.js +7 -2
  6. package/src/callback.d.ts +9 -11
  7. package/src/callback.d.ts.map +1 -1
  8. package/src/callback.js +16 -10
  9. package/src/config.d.ts +19 -0
  10. package/src/config.d.ts.map +1 -1
  11. package/src/config.js +21 -0
  12. package/src/debug.d.ts +4 -1
  13. package/src/debug.d.ts.map +1 -1
  14. package/src/debug.js +26 -13
  15. package/src/index.d.ts +1 -1
  16. package/src/index.js +9 -1
  17. package/src/js-utils.d.ts +6 -2
  18. package/src/js-utils.d.ts.map +1 -1
  19. package/src/js-utils.js +23 -1
  20. package/src/lib-chainStorage.d.ts +23 -12
  21. package/src/lib-chainStorage.d.ts.map +1 -1
  22. package/src/lib-chainStorage.js +18 -18
  23. package/src/lib-nodejs/spawnSubprocessWorker.d.ts +0 -2
  24. package/src/lib-nodejs/spawnSubprocessWorker.d.ts.map +1 -1
  25. package/src/lib-nodejs/spawnSubprocessWorker.js +5 -3
  26. package/src/lib-nodejs/waitUntilQuiescent.d.ts +3 -0
  27. package/src/lib-nodejs/waitUntilQuiescent.d.ts.map +1 -1
  28. package/src/lib-nodejs/waitUntilQuiescent.js +5 -1
  29. package/src/marshal/board-client-utils.d.ts +19 -0
  30. package/src/marshal/board-client-utils.d.ts.map +1 -0
  31. package/src/{marshal.js → marshal/board-client-utils.js} +27 -52
  32. package/src/marshal/cap-data.d.ts +3 -0
  33. package/src/marshal/cap-data.d.ts.map +1 -0
  34. package/src/marshal/cap-data.js +20 -0
  35. package/src/marshal/inaccessible-val.d.ts +2 -0
  36. package/src/marshal/inaccessible-val.d.ts.map +1 -0
  37. package/src/marshal/inaccessible-val.js +15 -0
  38. package/src/marshal/pure-data.d.ts +8 -0
  39. package/src/marshal/pure-data.d.ts.map +1 -0
  40. package/src/marshal/pure-data.js +14 -0
  41. package/src/marshal/wrap-marshaller.d.ts +33 -0
  42. package/src/marshal/wrap-marshaller.d.ts.map +1 -0
  43. package/src/marshal/wrap-marshaller.js +439 -0
  44. package/src/natural-sort.d.ts.map +1 -1
  45. package/src/natural-sort.js +47 -12
  46. package/src/node/buffer-line-transform.d.ts +10 -5
  47. package/src/node/buffer-line-transform.d.ts.map +1 -1
  48. package/src/node/buffer-line-transform.js +8 -4
  49. package/src/node/fs-stream.d.ts +4 -1
  50. package/src/node/fs-stream.d.ts.map +1 -1
  51. package/src/node/fs-stream.js +8 -6
  52. package/src/node/shutdown.d.ts.map +1 -1
  53. package/src/node/shutdown.js +2 -0
  54. package/src/priority-senders.d.ts +2 -1
  55. package/src/priority-senders.d.ts.map +1 -1
  56. package/src/priority-senders.js +6 -4
  57. package/src/ses-utils.d.ts +15 -4
  58. package/src/ses-utils.d.ts.map +1 -1
  59. package/src/ses-utils.js +112 -14
  60. package/src/storage-test-utils.d.ts +13 -3
  61. package/src/storage-test-utils.d.ts.map +1 -1
  62. package/src/storage-test-utils.js +61 -7
  63. package/src/typeGuards.d.ts +6 -2
  64. package/src/typeGuards.d.ts.map +1 -1
  65. package/src/typeGuards.js +5 -1
  66. package/src/types.d.ts +18 -17
  67. package/src/types.d.ts.map +1 -1
  68. package/src/types.ts +22 -18
  69. package/src/work-pool.d.ts +13 -0
  70. package/src/work-pool.d.ts.map +1 -0
  71. package/src/work-pool.js +233 -0
  72. package/src/marshal.d.ts +0 -33
  73. package/src/marshal.d.ts.map +0 -1
package/README.md CHANGED
@@ -7,6 +7,7 @@ This package contains code that is required by agoric-sdk and not meant to be im
7
7
  Like all `@agoric` packages it follows Semantic Versioning. Unlike the others, it will never have a stable API. In terms of [SemVer spec item 4](https://semver.org/#spec-item-4), it will never reach 1.0:
8
8
  > Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.
9
9
 
10
+ To keep down the size of [@endo/bundle-source](https://github.com/endojs/endo/tree/master/packages/bundle-source) bundles of source that imports from this package, modules that depend upon it should use deep imports (e.g., `import { defineName } from '@agoric/internal/src/js-utils.js';`) rather than importing the entire module.
10
11
 
11
12
  # Design
12
13
 
@@ -19,7 +20,3 @@ It is meant to be a home for modules that have no dependencies on other packages
19
20
  This package may not take dependencies on any others in this repository.
20
21
 
21
22
  It must never export ambient types.
22
-
23
- It should not be imported by deep imports. Eventually this will be enforced by [`exports`](https://nodejs.org/api/packages.html#exports) but the tooling isn't ready:
24
- - https://github.com/import-js/eslint-plugin-import/issues/1810
25
- - https://github.com/microsoft/TypeScript/issues/33079 (or some related problem with JSdoc types)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/internal",
3
- "version": "0.3.3-other-dev-fbe72e7.0.fbe72e7",
3
+ "version": "0.3.3-other-dev-d15096d.0.d15096d",
4
4
  "description": "Externally unsupported utilities internal to agoric-sdk",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -20,7 +20,8 @@
20
20
  "lint:types": "yarn run -T tsc"
21
21
  },
22
22
  "dependencies": {
23
- "@agoric/base-zone": "0.1.1-other-dev-fbe72e7.0.fbe72e7",
23
+ "@agoric/base-zone": "0.1.1-other-dev-d15096d.0.d15096d",
24
+ "@endo/cache-map": "^1.1.0",
24
25
  "@endo/common": "^1.2.13",
25
26
  "@endo/compartment-mapper": "^1.6.3",
26
27
  "@endo/errors": "^1.2.13",
@@ -37,9 +38,10 @@
37
38
  "jessie.js": "^0.3.4"
38
39
  },
39
40
  "devDependencies": {
40
- "@agoric/cosmic-proto": "0.4.1-other-dev-fbe72e7.0.fbe72e7",
41
+ "@agoric/cosmic-proto": "0.4.1-other-dev-d15096d.0.d15096d",
41
42
  "@endo/exo": "^1.5.12",
42
43
  "@endo/init": "^1.1.12",
44
+ "@endo/ses-ava": "^1.3.2",
43
45
  "@fast-check/ava": "^2.0.1",
44
46
  "ava": "^5.3.0",
45
47
  "tsd": "^0.33.0"
@@ -62,7 +64,7 @@
62
64
  "access": "public"
63
65
  },
64
66
  "typeCoverage": {
65
- "atLeast": 93.02
67
+ "atLeast": 92.89
66
68
  },
67
- "gitHead": "fbe72e72107f9997f788674e668c660d92ec4492"
69
+ "gitHead": "d15096dc4ff8b96e9b6cd11954c20d3a9efbb393"
68
70
  }
@@ -4,8 +4,8 @@
4
4
  /**
5
5
  * @param {DeliverMessages} deliver
6
6
  * @param {{
7
- * clearTimeout: import('node:timers').clearTimeout;
8
- * setTimeout: import('node:timers').setTimeout;
7
+ * clearTimeout: clearTimeout;
8
+ * setTimeout: setTimeout;
9
9
  * }} io
10
10
  * @param {number} batchTimeoutMs
11
11
  */
@@ -13,6 +13,10 @@ export function makeBatchedDeliver(deliver: DeliverMessages, { clearTimeout, set
13
13
  clearTimeout: typeof globalThis.clearTimeout;
14
14
  setTimeout: typeof globalThis.setTimeout;
15
15
  }, batchTimeoutMs?: number): (message: unknown[], ackNum: number) => Promise<void>;
16
+ /**
17
+ * @import {clearTimeout} from 'node:timers';
18
+ * @import {setTimeout} from 'node:timers';
19
+ */
16
20
  export const DEFAULT_BATCH_TIMEOUT_MS: 1000;
17
21
  export type DeliverMessages = (message: unknown[], ackNum: number) => Promise<void>;
18
22
  //# sourceMappingURL=batched-deliver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batched-deliver.d.ts","sourceRoot":"","sources":["batched-deliver.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;;;;;GAOG;AACH,4CAPW,eAAe,gCACf;IACN,YAAY,EAAE,8BAAkC,CAAC;IACjD,UAAU,EAAE,4BAAgC,CAAC;CAC9C,mBACO,MAAM,aATM,OAAO,EAAE,UAAU,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAiDjE;AApDD,uCAAwC,IAAI,CAAC;8BAGhC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"batched-deliver.d.ts","sourceRoot":"","sources":["batched-deliver.js"],"names":[],"mappings":"AAUA;;GAEG;AAEH;;;;;;;GAOG;AACH,4CAPW,eAAe,gCACf;IACN,YAAY,iCAAe;IAC3B,UAAU,+BAAa;CACxB,mBACO,MAAM,aATM,OAAO,EAAE,UAAU,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAiDjE;AAzDD;;;GAGG;AAEH,uCAAwC,IAAI,CAAC;8BAGhC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC"}
@@ -1,6 +1,11 @@
1
1
  // @jessie-check
2
2
  // @ts-check
3
3
 
4
+ /**
5
+ * @import {clearTimeout} from 'node:timers';
6
+ * @import {setTimeout} from 'node:timers';
7
+ */
8
+
4
9
  export const DEFAULT_BATCH_TIMEOUT_MS = 1000;
5
10
 
6
11
  /**
@@ -10,8 +15,8 @@ export const DEFAULT_BATCH_TIMEOUT_MS = 1000;
10
15
  /**
11
16
  * @param {DeliverMessages} deliver
12
17
  * @param {{
13
- * clearTimeout: import('node:timers').clearTimeout;
14
- * setTimeout: import('node:timers').setTimeout;
18
+ * clearTimeout: clearTimeout;
19
+ * setTimeout: setTimeout;
15
20
  * }} io
16
21
  * @param {number} batchTimeoutMs
17
22
  */
package/src/callback.d.ts CHANGED
@@ -5,26 +5,24 @@ export function makeFunctionCallback<I extends (...args: any[]) => any, T extend
5
5
  export function makeSyncMethodCallback<I extends (...args: any[]) => any, P extends PropertyKey, T extends { [x in P]: (...args: [...B, ...Parameters<I>]) => ReturnType<I>; } = { [x in P]: I; }, B extends any[] = []>(target: T, methodName: P, ...bound: B): SyncCallback<I>;
6
6
  export function makeMethodCallback<I extends (...args: any[]) => any, P extends PropertyKey, T extends ERef<{ [x in P]: (...args: [...B, ...Parameters<I>]) => ReturnType<I>; }> = ERef<{ [x in P]: I; }>, B extends any[] = []>(target: T, methodName: P, ...bound: B): Callback<I>;
7
7
  export function isCallback(callback: any): callback is Callback<any>;
8
- export function prepareAttenuator<M extends PropertyKey>(zone: import("@agoric/base-zone").Zone, methodNames: M[], { interfaceGuard, tag }?: {
9
- interfaceGuard?: import("@endo/patterns").InterfaceGuard<{ [K in M]: import("@endo/patterns").MethodGuard; }> | undefined;
8
+ export function prepareAttenuator<M extends PropertyKey>(zone: Zone, methodNames: M[], { interfaceGuard, tag }?: {
9
+ interfaceGuard?: InterfaceGuard<{ [K in M]: MethodGuard; }> | undefined;
10
10
  tag?: string | undefined;
11
11
  }): (args_0: {
12
12
  target?: any;
13
13
  isSync?: boolean | undefined;
14
14
  overrides?: { [K_1 in M]?: Callback<any> | null | undefined; } | undefined;
15
15
  }) => import("@endo/exo").Guarded<{ [K_2 in M]: (this: any, ...args: any[]) => any; }>;
16
- export function prepareGuardedAttenuator<G extends import("@endo/patterns").InterfaceGuard>(zone: import("@agoric/base-zone").Zone, interfaceGuard: G, opts?: {
16
+ export function prepareGuardedAttenuator<G extends InterfaceGuard>(zone: Zone, interfaceGuard: G, opts?: {
17
17
  tag?: string | undefined;
18
18
  }): MakeAttenuator<any>;
19
- export type MakeAttenuator<T extends import("@endo/exo").Methods> = (...args: Parameters<ReturnType<(<M extends PropertyKey>(zone: import("@agoric/base-zone").Zone, methodNames: M[], { interfaceGuard, tag }?: {
20
- interfaceGuard?: import("@endo/patterns").InterfaceGuard<{ [K in M]: import("@endo/patterns").MethodGuard; }> | undefined;
21
- tag?: string | undefined;
22
- }) => (args_0: {
23
- target?: any;
24
- isSync?: boolean | undefined;
25
- overrides?: { [K_1 in M]?: Callback<any> | null | undefined; } | undefined;
26
- }) => import("@endo/exo").Guarded<{ [K_2 in M]: (this: any, ...args: any[]) => any; }>)>>) => import("@endo/exo").Farable<T>;
19
+ export type MakeAttenuator<T extends Methods> = (...args: Parameters<ReturnType<typeof prepareAttenuator>>) => Farable<T>;
27
20
  import type { SyncCallback } from './types.js';
28
21
  import type { Callback } from './types.js';
29
22
  import type { ERef } from '@endo/far';
23
+ import type { Zone } from '@agoric/base-zone';
24
+ import type { MethodGuard } from '@endo/patterns';
25
+ import type { InterfaceGuard } from '@endo/patterns';
26
+ import type { Methods } from '@endo/exo';
27
+ import type { Farable } from '@endo/exo';
30
28
  //# sourceMappingURL=callback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["callback.js"],"names":[],"mappings":"AAgDO,yBALgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,YAC3B,aAAa,CAAC,CAAC,WACf,UAAU,CAAC,CAAC,CAAC,GACX,UAAU,CAAC,CAAC,CAAC,CAQzB;AAWM,sBALgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,YAC3B,SAAS,CAAC,CAAC,WACX,UAAU,CAAC,CAAC,CAAC,GACX,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAQ3C;AAaM,yCAPgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EAC+B,CAAC,SAAzD,CAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAE,MAC7C,CAAC,SAAT,GAAG,EAAG,eACT,CAAC,YACD,CAAC,GACC,aAAa,CAAC,CAAC,CAQ3B;AAaM,qCAPgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EACqC,CAAC,SAA/D,KAAM,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAE,YACnD,CAAC,SAAT,GAAG,EAAG,eACT,CAAC,YACD,CAAC,GACC,SAAS,CAAC,CAAC,CAQvB;AAiBM,uCAXgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EACX,CAAC,SAAd,WAAY,EAGnB,CAAC,SAFK,GACP,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GAC9D,MAAO,CAAC,cACS,CAAC,SAAT,GAAG,EAAG,eACT,CAAC,cACD,CAAC,YACD,CAAC,GACC,aAAa,CAAC,CAAC,CAW3B;AAiBM,mCAXgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EACX,CAAC,SAAd,WAAY,EAGlB,CAAC,SAFI,KAAM,GACb,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GAC/D,CAAE,WAAY,CAAC,eACG,CAAC,SAAT,GAAG,EAAG,eACT,CAAC,cACD,CAAC,YACD,CAAC,GACC,SAAS,CAAC,CAAC,CAWvB;AAOM,qCAHI,GAAG,GACD,QAAQ,IAAI,SAAS,GAAG,CAAC,CAcrC;AAiBM,kCAXoB,CAAC,SAAd,WAAY,QACf,OAAO,mBAAmB,EAAE,IAAI,eAEhC,CAAC,EAAE,4BAEX;IAEU,cAAc,8CADrB,CAAC;IAGkB,GAAG;CAC3B;aAgEc,GAAG;;;uDArDgB,GAAG,WAAW,GAAG,EAAE,KAAK,GAAG,KAwF5D;AAYM,yCANgD,CAAC,SAA3C,OAAQ,gBAAgB,EAAE,cAAe,QAC3C,OAAO,mBAAmB,EAAE,IAAI,kBAChC,CAAC,SAET;IAAsB,GAAG;CAAC,GAQT,cAAc,CAAC,GAAG,CAAC,CACtC;2BAxS0C,CAAC,SAA/B,OAAQ,WAAW,EAAE,OAAQ,IAC7B,CACZ,GAAO,IAAI,EAAE,UAAU,CAAC,UAAU,GAsKR,CAAC,SAAd,WAAY,QACf,OAAO,mBAAmB,EAAE,IAAI,eAEhC,CAAC,EAAE,4BAEX;IAEU,cAAc,8CADrB,CAAC;IAGkB,GAAG;CAC3B;aAgEc,GAAG;;;uDArDgB,GAAG,WAAW,GAAG,EAAE,KAAK,GAAG,MA3LP,CAAC,KAC/C,OAAO,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;kCAdI,YAAY;8BAAZ,YAAY;0BAD9B,WAAW"}
1
+ {"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["callback.js"],"names":[],"mappings":"AAuDO,yBALgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,YAC3B,aAAa,CAAC,CAAC,WACf,UAAU,CAAC,CAAC,CAAC,GACX,UAAU,CAAC,CAAC,CAAC,CAQzB;AAWM,sBALgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,YAC3B,SAAS,CAAC,CAAC,WACX,UAAU,CAAC,CAAC,CAAC,GACX,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAQ3C;AAaM,yCAPgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EAC+B,CAAC,SAAzD,CAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAE,MAC7C,CAAC,SAAT,GAAG,EAAG,eACT,CAAC,YACD,CAAC,GACC,aAAa,CAAC,CAAC,CAQ3B;AAaM,qCAPgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EACqC,CAAC,SAA/D,KAAM,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAE,YACnD,CAAC,SAAT,GAAG,EAAG,eACT,CAAC,YACD,CAAC,GACC,SAAS,CAAC,CAAC,CAQvB;AAiBM,uCAXgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EACX,CAAC,SAAd,WAAY,EAGnB,CAAC,SAFK,GACP,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GAC9D,MAAO,CAAC,cACS,CAAC,SAAT,GAAG,EAAG,eACT,CAAC,cACD,CAAC,YACD,CAAC,GACC,aAAa,CAAC,CAAC,CAW3B;AAiBM,mCAXgC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,EACX,CAAC,SAAd,WAAY,EAGlB,CAAC,SAFI,KAAM,GACb,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GAC/D,CAAE,WAAY,CAAC,eACG,CAAC,SAAT,GAAG,EAAG,eACT,CAAC,cACD,CAAC,YACD,CAAC,GACC,SAAS,CAAC,CAAC,CAWvB;AAOM,qCAHI,GAAG,GACD,QAAQ,IAAI,SAAS,GAAG,CAAC,CAcrC;AAgBM,kCAVoB,CAAC,SAAd,WAAY,QACf,IAAI,eACJ,CAAC,EAAE,4BAEX;IAEU,cAAc,qBADrB,CAAC;IAGkB,GAAG;CAC3B;aAgEc,GAAG;;;uDArDgB,GAAG,WAAW,GAAG,EAAE,KAAK,GAAG,KAwF5D;AAYM,yCANuB,CAAC,SAAlB,cAAgB,QAClB,IAAI,kBACJ,CAAC,SAET;IAAsB,GAAG;CAAC,GAQT,cAAc,CAAC,GAAG,CAAC,CACtC;2BAvSsB,CAAC,SAAX,OAAS,IACT,CACZ,GAAO,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,KACtD,QAAQ,CAAC,CAAC;kCAdwB,YAAY;8BAAZ,YAAY;0BAP/B,WAAW;0BAGX,mBAAmB;iCAEZ,gBAAgB;oCADb,gBAAgB;6BAHvB,WAAW;6BACX,WAAW"}
package/src/callback.js CHANGED
@@ -4,7 +4,14 @@ import { E } from '@endo/far';
4
4
  import { isPrimitive, isPassableSymbol } from '@endo/pass-style';
5
5
  import { getInterfaceMethodKeys } from '@endo/patterns';
6
6
 
7
- /** @import {ERef} from '@endo/far' */
7
+ /**
8
+ * @import {ERef} from '@endo/far'
9
+ * @import {Methods} from '@endo/exo';
10
+ * @import {Farable} from '@endo/exo';
11
+ * @import {Zone} from '@agoric/base-zone';
12
+ * @import {InterfaceGuard} from '@endo/patterns';
13
+ * @import {MethodGuard} from '@endo/patterns';
14
+ */
8
15
  /** @import {Callback, SyncCallback} from './types.js' */
9
16
 
10
17
  const { fromEntries } = Object;
@@ -16,10 +23,10 @@ const ownKeys =
16
23
  );
17
24
 
18
25
  /**
19
- * @template {import('@endo/exo').Methods} T
26
+ * @template {Methods} T
20
27
  * @typedef {(
21
- * ...args: Parameters<ReturnType<prepareAttenuator>>
22
- * ) => import('@endo/exo').Farable<T>} MakeAttenuator
28
+ * ...args: Parameters<ReturnType<typeof prepareAttenuator>>
29
+ * ) => Farable<T>} MakeAttenuator
23
30
  */
24
31
 
25
32
  /**
@@ -185,12 +192,11 @@ harden(isCallback);
185
192
  * Prepare an attenuator class whose methods can be redirected via callbacks.
186
193
  *
187
194
  * @template {PropertyKey} M
188
- * @param {import('@agoric/base-zone').Zone} zone The zone in which to allocate
189
- * attenuators.
195
+ * @param {Zone} zone The zone in which to allocate attenuators.
190
196
  * @param {M[]} methodNames Methods to forward.
191
197
  * @param {object} opts
192
- * @param {import('@endo/patterns').InterfaceGuard<{
193
- * [K in M]: import('@endo/patterns').MethodGuard;
198
+ * @param {InterfaceGuard<{
199
+ * [K in M]: MethodGuard;
194
200
  * }>} [opts.interfaceGuard]
195
201
  * An interface guard for the new attenuator.
196
202
  * @param {string} [opts.tag] A tag for the new attenuator exoClass.
@@ -299,8 +305,8 @@ harden(prepareAttenuator);
299
305
  /**
300
306
  * Prepare an attenuator whose methodNames are derived from the interfaceGuard.
301
307
  *
302
- * @template {import('@endo/patterns').InterfaceGuard} G
303
- * @param {import('@agoric/base-zone').Zone} zone
308
+ * @template {InterfaceGuard} G
309
+ * @param {Zone} zone
304
310
  * @param {G} interfaceGuard
305
311
  * @param {object} [opts]
306
312
  * @param {string} [opts.tag]
package/src/config.d.ts CHANGED
@@ -32,4 +32,23 @@ export namespace VBankAccount {
32
32
  export { address_1 as address };
33
33
  }
34
34
  }
35
+ /**
36
+ * ClusterName specifies a collection of networks. The specific networks
37
+ * associated with a particular name may vary from context to context, and may
38
+ * also overlap (e.g. a "local" cluster may connect to the same remote networks
39
+ * as a "testnet" cluster), but this type nevertheless supports cross-package
40
+ * coordination where the values associated with static labels are subject to
41
+ * choice of cluster. Some examples:
42
+ *
43
+ * - the chain ID for a static label like "Agoric" or "Ethereum"
44
+ * - the cryptographic hash for a static label like "BLD" or "USDC"
45
+ * - the URL for a service like "Agoric RPC" or "Axelar" or "Spectrum"
46
+ *
47
+ * "mainnet" should always include the Agoric network described by
48
+ * https://main.agoric.net/network-config rather than some other alternative.
49
+ *
50
+ * XXX This actually belongs somewhere else, possibly with refactoring.
51
+ * https://github.com/Agoric/agoric-sdk/pull/12185#discussion_r2500123226
52
+ */
53
+ export type ClusterName = "local" | "testnet" | "mainnet";
35
54
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["config.js"],"names":[],"mappings":";;;uBAkBU,CAAC,OAAO,QAAQ,EAAE,MAAM,OAAO,QAAQ,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["config.js"],"names":[],"mappings":";;;uBAuCU,CAAC,OAAO,QAAQ,EAAE,MAAM,OAAO,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BANrC,OAAO,GAAG,SAAS,GAAG,SAAS"}
package/src/config.js CHANGED
@@ -13,6 +13,27 @@
13
13
  * package are placed here.
14
14
  */
15
15
 
16
+ /**
17
+ * ClusterName specifies a collection of networks. The specific networks
18
+ * associated with a particular name may vary from context to context, and may
19
+ * also overlap (e.g. a "local" cluster may connect to the same remote networks
20
+ * as a "testnet" cluster), but this type nevertheless supports cross-package
21
+ * coordination where the values associated with static labels are subject to
22
+ * choice of cluster. Some examples:
23
+ *
24
+ * - the chain ID for a static label like "Agoric" or "Ethereum"
25
+ * - the cryptographic hash for a static label like "BLD" or "USDC"
26
+ * - the URL for a service like "Agoric RPC" or "Axelar" or "Spectrum"
27
+ *
28
+ * "mainnet" should always include the Agoric network described by
29
+ * https://main.agoric.net/network-config rather than some other alternative.
30
+ *
31
+ * XXX This actually belongs somewhere else, possibly with refactoring.
32
+ * https://github.com/Agoric/agoric-sdk/pull/12185#discussion_r2500123226
33
+ *
34
+ * @typedef {'local' | 'testnet' | 'mainnet'} ClusterName
35
+ */
36
+
16
37
  /**
17
38
  * Event source ids used by the bridge device.
18
39
  *
package/src/debug.d.ts CHANGED
@@ -1,2 +1,5 @@
1
- export function makeTracer(name: string, enable?: boolean | "verbose"): (..._args: any[]) => void;
1
+ export function makeTracer(label: string, enable?: boolean | "verbose"): ((..._args: any[]) => void) & {
2
+ sub: (subLabel: any, subEnable?: boolean | "verbose") => ((..._args: any[]) => void) & /*elided*/ any;
3
+ };
4
+ export type TraceLogger = ReturnType<typeof makeTracer>;
2
5
  //# sourceMappingURL=debug.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["debug.js"],"names":[],"mappings":"AAQO,iCAHI,MAAM,WACN,OAAO,GAAG,SAAS,6BAiC7B"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["debug.js"],"names":[],"mappings":"AAUO,kCAHI,MAAM,WACN,OAAO,GAAG,SAAS;;EAwC7B;0BAIY,UAAU,CAAC,OAAO,UAAU,CAAC"}
package/src/debug.js CHANGED
@@ -1,41 +1,54 @@
1
1
  // @jessie-check
2
2
 
3
+ // See https://github.com/Agoric/agoric-sdk/issues/11844
4
+ // See https://github.com/Agoric/agoric-sdk/issues/11845
3
5
  let debugInstance = 1;
4
6
 
5
7
  /**
6
- * @param {string} name
8
+ * @param {string} label
7
9
  * @param {boolean | 'verbose'} enable
8
10
  */
9
- export const makeTracer = (name, enable = true) => {
11
+ export const makeTracer = (label, enable = true) => {
12
+ const sub = (subLabel, subEnable = enable) =>
13
+ makeTracer(`${label}.${subLabel}`, subEnable);
14
+ const key = `----- ${label},${debugInstance} `;
10
15
  debugInstance += 1;
11
- let debugCount = 1;
12
- const key = `----- ${name}.${debugInstance} `;
13
16
  // the cases below define a named variable to provide better debug info
14
17
  switch (enable) {
15
18
  case false: {
16
19
  const logDisabled = (..._args) => {};
17
- return logDisabled;
20
+ return harden(Object.assign(logDisabled, { sub }));
18
21
  }
19
22
  case 'verbose': {
20
23
  const infoTick = (optLog, ...args) => {
21
- if (optLog.log) {
22
- console.info(key, (debugCount += 1), ...args);
24
+ // XXX Sniff tests such as this are inherently unreliable and smell bad.
25
+ // Even aside from the security hazard of
26
+ // https://github.com/Agoric/agoric-sdk/issues/11845
27
+ // an object intended as a normal logging argument may accidentally
28
+ // pass this sniff test, causing confusion.
29
+ if (typeof optLog?.log === 'function') {
30
+ console.info(key, ...args);
23
31
  } else {
24
- console.info(key, (debugCount += 1), optLog, ...args);
32
+ console.info(key, optLog, ...args);
25
33
  }
26
34
  };
27
- return infoTick;
35
+ return harden(Object.assign(infoTick, { sub }));
28
36
  }
29
37
  default: {
30
38
  const debugTick = (optLog, ...args) => {
31
- if (optLog.log) {
32
- optLog.log(key, (debugCount += 1), ...args);
39
+ // Another unreliable sniff test like the one above
40
+ if (typeof optLog?.log === 'function') {
41
+ optLog.log(key, ...args);
33
42
  } else {
34
- console.info(key, (debugCount += 1), optLog, ...args);
43
+ console.info(key, optLog, ...args);
35
44
  }
36
45
  };
37
- return debugTick;
46
+ return harden(Object.assign(debugTick, { sub }));
38
47
  }
39
48
  }
40
49
  };
41
50
  harden(makeTracer);
51
+
52
+ /**
53
+ * @typedef {ReturnType<typeof makeTracer>} TraceLogger
54
+ */
package/src/index.d.ts CHANGED
@@ -11,5 +11,5 @@ export * from "./tmpDir.js";
11
11
  export * from "./typeCheck.js";
12
12
  export * from "./typeGuards.js";
13
13
  export * from "./types-index.js";
14
- export { pureDataMarshaller } from "./marshal.js";
14
+ export { pureDataMarshaller } from "./marshal/pure-data.js";
15
15
  //# sourceMappingURL=index.d.ts.map
package/src/index.js CHANGED
@@ -2,12 +2,20 @@
2
2
 
3
3
  /// <reference types="ses" />
4
4
 
5
+ // NOTE: Because @endo/bundle-source does not do tree-shaking (at least as of
6
+ // September 2025), bundles for sources that import from '@agoric/internal' will
7
+ // include each of these files even if none of their own exports are used.
8
+ // To keep the size of bundles down, deep imports from @agoric/internal are
9
+ // preferred.
10
+ // HOWEVER, there are still occasional imports of '@agoric/internal', so be
11
+ // judicious about what to include here!
12
+
5
13
  export * from './cli-utils.js';
6
14
  export * from './config.js';
7
15
  export * from './debug.js';
8
16
  export * from './errors.js';
9
17
  export * from './js-utils.js';
10
- export { pureDataMarshaller } from './marshal.js';
18
+ export { pureDataMarshaller } from './marshal/pure-data.js';
11
19
  export * from './method-tools.js';
12
20
  export * from './metrics.js';
13
21
  export * from './natural-sort.js';
package/src/js-utils.d.ts CHANGED
@@ -3,7 +3,10 @@ export const TRUE: true;
3
3
  /**
4
4
  * @typedef {<O extends Record<string, unknown>>(
5
5
  * obj: O,
6
- * ) => { [K in keyof O]: K extends string ? [K, O[K]] : never }[keyof O][]} TypedEntries
6
+ * ) => Exclude<
7
+ * { [K in keyof O]: K extends string ? [K, O[K]] : never }[keyof O],
8
+ * undefined
9
+ * >[]} TypedEntries
7
10
  */
8
11
  export const typedEntries: TypedEntries;
9
12
  /**
@@ -26,13 +29,14 @@ export function deepCopyJsonable<T>(value: T): T;
26
29
  export function deepMapObject<O extends Record<string, unknown>, M>(obj: O, mapper: <T extends Record<string, unknown>, K extends string & keyof T>(value: T[K], name: K, record: T) => T[K] | M): O | { [K_1 in keyof O]: K_1 extends string ? O[K_1] | M : never; };
27
30
  export function defineName<F extends Function>(name: string, fn: F): F;
28
31
  export function objectMapMutable<O extends Record<string, unknown>, M>(obj: O, mapper: <K extends keyof O>(value: O[K], key: K) => M): { [K in keyof O]: K extends string ? M : never; };
32
+ export function partialMap<T, U>(arr: T[], mapOrDrop: (value: T, index: number, arr: T[]) => U | undefined | false): U[];
29
33
  export function provideLazyMap<K, V>(map: K extends WeakKey ? WeakMap<K, V> : Map<K, V>, key: K, makeValue: (key: K) => V): V;
30
34
  export function makeMeasureSeconds(currentTimeMillisec: () => number): <T>(fn: () => Promise<T>) => Promise<{
31
35
  result: T;
32
36
  duration: number;
33
37
  }>;
34
38
  export function unprefixedProperties<P extends string, K extends string, V>(obj: Record<`${P}${K}`, V>, prefix: P): Record<K, V>;
35
- export type TypedEntries = <O extends Record<string, unknown>>(obj: O) => { [K in keyof O]: K extends string ? [K, O[K]] : never; }[keyof O][];
39
+ export type TypedEntries = <O extends Record<string, unknown>>(obj: O) => Exclude<{ [K in keyof O]: K extends string ? [K, O[K]] : never; }[keyof O], undefined>[];
36
40
  export type FromTypedEntries = <const Entries extends ReadonlyArray<readonly [PropertyKey, unknown]>>(entries: Entries) => { [Entry in Entries[number] as Entry[0]]: Entry[1]; };
37
41
  export type TypedMap = <A extends unknown[], V>(arr: A, mapper: <K extends number>(el: A[K], idx: K, arr: A) => V) => V[];
38
42
  export type LogLevel = (typeof logLevels)[keyof readonly ["debug", "log", "info", "warn", "error"] & number];
@@ -1 +1 @@
1
- {"version":3,"file":"js-utils.d.ts","sourceRoot":"","sources":["js-utils.js"],"names":[],"mappings":"AASA,yEAAyE;AACzE,mBAA0C,IAAI,CAAE;AAEhD;;;;GAIG;AACH,2BAAuC,YAAY,CAAsB;AAEzE;;;;;;GAMG;AACH,+BAA2C,gBAAgB,CAEzD;AAEF;;;;;GAKG;AACH,uBAAmC,QAAQ,CAEzC;AAEF,2EAMG;AAgBI,iCAJM,CAAC,SACH,CAAC,GACC,CAAC,CAE4D;AAsEnE,8BAVgC,CAAC,SAA1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAE,EACzB,CAAC,OACH,CAAC,UACD,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EACpE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EACX,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,CAAC,KACN,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GACH,CAAC,GAAG,GAAG,GAAC,IAAI,MAAM,CAAC,GAAG,GAAC,SAAS,MAAM,GAAG,CAAC,CAAC,GAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAE,CAGO;AAgBxE,2BALiB,CAAC,SAAZ,QAAU,QACZ,MAAM,MACN,CAAC,GACC,CAAC,CAG+B;AAetC,iCANgC,CAAC,SAA1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAE,EACzB,CAAC,OACH,CAAC,UACD,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAC3C,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,GAAE,CAS5D;AAcM,+BAPM,CAAC,EACD,CAAC,OACH,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAC7C,CAAC,aACD,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GACX,CAAC,CAUb;AASM,wDAFI,MAAM,MAAM,IAIR,CAAC,MACH,MAAM,OAAO,CAAC,CAAC,CAAC,KACd,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAStD;AAaM,qCANe,CAAC,SAAV,MAAQ,EACC,CAAC,SAAV,MAAQ,EACR,CAAC,OACH,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,UACrB,CAAC,GAGC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAMtB;2BA/NU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,GAAG,EAAE,CAAC,KACH,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAE,CAAC,MAAM,CAAC,CAAC,EAAE;+BAK9D,CACZ,KAAS,CAAC,OAAO,SAAS,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAEpE,OAAO,EAAE,OAAO,KACb,GAAG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAE;uBAO/C,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC/B,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KACtD,CAAC,EAAE;uBAeG,CAAC,OAAO,SAAS,EAAE,2DAAkB,MAAM,CAAC;6BAE5C,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC"}
1
+ {"version":3,"file":"js-utils.d.ts","sourceRoot":"","sources":["js-utils.js"],"names":[],"mappings":"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"}
package/src/js-utils.js CHANGED
@@ -13,7 +13,10 @@ export const TRUE = /** @type {const} */ (true);
13
13
  /**
14
14
  * @typedef {<O extends Record<string, unknown>>(
15
15
  * obj: O,
16
- * ) => { [K in keyof O]: K extends string ? [K, O[K]] : never }[keyof O][]} TypedEntries
16
+ * ) => Exclude<
17
+ * { [K in keyof O]: K extends string ? [K, O[K]] : never }[keyof O],
18
+ * undefined
19
+ * >[]} TypedEntries
17
20
  */
18
21
  export const typedEntries = /** @type {TypedEntries} */ (Object.entries);
19
22
 
@@ -172,6 +175,25 @@ export const objectMapMutable = (obj, mapper) => {
172
175
  return /** @type {any} */ (newObj);
173
176
  };
174
177
 
178
+ /**
179
+ * Map the elements of an array to new values, skipping elements for which the
180
+ * mapping results in either `undefined` or `false`.
181
+ *
182
+ * @template T
183
+ * @template U
184
+ * @param {T[]} arr
185
+ * @param {(value: T, index: number, arr: T[]) => U | undefined | false} mapOrDrop
186
+ * @returns {U[]}
187
+ */
188
+ export const partialMap = (arr, mapOrDrop) =>
189
+ arr.reduce((results, el, i, arrArg) => {
190
+ const result = mapOrDrop(el, i, arrArg);
191
+ if (result !== undefined && result !== false) {
192
+ results.push(result);
193
+ }
194
+ return results;
195
+ }, /** @type {U[]} */ ([]));
196
+
175
197
  /**
176
198
  * Return the value from `map` associated with `key`. If there is not yet such a
177
199
  * value, get one from `makeValue(key)` and update `map` before returning the
@@ -26,17 +26,20 @@ export function makeChainStorageRoot(handleStorageMessage: (message: StorageMess
26
26
  * falling back to an inert object with the correct interface (but incomplete
27
27
  * behavior) when that is unavailable.
28
28
  *
29
- * @param {ERef<StorageNode?>} storageNodeRef
29
+ * @param {ERef<Remote<StorageNode> | null>} storageNodeRef
30
30
  * @param {string} childName
31
- * @returns {Promise<StorageNode>}
31
+ * @returns {Promise<Remote<StorageNode>>}
32
32
  */
33
- export function makeStorageNodeChild(storageNodeRef: ERef<StorageNode | null>, childName: string): Promise<StorageNode>;
33
+ export function makeStorageNodeChild(storageNodeRef: ERef<Remote<StorageNode> | null>, childName: string): Promise<Remote<StorageNode>>;
34
34
  /**
35
35
  * @import {ERef} from '@endo/far';
36
- * @import {PassableCap} from '@endo/marshal';
37
- * @import {TypedPattern} from './types.js';
36
+ * @import {Marshal, Passable} from '@endo/marshal';
37
+ * @import {Remote, ERemote, TypedPattern} from './types.js';
38
+ * @import {EMarshaller} from './marshal/wrap-marshaller.js';
39
+ * @import {Zone} from '@agoric/base-zone';
40
+ * @import {Callback} from './types.js';
38
41
  */
39
- /** @typedef {ReturnType<typeof import('@endo/marshal').makeMarshal>} Marshaller */
42
+ /** @typedef {Marshal<unknown>} Marshaller */
40
43
  /** @typedef {Pick<Marshaller, 'fromCapData'>} Unserializer */
41
44
  /**
42
45
  * Defined by vstorageStoreKey in vstorage.go
@@ -50,7 +53,8 @@ export function makeStorageNodeChild(storageNodeRef: ERef<StorageNode | null>, c
50
53
  /**
51
54
  * @template [T=unknown]
52
55
  * @typedef StreamCell
53
- * @property {string} blockHeight decimal representation of a natural number
56
+ * @property {string} blockHeight corresponding with the write of `values`
57
+ * (decimal representation of a natural number)
54
58
  * @property {T[]} values
55
59
  */
56
60
  /** @type {TypedPattern<StreamCell>} */
@@ -58,7 +62,7 @@ export const StreamCellShape: TypedPattern<StreamCell>;
58
62
  export function isStreamCell(cell: any): cell is StreamCell;
59
63
  /** @type {(name: string) => void} */
60
64
  export const assertPathSegment: (name: string) => void;
61
- export function prepareChainStorageNode(zone: import("@agoric/base-zone").Zone): (messenger: import("./types.js").Callback<(message: StorageMessage) => any>, path: string, args_2?: {
65
+ export function prepareChainStorageNode(zone: Zone): (messenger: Callback<(message: StorageMessage) => any>, path: string, args_2?: {
62
66
  sequence?: boolean | undefined;
63
67
  } | undefined) => import("@endo/exo").Guarded<{
64
68
  getPath(): string;
@@ -68,8 +72,8 @@ export function prepareChainStorageNode(zone: import("@agoric/base-zone").Zone):
68
72
  }): StorageNode;
69
73
  setValue(value: string): Promise<void>;
70
74
  }>;
71
- export function makeSerializeToStorage(storageNode: ERef<StorageNode>, marshaller: ERef<Marshaller>): (value: PassableCap) => Promise<void>;
72
- export type Marshaller = ReturnType<typeof import("@endo/marshal").makeMarshal>;
75
+ export function makeSerializeToStorage(storageNode: ERemote<StorageNode>, marshaller: ERemote<EMarshaller>): (value: Passable) => Promise<void>;
76
+ export type Marshaller = Marshal<unknown>;
73
77
  export type Unserializer = Pick<Marshaller, "fromCapData">;
74
78
  /**
75
79
  * Defined by vstorageStoreKey in vstorage.go
@@ -82,7 +86,8 @@ export type VStorageKey = {
82
86
  };
83
87
  export type StreamCell<T = unknown> = {
84
88
  /**
85
- * decimal representation of a natural number
89
+ * corresponding with the write of `values`
90
+ * (decimal representation of a natural number)
86
91
  */
87
92
  blockHeight: string;
88
93
  values: T[];
@@ -165,7 +170,13 @@ export type StorageMessage = {
165
170
  method: StorageUpdateEntriesMessageMethod;
166
171
  args: StorageUpdateEntriesMessageArgs;
167
172
  };
173
+ import type { Remote } from './types.js';
168
174
  import type { ERef } from '@endo/far';
169
175
  import type { TypedPattern } from './types.js';
170
- import type { PassableCap } from '@endo/marshal';
176
+ import type { Zone } from '@agoric/base-zone';
177
+ import type { Callback } from './types.js';
178
+ import type { ERemote } from './types.js';
179
+ import type { EMarshaller } from './marshal/wrap-marshaller.js';
180
+ import type { Passable } from '@endo/marshal';
181
+ import type { Marshal } from '@endo/marshal';
171
182
  //# sourceMappingURL=lib-chainStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib-chainStorage.d.ts","sourceRoot":"","sources":["lib-chainStorage.js"],"names":[],"mappings":"AAiPA;;;;;;;;;;;;GAYG;AACH,2DATW,CAAC,OAAO,EAAE,cAAc,KAAK,GAAG,YAGhC,MAAM,gBAEd;IAA8B,QAAQ;CAGxC;;mBAnEqB,OAAO,CAAC,WAAW,CAAC;wBAWzB,MAAM,qBACO;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,WAAW;oBAYA,MAAM,GAAK,OAAO,CAAC,IAAI,CAAC;GAqDhD;AAcD;;;;;;;;GAQG;AACH,qDAJW,KAAK,WAAW,OAAC,CAAC,aAClB,MAAM,GACJ,OAAO,CAAC,WAAW,CAAC,CAMhC;AA3RD;;;;GAIG;AAEH,mFAAmF;AACnF,8DAA8D;AAE9D;;;;;;;;GAQG;AAEH;;;;;GAKG;AAEH,uCAAuC;AACvC,8BADW,aAAa,UAAU,CAAC,CAIhC;AAwCI,mCAHI,GAAG,GACD,IAAI,IAAI,UAAU,CAOa;AAmB5C,qCAAqC;AACrC,gCADW,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAI/B;AAyCK,8CAFI,OAAO,mBAAmB,EAAE,IAAI,uDAwBxB,cAAc,KAAK,GAAG;;;;mBAiBnB,OAAO,CAAC,WAAW,CAAC;wBAWzB,MAAM,qBACO;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,WAAW;oBAYA,MAAM,GAAK,OAAO,CAAC,IAAI,CAAC;GA0BhD;AA+DM,oDAJI,KAAK,WAAW,CAAC,cACjB,KAAK,UAAU,CAAC,GACd,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAQjD;yBApSa,UAAU,CAAC,cAAc,eAAe,EAAE,WAAW,CAAC;2BACtD,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;;;;;eAM/B,MAAM;iBACN,MAAM;qBACN,MAAM;;;uBAKN,CAAC;;;;iBAED,MAAM;YACN,CAAC,EAAE;;;;;;;;;;;;;;;;cAoBH,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;;;;;aAC/B,MAAM,MAAM;;;;iBAEZ,MAAM,OAAO,CAAC,WAAW,CAAC;mBAC1B,CACT,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAC7B,WAAW;;;;;;;aA8BL,MAAM,OAAO,CAAC,MAAM,CAAC;;;;iBAErB,WAAW,CAAC,aAAa,CAAC;;;;;qBAC1B,MAAM,YAAY;;;;;4CAqBnB,KAAK,GACX,aAAa,GACb,KAAK,GACL,UAAU,GACV,SAAS,GACT,QAAQ,GACR,MAAM;;;;gDAGA,KAAK,GAAG,kBAAkB,GAAG,QAAQ;;;;mCAGrC,6BAA6B,GACnC,iCAAiC;;;;0CAG3B,CAAC,IAAI,EAAE,MAAM,CAAC;;;;2BAEd,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;;;;8CAErC,YAAY,EAAE;;;;6BAEd;IACJ,MAAM,EAAE,6BAA6B,CAAC;IACtC,IAAI,EAAE,2BAA2B,CAAC;CACnC,GACD;IACE,MAAM,EAAE,iCAAiC,CAAC;IAC1C,IAAI,EAAE,+BAA+B,CAAC;CACvC;0BApIe,WAAW;kCAEH,YAAY;iCADb,eAAe"}
1
+ {"version":3,"file":"lib-chainStorage.d.ts","sourceRoot":"","sources":["lib-chainStorage.js"],"names":[],"mappings":"AAiPA;;;;;;;;;;;;GAYG;AACH,2DATW,CAAC,OAAO,EAAE,cAAc,KAAK,GAAG,YAGhC,MAAM,gBAEd;IAA8B,QAAQ;CAGxC;;mBAnEqB,OAAO,CAAC,WAAW,CAAC;wBAWzB,MAAM,qBACO;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,WAAW;oBAYA,MAAM,GAAK,OAAO,CAAC,IAAI,CAAC;GAqDhD;AAcD;;;;;;;;GAQG;AACH,qDAJW,KAAK,OAAO,WAAW,CAAC,GAAG,IAAI,CAAC,aAChC,MAAM,GACJ,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAMxC;AA3RD;;;;;;;GAOG;AAEH,6CAA6C;AAC7C,8DAA8D;AAE9D;;;;;;;;GAQG;AAEH;;;;;;GAMG;AAEH,uCAAuC;AACvC,8BADW,aAAa,UAAU,CAAC,CAIhC;AAwCI,mCAHI,GAAG,GACD,IAAI,IAAI,UAAU,CAOa;AAmB5C,qCAAqC;AACrC,gCADW,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAI/B;AAyCK,8CAFI,IAAI,kCAqBmB,cAAc,KAAK,GAAG;;;;mBAgBlC,OAAO,CAAC,WAAW,CAAC;wBAWzB,MAAM,qBACO;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,WAAW;oBAYA,MAAM,GAAK,OAAO,CAAC,IAAI,CAAC;GA0BhD;AA+DM,oDAJI,QAAQ,WAAW,CAAC,cACpB,QAAQ,WAAW,CAAC,GAClB,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAQ9C;yBAjSa,QAAQ,OAAO,CAAC;2BAChB,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;;;;;eAM/B,MAAM;iBACN,MAAM;qBACN,MAAM;;;uBAKN,CAAC;;;;;iBAED,MAAM;YAEN,CAAC,EAAE;;;;;;;;;;;;;;;;cAoBH,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;;;;;aAC/B,MAAM,MAAM;;;;iBAEZ,MAAM,OAAO,CAAC,WAAW,CAAC;mBAC1B,CACT,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAC7B,WAAW;;;;;;;aA8BL,MAAM,OAAO,CAAC,MAAM,CAAC;;;;iBAErB,WAAW,CAAC,aAAa,CAAC;;;;;qBAC1B,MAAM,YAAY;;;;;4CAqBnB,KAAK,GACX,aAAa,GACb,KAAK,GACL,UAAU,GACV,SAAS,GACT,QAAQ,GACR,MAAM;;;;gDAGA,KAAK,GAAG,kBAAkB,GAAG,QAAQ;;;;mCAGrC,6BAA6B,GACnC,iCAAiC;;;;0CAG3B,CAAC,IAAI,EAAE,MAAM,CAAC;;;;2BAEd,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;;;;8CAErC,YAAY,EAAE;;;;6BAEd;IACJ,MAAM,EAAE,6BAA6B,CAAC;IACtC,IAAI,EAAE,2BAA2B,CAAC;CACnC,GACD;IACE,MAAM,EAAE,iCAAiC,CAAC;IAC1C,IAAI,EAAE,+BAA+B,CAAC;CACvC;4BAtIwC,YAAY;0BAFrC,WAAW;kCAEc,YAAY;0BAErC,mBAAmB;8BACf,YAAY;6BAHS,YAAY;iCAC9B,8BAA8B;8BAFxB,eAAe;6BAAf,eAAe"}