@agoric/internal 0.4.0-upgrade-14-dev-c8f9e7b.0 → 0.4.0-upgrade-16a-dev-fb592e4.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/README.md +7 -2
- package/exported.js +2 -0
- package/package.json +32 -16
- package/src/action-types.d.ts +1 -0
- package/src/action-types.d.ts.map +1 -1
- package/src/action-types.js +1 -0
- package/src/batched-deliver.d.ts +9 -6
- package/src/batched-deliver.d.ts.map +1 -1
- package/src/batched-deliver.js +9 -3
- package/src/callback.d.ts +23 -16
- package/src/callback.d.ts.map +1 -1
- package/src/callback.js +35 -39
- package/src/chain-storage-paths.d.ts +2 -3
- package/src/chain-storage-paths.d.ts.map +1 -1
- package/src/chain-storage-paths.js +2 -3
- package/src/config.d.ts +21 -12
- package/src/config.d.ts.map +1 -1
- package/src/config.js +20 -10
- package/src/debug.d.ts +1 -1
- package/src/index.d.ts +3 -0
- package/src/index.js +7 -1
- package/src/install-ses-debug.d.ts +2 -0
- package/src/install-ses-debug.d.ts.map +1 -0
- package/src/install-ses-debug.js +6 -0
- package/src/lib-chainStorage.d.ts +42 -52
- package/src/lib-chainStorage.d.ts.map +1 -1
- package/src/lib-chainStorage.js +82 -74
- package/src/lib-nodejs/engine-gc.d.ts +3 -0
- package/src/lib-nodejs/engine-gc.d.ts.map +1 -0
- package/src/lib-nodejs/engine-gc.js +22 -0
- package/src/lib-nodejs/gc-and-finalize.d.ts +2 -0
- package/src/lib-nodejs/gc-and-finalize.d.ts.map +1 -0
- package/src/lib-nodejs/gc-and-finalize.js +91 -0
- package/src/lib-nodejs/spawnSubprocessWorker.d.ts +15 -0
- package/src/lib-nodejs/spawnSubprocessWorker.d.ts.map +1 -0
- package/src/lib-nodejs/spawnSubprocessWorker.js +89 -0
- package/src/lib-nodejs/waitUntilQuiescent.d.ts +2 -0
- package/src/lib-nodejs/waitUntilQuiescent.d.ts.map +1 -0
- package/src/lib-nodejs/waitUntilQuiescent.js +18 -0
- package/src/lib-nodejs/worker-protocol.d.ts +4 -0
- package/src/lib-nodejs/worker-protocol.d.ts.map +1 -0
- package/src/lib-nodejs/worker-protocol.js +54 -0
- package/src/magic-cookie-test-only.js +2 -2
- package/src/marshal.d.ts +20 -0
- package/src/marshal.d.ts.map +1 -0
- package/src/marshal.js +138 -0
- package/src/method-tools.d.ts +1 -0
- package/src/method-tools.d.ts.map +1 -1
- package/src/method-tools.js +29 -16
- package/src/netstring.d.ts +24 -0
- package/src/netstring.d.ts.map +1 -0
- package/src/netstring.js +124 -0
- package/src/node/buffer-line-transform.d.ts +17 -13
- package/src/node/buffer-line-transform.d.ts.map +1 -1
- package/src/node/buffer-line-transform.js +11 -8
- package/src/node/fs-stream.d.ts.map +1 -1
- package/src/node/fs-stream.js +2 -3
- package/src/node/utils.d.ts +9 -0
- package/src/node/utils.d.ts.map +1 -0
- package/src/node/utils.js +46 -0
- package/src/priority-senders.d.ts +1 -1
- package/src/priority-senders.d.ts.map +1 -1
- package/src/priority-senders.js +7 -3
- package/src/queue.d.ts +1 -1
- package/src/queue.d.ts.map +1 -1
- package/src/queue.js +7 -8
- package/src/scratch.d.ts +1 -1
- package/src/scratch.d.ts.map +1 -1
- package/src/storage-test-utils.d.ts +43 -81
- package/src/storage-test-utils.d.ts.map +1 -1
- package/src/storage-test-utils.js +103 -40
- package/src/tagged.d.ts +155 -0
- package/src/testing-utils.d.ts.map +1 -1
- package/src/testing-utils.js +7 -5
- package/src/tokens.d.ts +34 -0
- package/src/tokens.d.ts.map +1 -0
- package/src/tokens.js +35 -0
- package/src/typeGuards.d.ts +2 -0
- package/src/typeGuards.d.ts.map +1 -1
- package/src/typeGuards.js +8 -0
- package/src/types.d.ts +46 -0
- package/src/types.js +2 -0
- package/src/upgrade-api.d.ts +13 -4
- package/src/upgrade-api.d.ts.map +1 -1
- package/src/upgrade-api.js +26 -18
- package/src/utils.d.ts +26 -31
- package/src/utils.d.ts.map +1 -1
- package/src/utils.js +53 -227
- package/CHANGELOG.md +0 -137
package/src/utils.js
CHANGED
|
@@ -1,162 +1,24 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
// @jessie-check
|
|
3
3
|
|
|
4
|
-
import { E } from '@endo/far';
|
|
5
4
|
import { deeplyFulfilled, isObject } from '@endo/marshal';
|
|
6
|
-
import {
|
|
5
|
+
import { makePromiseKit } from '@endo/promise-kit';
|
|
7
6
|
import { makeQueue } from '@endo/stream';
|
|
8
|
-
import { asyncGenerate
|
|
7
|
+
import { asyncGenerate } from 'jessie.js';
|
|
9
8
|
|
|
10
|
-
const {
|
|
11
|
-
const { ownKeys } = Reflect;
|
|
9
|
+
const { fromEntries, keys, values } = Object;
|
|
12
10
|
|
|
13
|
-
const {
|
|
11
|
+
const { quote: q, Fail } = assert;
|
|
14
12
|
|
|
15
13
|
export const BASIS_POINTS = 10_000n;
|
|
16
14
|
|
|
17
|
-
/** @
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Throws if multiple entries use the same property name. Otherwise acts
|
|
21
|
-
* like `Object.fromEntries` but hardens the result.
|
|
22
|
-
* Use it to protect from property names computed from user-provided data.
|
|
23
|
-
*
|
|
24
|
-
* @template K,V
|
|
25
|
-
* @param {Iterable<[K,V]>} allEntries
|
|
26
|
-
* @returns {{[k: K]: V}}
|
|
27
|
-
*/
|
|
28
|
-
export const fromUniqueEntries = allEntries => {
|
|
29
|
-
const entriesArray = [...allEntries];
|
|
30
|
-
const result = harden(fromEntries(entriesArray));
|
|
31
|
-
if (ownKeys(result).length === entriesArray.length) {
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
|
-
const names = makeSet();
|
|
35
|
-
for (const [name, _] of entriesArray) {
|
|
36
|
-
if (names.has(name)) {
|
|
37
|
-
Fail`collision on property name ${q(name)}: ${entriesArray}`;
|
|
38
|
-
}
|
|
39
|
-
names.add(name);
|
|
40
|
-
}
|
|
41
|
-
throw Fail`internal: failed to create object from unique entries`;
|
|
42
|
-
};
|
|
43
|
-
harden(fromUniqueEntries);
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* By analogy with how `Array.prototype.map` will map the elements of
|
|
47
|
-
* an array to transformed elements of an array of the same shape,
|
|
48
|
-
* `objectMap` will do likewise for the string-named own enumerable
|
|
49
|
-
* properties of an object.
|
|
50
|
-
*
|
|
51
|
-
* Typical usage applies `objectMap` to a CopyRecord, i.e.,
|
|
52
|
-
* an object for which `passStyleOf(original) === 'copyRecord'`. For these,
|
|
53
|
-
* none of the following edge cases arise. The result will be a CopyRecord
|
|
54
|
-
* with exactly the same property names, whose values are the mapped form of
|
|
55
|
-
* the original's values.
|
|
56
|
-
*
|
|
57
|
-
* When the original is not a CopyRecord, some edge cases to be aware of
|
|
58
|
-
* * No matter how mutable the original object, the returned object is
|
|
59
|
-
* hardened.
|
|
60
|
-
* * Only the string-named enumerable own properties of the original
|
|
61
|
-
* are mapped. All other properties are ignored.
|
|
62
|
-
* * If any of the original properties were accessors, `Object.entries`
|
|
63
|
-
* will cause its `getter` to be called and will use the resulting
|
|
64
|
-
* value.
|
|
65
|
-
* * No matter whether the original property was an accessor, writable,
|
|
66
|
-
* or configurable, all the properties of the returned object will be
|
|
67
|
-
* non-writable, non-configurable, data properties.
|
|
68
|
-
* * No matter what the original object may have inherited from, and
|
|
69
|
-
* no matter whether it was a special kind of object such as an array,
|
|
70
|
-
* the returned object will always be a plain object inheriting directly
|
|
71
|
-
* from `Object.prototype` and whose state is only these new mapped
|
|
72
|
-
* own properties.
|
|
73
|
-
*
|
|
74
|
-
* With these differences, even if the original object was not a CopyRecord,
|
|
75
|
-
* if all the mapped values are Passable, then the returned object will be
|
|
76
|
-
* a CopyRecord.
|
|
77
|
-
*
|
|
78
|
-
* @template {Record<string, any>} O
|
|
79
|
-
* @param {O} original
|
|
80
|
-
* @template R map result
|
|
81
|
-
* @param {(value: O[keyof O], key: keyof O) => R} mapFn
|
|
82
|
-
* @returns {{ [P in keyof O]: R}}
|
|
83
|
-
*/
|
|
84
|
-
export const objectMap = (original, mapFn) => {
|
|
85
|
-
const ents = entries(original);
|
|
86
|
-
const mapEnts = ents.map(([k, v]) => [k, mapFn(v, k)]);
|
|
87
|
-
return harden(fromEntries(mapEnts));
|
|
88
|
-
};
|
|
89
|
-
harden(objectMap);
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* @param {Array<string | symbol>} leftNames
|
|
93
|
-
* @param {Array<string | symbol>} rightNames
|
|
94
|
-
*/
|
|
95
|
-
export const listDifference = (leftNames, rightNames) => {
|
|
96
|
-
const rightSet = makeSet(rightNames);
|
|
97
|
-
return leftNames.filter(name => !rightSet.has(name));
|
|
98
|
-
};
|
|
99
|
-
harden(listDifference);
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* @param {Error} innerErr
|
|
103
|
-
* @param {string|number} label
|
|
104
|
-
* @param {ErrorConstructor} [ErrorConstructor]
|
|
105
|
-
* @returns {never}
|
|
106
|
-
*/
|
|
107
|
-
export const throwLabeled = (innerErr, label, ErrorConstructor = undefined) => {
|
|
108
|
-
if (typeof label === 'number') {
|
|
109
|
-
label = `[${label}]`;
|
|
110
|
-
}
|
|
111
|
-
const outerErr = assert.error(
|
|
112
|
-
`${label}: ${innerErr.message}`,
|
|
113
|
-
ErrorConstructor,
|
|
114
|
-
);
|
|
115
|
-
assert.note(outerErr, X`Caused by ${innerErr}`);
|
|
116
|
-
throw outerErr;
|
|
117
|
-
};
|
|
118
|
-
harden(throwLabeled);
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* @template A,R
|
|
122
|
-
* @param {(...args: A[]) => R} func
|
|
123
|
-
* @param {A[]} args
|
|
124
|
-
* @param {string|number} [label]
|
|
125
|
-
* @returns {R}
|
|
126
|
-
*/
|
|
127
|
-
export const applyLabelingError = (func, args, label = undefined) => {
|
|
128
|
-
if (label === undefined) {
|
|
129
|
-
return func(...args);
|
|
130
|
-
}
|
|
131
|
-
let result;
|
|
132
|
-
try {
|
|
133
|
-
result = func(...args);
|
|
134
|
-
} catch (err) {
|
|
135
|
-
throwLabeled(err, label);
|
|
136
|
-
}
|
|
137
|
-
if (isPromise(result)) {
|
|
138
|
-
// If result is a rejected promise, this will return a promise with a
|
|
139
|
-
// different rejection reason. But this confuses TypeScript because it types
|
|
140
|
-
// that case as `Promise<never>` which is cool for a promise that will never
|
|
141
|
-
// fulfill. But TypeScript doesn't understand that this will only happen
|
|
142
|
-
// when `result` was a rejected promise. In only this case `R` should
|
|
143
|
-
// already allow `Promise<never>` as a subtype.
|
|
144
|
-
/** @type {unknown} */
|
|
145
|
-
const relabeled = E.when(result, undefined, reason =>
|
|
146
|
-
throwLabeled(reason, label),
|
|
147
|
-
);
|
|
148
|
-
return /** @type {R} */ (relabeled);
|
|
149
|
-
} else {
|
|
150
|
-
return result;
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
harden(applyLabelingError);
|
|
15
|
+
/** @import {ERef} from '@endo/far' */
|
|
154
16
|
|
|
155
17
|
/**
|
|
156
18
|
* @template T
|
|
157
|
-
* @typedef {{[KeyType in keyof T]: T[KeyType]} & {}} Simplify
|
|
158
|
-
*
|
|
159
|
-
*
|
|
19
|
+
* @typedef {{ [KeyType in keyof T]: T[KeyType] } & {}} Simplify flatten the
|
|
20
|
+
* type output to improve type hints shown in editors
|
|
21
|
+
* https://github.com/sindresorhus/type-fest/blob/main/source/simplify.d.ts
|
|
160
22
|
*/
|
|
161
23
|
|
|
162
24
|
/**
|
|
@@ -165,19 +27,24 @@ harden(applyLabelingError);
|
|
|
165
27
|
|
|
166
28
|
/**
|
|
167
29
|
* @template {{}} T
|
|
168
|
-
* @typedef {{
|
|
30
|
+
* @typedef {{
|
|
31
|
+
* [K in keyof T]: T[K] extends Callable ? T[K] : DeeplyAwaited<T[K]>;
|
|
32
|
+
* }} DeeplyAwaitedObject
|
|
169
33
|
*/
|
|
170
34
|
|
|
171
35
|
/**
|
|
172
36
|
* @template T
|
|
173
|
-
* @typedef {T extends PromiseLike<any>
|
|
37
|
+
* @typedef {T extends PromiseLike<any>
|
|
38
|
+
* ? Awaited<T>
|
|
39
|
+
* : T extends {}
|
|
40
|
+
* ? Simplify<DeeplyAwaitedObject<T>>
|
|
41
|
+
* : Awaited<T>} DeeplyAwaited
|
|
174
42
|
*/
|
|
175
43
|
|
|
176
44
|
/**
|
|
177
45
|
* A more constrained version of {deeplyFulfilled} for type safety until
|
|
178
|
-
* https://github.com/endojs/endo/issues/1257
|
|
179
|
-
*
|
|
180
|
-
* in order to be durable.
|
|
46
|
+
* https://github.com/endojs/endo/issues/1257 Useful in starting contracts that
|
|
47
|
+
* need all terms to be fulfilled in order to be durable.
|
|
181
48
|
*
|
|
182
49
|
* @type {<T extends {}>(unfulfilledTerms: T) => Promise<DeeplyAwaited<T>>}
|
|
183
50
|
*/
|
|
@@ -192,7 +59,9 @@ export const deeplyFulfilledObject = async obj => {
|
|
|
192
59
|
* and report the result in seconds to match our telemetry standard.
|
|
193
60
|
*
|
|
194
61
|
* @param {typeof import('perf_hooks').performance.now} currentTimeMillisec
|
|
195
|
-
* @returns {<T>(
|
|
62
|
+
* @returns {<T>(
|
|
63
|
+
* fn: () => Promise<T>,
|
|
64
|
+
* ) => Promise<{ result: T; duration: number }>}
|
|
196
65
|
*/
|
|
197
66
|
export const makeMeasureSeconds = currentTimeMillisec => {
|
|
198
67
|
/** @param {() => any} fn */
|
|
@@ -205,65 +74,9 @@ export const makeMeasureSeconds = currentTimeMillisec => {
|
|
|
205
74
|
return measureSeconds;
|
|
206
75
|
};
|
|
207
76
|
|
|
208
|
-
/**
|
|
209
|
-
* @param {Error[]} errors
|
|
210
|
-
* @param {string} [message]
|
|
211
|
-
*/
|
|
212
|
-
export const makeAggregateError = (errors, message) => {
|
|
213
|
-
const err = Error(message);
|
|
214
|
-
Object.defineProperties(err, {
|
|
215
|
-
name: {
|
|
216
|
-
value: 'AggregateError',
|
|
217
|
-
},
|
|
218
|
-
errors: {
|
|
219
|
-
value: errors,
|
|
220
|
-
},
|
|
221
|
-
});
|
|
222
|
-
return err;
|
|
223
|
-
};
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* @template T
|
|
227
|
-
* @param {readonly (T | PromiseLike<T>)[]} items
|
|
228
|
-
* @returns {Promise<T[]>}
|
|
229
|
-
*/
|
|
230
|
-
export const PromiseAllOrErrors = async items => {
|
|
231
|
-
return Promise.allSettled(items).then(results => {
|
|
232
|
-
const errors = /** @type {PromiseRejectedResult[]} */ (
|
|
233
|
-
results.filter(({ status }) => status === 'rejected')
|
|
234
|
-
).map(result => result.reason);
|
|
235
|
-
if (!errors.length) {
|
|
236
|
-
return /** @type {PromiseFulfilledResult<T>[]} */ (results).map(
|
|
237
|
-
result => result.value,
|
|
238
|
-
);
|
|
239
|
-
} else if (errors.length === 1) {
|
|
240
|
-
throw errors[0];
|
|
241
|
-
} else {
|
|
242
|
-
throw makeAggregateError(errors);
|
|
243
|
-
}
|
|
244
|
-
});
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* @type {<T>(
|
|
249
|
-
* trier: () => Promise<T>,
|
|
250
|
-
* finalizer: (error?: unknown) => Promise<void>,
|
|
251
|
-
* ) => Promise<T>}
|
|
252
|
-
*/ export const aggregateTryFinally = async (trier, finalizer) =>
|
|
253
|
-
trier().then(
|
|
254
|
-
async result => finalizer().then(() => result),
|
|
255
|
-
async tryError =>
|
|
256
|
-
finalizer(tryError)
|
|
257
|
-
.then(
|
|
258
|
-
() => tryError,
|
|
259
|
-
finalizeError => makeAggregateError([tryError, finalizeError]),
|
|
260
|
-
)
|
|
261
|
-
.then(error => Promise.reject(error)),
|
|
262
|
-
);
|
|
263
|
-
|
|
264
77
|
/**
|
|
265
78
|
* @template {Record<string, unknown>} T
|
|
266
|
-
* @typedef {{[P in keyof T]: Exclude<T[P], undefined
|
|
79
|
+
* @typedef {{ [P in keyof T]: Exclude<T[P], undefined> }} AllDefined
|
|
267
80
|
*/
|
|
268
81
|
|
|
269
82
|
/**
|
|
@@ -272,10 +85,9 @@ export const PromiseAllOrErrors = async items => {
|
|
|
272
85
|
*
|
|
273
86
|
* @template {Record<string, unknown>} T
|
|
274
87
|
* @param {T} obj
|
|
275
|
-
* @throws if any value in the object entries is not defined
|
|
276
88
|
* @returns {asserts obj is AllDefined<T>}
|
|
89
|
+
* @throws if any value in the object entries is not defined
|
|
277
90
|
*/
|
|
278
|
-
|
|
279
91
|
export const assertAllDefined = obj => {
|
|
280
92
|
const missing = [];
|
|
281
93
|
for (const [key, val] of Object.entries(obj)) {
|
|
@@ -298,10 +110,9 @@ export const forever = asyncGenerate(() => notDone);
|
|
|
298
110
|
|
|
299
111
|
/**
|
|
300
112
|
* @template T
|
|
301
|
-
* @param {() => T} produce
|
|
302
|
-
*
|
|
303
|
-
*
|
|
304
|
-
* themselves.
|
|
113
|
+
* @param {() => T} produce The value of `await produce()` is used for its
|
|
114
|
+
* truthiness vs falsiness. IOW, it is coerced to a boolean so the caller need
|
|
115
|
+
* not bother doing this themselves.
|
|
305
116
|
* @returns {AsyncIterable<Awaited<T>>}
|
|
306
117
|
*/
|
|
307
118
|
export const whileTrue = produce =>
|
|
@@ -318,10 +129,9 @@ export const whileTrue = produce =>
|
|
|
318
129
|
|
|
319
130
|
/**
|
|
320
131
|
* @template T
|
|
321
|
-
* @param {() => T} produce
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
* themselves.
|
|
132
|
+
* @param {() => T} produce The value of `await produce()` is used for its
|
|
133
|
+
* truthiness vs falsiness. IOW, it is coerced to a boolean so the caller need
|
|
134
|
+
* not bother doing this themselves.
|
|
325
135
|
* @returns {AsyncIterable<Awaited<T>>}
|
|
326
136
|
*/
|
|
327
137
|
export const untilTrue = produce =>
|
|
@@ -339,10 +149,14 @@ export const untilTrue = produce =>
|
|
|
339
149
|
});
|
|
340
150
|
});
|
|
341
151
|
|
|
342
|
-
/** @type {
|
|
152
|
+
/** @type {<X, Y>(xs: X[], ys: Y[]) => [X, Y][]} */
|
|
343
153
|
export const zip = (xs, ys) => harden(xs.map((x, i) => [x, ys[+i]]));
|
|
344
154
|
|
|
345
|
-
/**
|
|
155
|
+
/**
|
|
156
|
+
* @type {<T extends Record<string, ERef<any>>>(
|
|
157
|
+
* obj: T,
|
|
158
|
+
* ) => Promise<{ [K in keyof T]: Awaited<T[K]> }>}
|
|
159
|
+
*/
|
|
346
160
|
export const allValues = async obj => {
|
|
347
161
|
const resolved = await Promise.all(values(obj));
|
|
348
162
|
// @ts-expect-error cast
|
|
@@ -350,9 +164,9 @@ export const allValues = async obj => {
|
|
|
350
164
|
};
|
|
351
165
|
|
|
352
166
|
/**
|
|
353
|
-
* A tee implementation where all readers are synchronized with each other.
|
|
354
|
-
*
|
|
355
|
-
*
|
|
167
|
+
* A tee implementation where all readers are synchronized with each other. They
|
|
168
|
+
* all consume the source stream in lockstep, and any one returning or throwing
|
|
169
|
+
* early will affect the others.
|
|
356
170
|
*
|
|
357
171
|
* @template [T=unknown]
|
|
358
172
|
* @param {AsyncIterator<T, void, void>} sourceStream
|
|
@@ -362,7 +176,11 @@ export const synchronizedTee = (sourceStream, readerCount) => {
|
|
|
362
176
|
/** @type {IteratorReturnResult<void> | undefined} */
|
|
363
177
|
let doneResult;
|
|
364
178
|
|
|
365
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* @typedef {IteratorResult<
|
|
181
|
+
* (value: PromiseLike<IteratorResult<T>>) => void
|
|
182
|
+
* >} QueuePayload
|
|
183
|
+
*/
|
|
366
184
|
/** @type {import('@endo/stream').AsyncQueue<QueuePayload>[]} */
|
|
367
185
|
const queues = [];
|
|
368
186
|
|
|
@@ -422,13 +240,21 @@ export const synchronizedTee = (sourceStream, readerCount) => {
|
|
|
422
240
|
/** @type {AsyncGenerator<T, void, void>} */
|
|
423
241
|
const reader = harden({
|
|
424
242
|
async next() {
|
|
425
|
-
/**
|
|
243
|
+
/**
|
|
244
|
+
* @type {import('@endo/promise-kit').PromiseKit<
|
|
245
|
+
* IteratorResult<T>
|
|
246
|
+
* >}
|
|
247
|
+
*/
|
|
426
248
|
const { promise, resolve } = makePromiseKit();
|
|
427
249
|
queue.put({ value: resolve, done: false });
|
|
428
250
|
return promise;
|
|
429
251
|
},
|
|
430
252
|
async return() {
|
|
431
|
-
/**
|
|
253
|
+
/**
|
|
254
|
+
* @type {import('@endo/promise-kit').PromiseKit<
|
|
255
|
+
* IteratorResult<T>
|
|
256
|
+
* >}
|
|
257
|
+
*/
|
|
432
258
|
const { promise, resolve } = makePromiseKit();
|
|
433
259
|
queue.put({ value: resolve, done: true });
|
|
434
260
|
return promise;
|
package/CHANGELOG.md
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
## [0.4.0-u13.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.4.0-u12.0...@agoric/internal@0.4.0-u13.0) (2023-12-07)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @agoric/internal
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## [0.4.0-u12.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.3.3-u11wf.0...@agoric/internal@0.4.0-u12.0) (2023-11-10)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
### ⚠ BREAKING CHANGES
|
|
18
|
-
|
|
19
|
-
* **vstorage:** Enforce path validation
|
|
20
|
-
|
|
21
|
-
### Bug Fixes
|
|
22
|
-
|
|
23
|
-
* **internal:** severe override taming for bundle-source ([9486c77](https://github.com/Agoric/agoric-sdk/commit/9486c772ab7daaebad0a19ac85653307ba461065))
|
|
24
|
-
* **vstorage:** Enforce path validation ([d8db331](https://github.com/Agoric/agoric-sdk/commit/d8db3310fb21a8546388694752889f3563733010)), closes [#8337](https://github.com/Agoric/agoric-sdk/issues/8337)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
### [0.3.3-u11wf.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.3.3-u11.0...@agoric/internal@0.3.3-u11wf.0) (2023-09-23)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### Features
|
|
32
|
-
|
|
33
|
-
* **internal:** fakeStorage.getBody() supports index other than -1 ([d2e05c4](https://github.com/Agoric/agoric-sdk/commit/d2e05c43dcd5dfa3719feecc0b303b8294efeef0))
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### [0.3.3-u11.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.3.2...@agoric/internal@0.3.3-u11.0) (2023-08-24)
|
|
38
|
-
|
|
39
|
-
**Note:** Version bump only for package @agoric/internal
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
### [0.3.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.3.1...@agoric/internal@0.3.2) (2023-06-02)
|
|
46
|
-
|
|
47
|
-
**Note:** Version bump only for package @agoric/internal
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
### [0.3.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.3.0...@agoric/internal@0.3.1) (2023-05-24)
|
|
54
|
-
|
|
55
|
-
**Note:** Version bump only for package @agoric/internal
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
## [0.3.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.2.1...@agoric/internal@0.3.0) (2023-05-19)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
### ⚠ BREAKING CHANGES
|
|
65
|
-
|
|
66
|
-
* emit smallcaps-format data in all marshallers
|
|
67
|
-
|
|
68
|
-
### Features
|
|
69
|
-
|
|
70
|
-
* Add SwingSet configuration to purge vstorage within (re-)bootstrap ([f248e91](https://github.com/Agoric/agoric-sdk/commit/f248e9116512374fb95f789b26e27b66cd5c34ca)), closes [#7681](https://github.com/Agoric/agoric-sdk/issues/7681)
|
|
71
|
-
* **auction:** add an auctioneer to manage vault liquidation ([#7000](https://github.com/Agoric/agoric-sdk/issues/7000)) ([398b70f](https://github.com/Agoric/agoric-sdk/commit/398b70f7e028f957afc1582f0ee31eb2574c94d0)), closes [#6992](https://github.com/Agoric/agoric-sdk/issues/6992) [#7047](https://github.com/Agoric/agoric-sdk/issues/7047) [#7074](https://github.com/Agoric/agoric-sdk/issues/7074)
|
|
72
|
-
* **casting:** handle noData value encoding ([530bc41](https://github.com/Agoric/agoric-sdk/commit/530bc41854cc7f5e5749e97e87fabc6163a17864))
|
|
73
|
-
* **cosmic-swingset:** add after-commit action ([970a53f](https://github.com/Agoric/agoric-sdk/commit/970a53f827ded21b27525f6b0042bbc124c62d48))
|
|
74
|
-
* **internal:** makeFakeStorageKit supports "get" and "entries" ([6a69aab](https://github.com/Agoric/agoric-sdk/commit/6a69aab5cb54faae5af631bbc2281e4fc4ede8e0))
|
|
75
|
-
* **internal:** new `prepareAttenuator` leveraging callbacks ([55599df](https://github.com/Agoric/agoric-sdk/commit/55599dfe7ec43a27387ca64e8bae57be13a38115))
|
|
76
|
-
* emit smallcaps-format data in all marshallers ([1753df8](https://github.com/Agoric/agoric-sdk/commit/1753df83465785b5ee71b250770c9b012d750ffc)), closes [#6822](https://github.com/Agoric/agoric-sdk/issues/6822)
|
|
77
|
-
* **core:** HighPrioritySendersManager ([7b382e4](https://github.com/Agoric/agoric-sdk/commit/7b382e49a1521d367c5b8db18fa7efa2b77ef7e3))
|
|
78
|
-
* **cosmic-swingset:** basic snapshot wiring ([b1072d8](https://github.com/Agoric/agoric-sdk/commit/b1072d8b1ddabbb5f2835eb503c945fed3b6b080))
|
|
79
|
-
* **cosmic-swingset:** export swingStore kvData to vstorage ([be68431](https://github.com/Agoric/agoric-sdk/commit/be684315dc68ecf0cb603a8eb38ddd5418e996a6))
|
|
80
|
-
* **cosmic-swingset:** process highPriorityQueue actions ([182a96e](https://github.com/Agoric/agoric-sdk/commit/182a96e169c8cac7f31fbce014783fd6db72b64c))
|
|
81
|
-
* **cosmic-swingset:** remove unnecessary explicit activityhash ([5dcc44d](https://github.com/Agoric/agoric-sdk/commit/5dcc44d31be0c8a95a5749d768791fa35b72dbd3))
|
|
82
|
-
* **internal:** add BufferLineTransform ([6e7db7a](https://github.com/Agoric/agoric-sdk/commit/6e7db7af7d93500caf71d817afbb358d33ef01f6))
|
|
83
|
-
* **internal:** add sync tee util ([#7560](https://github.com/Agoric/agoric-sdk/issues/7560)) ([0f800a6](https://github.com/Agoric/agoric-sdk/commit/0f800a622b81c61101d96b0ad620ab3065f4b146))
|
|
84
|
-
* **internal:** build `chainStorage` from `zone` ([74c62da](https://github.com/Agoric/agoric-sdk/commit/74c62dae7964b488bfdf7c7ee8a9bd930074cea8))
|
|
85
|
-
* **internal:** iterable produces values and can be async ([cf4110f](https://github.com/Agoric/agoric-sdk/commit/cf4110f59c228e42e09254b271209a66b9faf3e0))
|
|
86
|
-
* **internal:** new `callback` module for durable classless callbacks ([b94d600](https://github.com/Agoric/agoric-sdk/commit/b94d60052e1043fd6fb1ce39530a6072e38ef0d9))
|
|
87
|
-
* **internal:** shutdown informs of interrupt signal ([2ce1e89](https://github.com/Agoric/agoric-sdk/commit/2ce1e892eb381a28c31805f48ba65511896ef406))
|
|
88
|
-
* assertAllDefined ([d4d6cbd](https://github.com/Agoric/agoric-sdk/commit/d4d6cbd798eee051a8a699c85cc620c6a8298258))
|
|
89
|
-
* board-utils ([4f80ad3](https://github.com/Agoric/agoric-sdk/commit/4f80ad3cac3e47a89834f7f98330a47141b6e235))
|
|
90
|
-
* type assertion for assertAllDefined ([afa7b5b](https://github.com/Agoric/agoric-sdk/commit/afa7b5bfaf4558a38bdba2c44bf91691f6db26b8))
|
|
91
|
-
* **store:** M.splitArray and M.splitRecord ([#6597](https://github.com/Agoric/agoric-sdk/issues/6597)) ([e7427e3](https://github.com/Agoric/agoric-sdk/commit/e7427e386bcbfbe99312b41342b1fa2e722c57c7))
|
|
92
|
-
* **vats:** harmonise core/boot.js and boot-psm.js ([4f6635e](https://github.com/Agoric/agoric-sdk/commit/4f6635e550b926d3ca43d9075f26fef3b810817d))
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
### Bug Fixes
|
|
96
|
-
|
|
97
|
-
* **internal:** add typing to makeWithQueue ([5b1539b](https://github.com/Agoric/agoric-sdk/commit/5b1539bfc61ea4f937e2f85cbe93c7bccfc84a40))
|
|
98
|
-
* **internal:** Make makeFakeStorageKit value auto-wrapping depend upon `sequence: true` ([2751e76](https://github.com/Agoric/agoric-sdk/commit/2751e7626e0ca617cdb2b1d92e5d4d9315b5674a))
|
|
99
|
-
* **internal:** more callback typing ([e78e14d](https://github.com/Agoric/agoric-sdk/commit/e78e14d60a78d2e5f9fb9a899053bf778bb51360))
|
|
100
|
-
* **internal:** properly inherit from `chainStorageNode` ([134a977](https://github.com/Agoric/agoric-sdk/commit/134a977f7bc4a2fc6eff3868d4d415c8c9714b4b))
|
|
101
|
-
* **internal:** Restore support for passable-symbol method keys ([54271af](https://github.com/Agoric/agoric-sdk/commit/54271af10adb144fe6d562193afa473d74425854))
|
|
102
|
-
* **internal:** shutdown beforeExit avoids forced exit ([34c9f44](https://github.com/Agoric/agoric-sdk/commit/34c9f442f124cd7181b538cf8754c6180c863b32))
|
|
103
|
-
* **internal:** Validate Callback targets ([8880ada](https://github.com/Agoric/agoric-sdk/commit/8880ada791d70dd487770e8a0fa4b6b725aa8769))
|
|
104
|
-
* **notifier:** Add a makeDurablePublishKit "onAdvance" option ([4c62b52](https://github.com/Agoric/agoric-sdk/commit/4c62b52b94cbc9ccb3c7388f5e94589809e6d7fd)), closes [#7303](https://github.com/Agoric/agoric-sdk/issues/7303)
|
|
105
|
-
* adapt to deeplyFulfilled being async ([#6816](https://github.com/Agoric/agoric-sdk/issues/6816)) ([ec315e1](https://github.com/Agoric/agoric-sdk/commit/ec315e1634f6d5cdef1cddafc18777de7c04fecc))
|
|
106
|
-
* **telemetry:** partially undo [#6684](https://github.com/Agoric/agoric-sdk/issues/6684) ([b9fa85b](https://github.com/Agoric/agoric-sdk/commit/b9fa85b7307124e50cc3a84d3b694307cde55f54))
|
|
107
|
-
* avoid using top-level `require` ([57ca2db](https://github.com/Agoric/agoric-sdk/commit/57ca2dbfbadb373f97d43b2fb4e90302c9149976))
|
|
108
|
-
* **types:** type assertion for assertAllDefined ([25f16b2](https://github.com/Agoric/agoric-sdk/commit/25f16b2e935931b81313d2ee1d491b305088bb7a))
|
|
109
|
-
* track endo 1382 fix to 6570 ([#6612](https://github.com/Agoric/agoric-sdk/issues/6612)) ([7897761](https://github.com/Agoric/agoric-sdk/commit/7897761d6e19e6bbba42e7bd0bd5befb507afa08))
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
### [0.2.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/internal@0.2.0...@agoric/internal@0.2.1) (2022-10-05)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
### Bug Fixes
|
|
117
|
-
|
|
118
|
-
* protect zoe from keyword collision ([#6370](https://github.com/Agoric/agoric-sdk/issues/6370)) ([02af4a0](https://github.com/Agoric/agoric-sdk/commit/02af4a07ad1f99b545d0bf525bd1ea97d74639d1))
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
## 0.2.0 (2022-09-20)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
### ⚠ BREAKING CHANGES
|
|
126
|
-
|
|
127
|
-
* **SwingSet:** Representatives inherit bound methods (#5970)
|
|
128
|
-
|
|
129
|
-
### Features
|
|
130
|
-
|
|
131
|
-
* **internal:** add async utils from loadgen ([5d9f411](https://github.com/Agoric/agoric-sdk/commit/5d9f411a124e4028cd88764084999fb1fd791609))
|
|
132
|
-
* **internal:** deeplyFulfilledObject ([11fd071](https://github.com/Agoric/agoric-sdk/commit/11fd071005741719286ae6a1bb6bb9a7fd1f65b7))
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
### Bug Fixes
|
|
136
|
-
|
|
137
|
-
* **SwingSet:** Representatives inherit bound methods ([#5970](https://github.com/Agoric/agoric-sdk/issues/5970)) ([ba1ed62](https://github.com/Agoric/agoric-sdk/commit/ba1ed62062a63862e2eecb598b0bd1d2ac828e1f))
|