@agoric/ertp 0.16.3-dev-727e4af.0 → 0.16.3-dev-96c9ff5.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/src/types.d.ts CHANGED
@@ -1,17 +1,33 @@
1
+ export type NatAmount = {
2
+ brand: Brand<"nat">;
3
+ value: bigint;
4
+ };
5
+ export type SetAmount<K extends Key> = {
6
+ brand: Brand<"set">;
7
+ value: K[];
8
+ };
9
+ export type CopySetAmount<K extends Key> = {
10
+ brand: Brand<"copySet">;
11
+ value: CopySet<K>;
12
+ };
13
+ export type CopyBagAmount<K extends Key> = {
14
+ brand: Brand<"copyBag">;
15
+ value: CopyBag<K>;
16
+ };
17
+ export type AnyAmount = {
18
+ brand: Brand<any>;
19
+ value: any;
20
+ };
1
21
  /**
2
- * Amounts are descriptions of digital assets,
3
- * answering the questions "how much" and "of what kind". Amounts are values
4
- * labeled with a brand. AmountMath executes the logic of how amounts are
5
- * changed when digital assets are merged, separated, or otherwise
6
- * manipulated. For example, a deposit of 2 bucks into a purse that already
7
- * has 3 bucks gives a new purse balance of 5 bucks. An empty purse has 0
8
- * bucks. AmountMath relies heavily on polymorphic MathHelpers, which
9
- * manipulate the unbranded portion.
22
+ * Amounts are descriptions of digital assets, answering the questions "how
23
+ * much" and "of what kind". Amounts are values labeled with a brand.
24
+ * AmountMath executes the logic of how amounts are changed when digital
25
+ * assets are merged, separated, or otherwise manipulated. For example, a
26
+ * deposit of 2 bucks into a purse that already has 3 bucks gives a new purse
27
+ * balance of 5 bucks. An empty purse has 0 bucks. AmountMath relies heavily
28
+ * on polymorphic MathHelpers, which manipulate the unbranded portion.
10
29
  */
11
- export type Amount<K extends AssetKind = AssetKind> = {
12
- brand: Brand<K>;
13
- value: AssetValueForKind<K>;
14
- };
30
+ export type Amount<K extends AssetKind = AssetKind, M extends Key = Key> = K extends "nat" ? NatAmount : K extends "set" ? SetAmount<M> : K extends "copySet" ? CopySetAmount<M> : K extends "copyBag" ? CopyBagAmount<M> : AnyAmount;
15
31
  /**
16
32
  * An `AmountValue` describes a set or quantity of assets that can be owned or
17
33
  * shared.
@@ -33,14 +49,14 @@ export type Amount<K extends AssetKind = AssetKind> = {
33
49
  * once or more times, i.e., some positive bigint number of times,
34
50
  * representing that quantity of the asset represented by that key.
35
51
  */
36
- export type AmountValue = bigint | SetValue | CopySet | import("@endo/patterns").CopyBag<any>;
52
+ export type AmountValue = bigint | CopySet | SetValue<Key> | CopyBag<Key>;
37
53
  /**
38
54
  * See doc-comment
39
55
  * for `AmountValue`.
40
56
  */
41
57
  export type AssetKind = "nat" | "set" | "copySet" | "copyBag";
42
- export type AssetValueForKind<K extends AssetKind> = K extends "nat" ? bigint : K extends "set" ? SetValue : K extends "copySet" ? CopySet : K extends "copyBag" ? import("@endo/patterns").CopyBag<any> : never;
43
- export type AssetKindForValue<V extends AmountValue> = V extends bigint ? "nat" : V extends SetValue ? "set" : V extends CopySet ? "copySet" : V extends import("@endo/patterns").CopyBag<any> ? "copyBag" : never;
58
+ export type AssetValueForKind<K extends AssetKind, M extends Key = Key> = K extends "nat" ? bigint : K extends "set" ? SetValue<M> : K extends "copySet" ? CopySet<M> : K extends "copyBag" ? CopyBag<M> : never;
59
+ export type AssetKindForValue<V extends AmountValue> = V extends bigint ? "nat" : V extends SetValue<Key> ? "set" : V extends CopySet ? "copySet" : V extends CopyBag<Key> ? "copyBag" : never;
44
60
  export type DisplayInfo<K extends AssetKind = AssetKind> = {
45
61
  /**
46
62
  * Tells the display software how many
@@ -60,22 +76,11 @@ export type DisplayInfo<K extends AssetKind = AssetKind> = {
60
76
  */
61
77
  assetKind: K;
62
78
  };
63
- /**
64
- * The brand identifies the kind of issuer, and has a
65
- * function to get the alleged name for the kind of asset described. The
66
- * alleged name (such as 'BTC' or 'moola') is provided by the maker of the
67
- * issuer and should not be trusted as accurate.
68
- *
69
- * Every amount created by a particular AmountMath will share the same brand,
70
- * but recipients cannot rely on the brand to verify that a purported amount
71
- * represents the issuer they intended, since the same brand can be reused by
72
- * a misbehaving issuer.
73
- */
74
- export type Brand<K extends AssetKind = AssetKind> = {
79
+ export type BrandMethods<K extends AssetKind> = {
75
80
  /**
76
81
  * Should be used with `issuer.getBrand` to ensure an issuer and brand match.
77
82
  */
78
- isMyIssuer: (allegedIssuer: ERef<Issuer<AssetKind>>) => Promise<boolean>;
83
+ isMyIssuer: (allegedIssuer: ERef<Issuer<K>>) => Promise<boolean>;
79
84
  getAllegedName: () => string;
80
85
  /**
81
86
  * Give information to UI on how
@@ -84,12 +89,24 @@ export type Brand<K extends AssetKind = AssetKind> = {
84
89
  getDisplayInfo: () => DisplayInfo<K>;
85
90
  getAmountShape: () => Pattern;
86
91
  };
92
+ /**
93
+ * The brand identifies the
94
+ * kind of issuer, and has a function to get the alleged name for the kind of
95
+ * asset described. The alleged name (such as 'BTC' or 'moola') is provided by
96
+ * the maker of the issuer and should not be trusted as accurate.
97
+ *
98
+ * Every amount created by a particular issuer will share the same brand, but
99
+ * recipients cannot rely on the brand to verify that a purported amount
100
+ * represents the issuer they intended, since the same brand can be reused by
101
+ * a misbehaving issuer.
102
+ */
103
+ export type Brand<K extends AssetKind = AssetKind> = RemotableObject & BrandMethods<K>;
87
104
  /**
88
105
  * Return true if the payment continues to exist.
89
106
  *
90
107
  * If the payment is a promise, the operation will proceed upon fulfillment.
91
108
  */
92
- export type IssuerIsLive = (payment: ERef<Payment<AssetKind>>) => Promise<boolean>;
109
+ export type IssuerIsLive = (payment: ERef<Payment>) => Promise<boolean>;
93
110
  /**
94
111
  * Get the amount of digital assets in the payment.
95
112
  * Because the payment is not trusted, we cannot call a method on it directly,
@@ -97,7 +114,7 @@ export type IssuerIsLive = (payment: ERef<Payment<AssetKind>>) => Promise<boolea
97
114
  *
98
115
  * If the payment is a promise, the operation will proceed upon fulfillment.
99
116
  */
100
- export type IssuerGetAmountOf<K extends AssetKind> = (payment: ERef<Payment<AssetKind>>) => Promise<Amount<K>>;
117
+ export type IssuerGetAmountOf<K extends AssetKind, M extends Key = Key> = (payment: ERef<Payment<K, M>>) => Promise<Amount<K, M>>;
101
118
  /**
102
119
  * Burn all of the digital assets in the payment.
103
120
  * `optAmountShape` is optional. If the `optAmountShape` pattern is present,
@@ -113,16 +130,11 @@ export type IssuerGetAmountOf<K extends AssetKind> = (payment: ERef<Payment<Asse
113
130
  * be interpreted as absence. If you want to express a `Pattern` that will
114
131
  * match only `undefined`, use `M.undefined()` instead.
115
132
  */
116
- export type IssuerBurn = (payment: ERef<Payment<AssetKind>>, optAmountShape?: Pattern) => Promise<Amount>;
133
+ export type IssuerBurn = (payment: ERef<Payment>, optAmountShape?: Pattern) => Promise<Amount>;
117
134
  /**
118
- * The issuer cannot mint a new amount, but it can
119
- * create empty purses and payments. The issuer can also transform payments
120
- * (splitting payments, combining payments, burning payments, and claiming
121
- * payments exclusively). The issuer should be gotten from a trusted source
122
- * and then relied upon as the decider of whether an untrusted payment is
123
- * valid.
135
+ * Work around JSDoc union handling
124
136
  */
125
- export type Issuer<K extends AssetKind = AssetKind> = {
137
+ export type IssuerMethods<K extends AssetKind, M extends Key> = {
126
138
  /**
127
139
  * Get the Brand for this Issuer. The Brand
128
140
  * indicates the type of digital asset and is shared by the mint, the issuer,
@@ -137,23 +149,33 @@ export type Issuer<K extends AssetKind = AssetKind> = {
137
149
  */
138
150
  getAllegedName: () => string;
139
151
  /**
140
- * Get the kind of MathHelpers used by
141
- * this Issuer.
152
+ * Get the kind of MathHelpers used by this
153
+ * Issuer.
142
154
  */
143
- getAssetKind: () => AssetKind;
155
+ getAssetKind: () => K;
144
156
  /**
145
157
  * Give information to UI on how
146
158
  * to display amounts for this issuer.
147
159
  */
148
160
  getDisplayInfo: () => DisplayInfo<K>;
149
161
  /**
150
- * Make an empty purse of this brand.
162
+ * Make an empty purse of this
163
+ * brand.
151
164
  */
152
- makeEmptyPurse: () => Purse<K>;
165
+ makeEmptyPurse: () => Purse<K, M>;
153
166
  isLive: IssuerIsLive;
154
- getAmountOf: IssuerGetAmountOf<K>;
167
+ getAmountOf: IssuerGetAmountOf<K, M>;
155
168
  burn: IssuerBurn;
156
169
  };
170
+ /**
171
+ * The issuer cannot
172
+ * mint a new amount, but it can create empty purses and payments. The issuer
173
+ * can also transform payments (splitting payments, combining payments,
174
+ * burning payments, and claiming payments exclusively). The issuer should be
175
+ * gotten from a trusted source and then relied upon as the decider of whether
176
+ * an untrusted payment is valid.
177
+ */
178
+ export type Issuer<K extends AssetKind = AssetKind, M extends Key = Key> = RemotableObject & IssuerMethods<K, M>;
157
179
  export type PaymentLedger<K extends AssetKind = AssetKind> = {
158
180
  mint: Mint<K>;
159
181
  /**
@@ -165,15 +187,15 @@ export type PaymentLedger<K extends AssetKind = AssetKind> = {
165
187
  issuer: Issuer<K>;
166
188
  brand: Brand<K>;
167
189
  };
168
- export type IssuerKit<K extends AssetKind = AssetKind> = {
169
- mint: Mint<K>;
190
+ export type IssuerKit<K extends AssetKind = AssetKind, M extends Key = Key> = {
191
+ mint: Mint<K, M>;
170
192
  /**
171
- * Externally useful only if this issuer
172
- * uses recovery sets. Can be used to get the recovery set associated with
173
- * minted payments that are still live.
193
+ * Externally useful only if this
194
+ * issuer uses recovery sets. Can be used to get the recovery set associated
195
+ * with minted payments that are still live.
174
196
  */
175
- mintRecoveryPurse: Purse<K>;
176
- issuer: Issuer<K>;
197
+ mintRecoveryPurse: Purse<K, M>;
198
+ issuer: Issuer<K, M>;
177
199
  brand: Brand<K>;
178
200
  displayInfo: DisplayInfo;
179
201
  };
@@ -196,16 +218,16 @@ export type AdditionalDisplayInfo = {
196
218
  * Holding a Mint carries the right to issue new digital
197
219
  * assets. These assets all have the same kind, which is called a Brand.
198
220
  */
199
- export type Mint<K extends AssetKind = AssetKind> = {
221
+ export type Mint<K extends AssetKind = AssetKind, M extends Key = Key> = {
200
222
  /**
201
223
  * Gets the Issuer for this mint.
202
224
  */
203
- getIssuer: () => Issuer<K>;
225
+ getIssuer: () => Issuer<K, M>;
204
226
  /**
205
227
  * Creates a new
206
228
  * Payment containing newly minted amount.
207
229
  */
208
- mintPayment: (newAmount: Amount<K>) => Payment<K>;
230
+ mintPayment: (newAmount: Amount<K>) => Payment<K, M>;
209
231
  };
210
232
  /**
211
233
  * Issuers first became durable with mandatory recovery sets. Later they were
@@ -233,52 +255,54 @@ export type DepositFacet = {
233
255
  */
234
256
  receive: DepositFacetReceive;
235
257
  };
236
- export type PurseDeposit<K extends AssetKind> = (payment: Payment<K>, optAmountShape?: Pattern) => Amount<K>;
237
258
  /**
238
- * Purses hold amount of digital assets of the same
239
- * brand, but unlike Payments, they are not meant to be sent to others. To
240
- * transfer digital assets, a Payment should be withdrawn from a Purse. The
241
- * amount of digital assets in a purse can change through the action of
242
- * deposit() and withdraw().
243
- *
244
- * The primary use for Purses and Payments is for currency-like and goods-like
245
- * digital assets, but they can also be used to represent other kinds of
246
- * rights, such as the right to participate in a particular contract.
259
+ * Purses hold amount of
260
+ * digital assets of the same brand, but unlike Payments, they are not meant
261
+ * to be sent to others. To transfer digital assets, a Payment should be
262
+ * withdrawn from a Purse. The amount of digital assets in a purse can change
263
+ * through the action of deposit() and withdraw().
247
264
  */
248
- export type Purse<K extends AssetKind = AssetKind> = {
265
+ export type Purse<K extends AssetKind = AssetKind, M extends Key = Key> = RemotableObject & PurseMethods<K, M>;
266
+ /**
267
+ * The primary use for Purses and Payments is for
268
+ * currency-like and goods-like digital assets, but they can also be used to
269
+ * represent other kinds of rights, such as the right to participate in a
270
+ * particular contract.
271
+ */
272
+ export type PurseMethods<K extends AssetKind = AssetKind, M extends Key = Key> = {
249
273
  /**
250
274
  * Get the alleged Brand for this
251
275
  * Purse
252
276
  */
253
277
  getAllegedBrand: () => Brand<K>;
254
278
  /**
255
- * Get the amount contained in this
256
- * purse.
279
+ * Get the amount contained in
280
+ * this purse.
257
281
  */
258
- getCurrentAmount: () => Amount<K>;
282
+ getCurrentAmount: () => Amount<K, M>;
259
283
  /**
260
- * Get a lossy
261
- * notifier for changes to this purse's balance.
284
+ * Get a
285
+ * lossy notifier for changes to this purse's balance.
262
286
  */
263
- getCurrentAmountNotifier: () => LatestTopic<Amount<K>>;
287
+ getCurrentAmountNotifier: () => LatestTopic<Amount<K, M>>;
264
288
  /**
265
- * Deposit all the contents of payment into
266
- * this purse, returning the amount. If the optional argument `optAmount` does
267
- * not equal the amount of digital assets in the payment, throw an error.
289
+ * Deposit all the contents of payment into this purse, returning the amount. If
290
+ * the optional argument `optAmount` does not equal the amount of digital
291
+ * assets in the payment, throw an error.
268
292
  *
269
- * If payment is a promise, throw an error.
293
+ * If payment is a promise, throw an error.
270
294
  */
271
- deposit: PurseDeposit<K>;
295
+ deposit: <P extends Payment<K, M>>(payment: P, optAmountShape?: Pattern) => P extends Payment<K, M> ? Amount<K, M> : never;
272
296
  /**
273
297
  * Return an object whose
274
298
  * `receive` method deposits to the current Purse.
275
299
  */
276
300
  getDepositFacet: () => DepositFacet;
277
301
  /**
278
- * Withdraw amount from
279
- * this purse into a new Payment.
302
+ * Withdraw amount
303
+ * from this purse into a new Payment.
280
304
  */
281
- withdraw: (amount: Amount<K>) => Payment<K>;
305
+ withdraw: (amount: Amount<K, M>) => Payment<K, M>;
282
306
  /**
283
307
  * The set of payments
284
308
  * withdrawn from this purse that are still live. These are the payments that
@@ -291,24 +315,24 @@ export type Purse<K extends AssetKind = AssetKind> = {
291
315
  *
292
316
  * Returns an empty set if this issuer does not support recovery sets.
293
317
  */
294
- getRecoverySet: () => CopySet<Payment<K>>;
318
+ getRecoverySet: () => CopySet<Payment<K, M>>;
295
319
  /**
296
- * For use in emergencies, such as coming
297
- * back from a traumatic crash and upgrade. This deposits all the payments in
298
- * this purse's recovery set into the purse itself, returning the total amount
299
- * of assets recovered.
320
+ * For use in emergencies, such as
321
+ * coming back from a traumatic crash and upgrade. This deposits all the
322
+ * payments in this purse's recovery set into the purse itself, returning the
323
+ * total amount of assets recovered.
300
324
  *
301
325
  * Returns an empty amount if this issuer does not support recovery sets.
302
326
  */
303
- recoverAll: () => Amount<K>;
327
+ recoverAll: () => Amount<K, M>;
304
328
  };
305
329
  /**
306
- * Payments hold amount of digital assets of the same
307
- * brand in transit. Payments can be deposited in purses, split into multiple
308
- * payments, combined, and claimed (getting an exclusive payment). Payments
309
- * are linear, meaning that either a payment has the same amount of digital
310
- * assets it started with, or it is used up entirely. It is impossible to
311
- * partially use a payment.
330
+ * Payments hold amount
331
+ * of digital assets of the same brand in transit. Payments can be deposited
332
+ * in purses, split into multiple payments, combined, and claimed (getting an
333
+ * exclusive payment). Payments are linear, meaning that either a payment has
334
+ * the same amount of digital assets it started with, or it is used up
335
+ * entirely. It is impossible to partially use a payment.
312
336
  *
313
337
  * Payments are often received from other actors and therefore should not be
314
338
  * trusted themselves. To get the amount of digital assets in a payment, use
@@ -318,7 +342,8 @@ export type Purse<K extends AssetKind = AssetKind> = {
318
342
  * `issuer.makeEmptyPurse()` to create a purse, then
319
343
  * `purse.deposit(payment)`.
320
344
  */
321
- export type Payment<K extends AssetKind = AssetKind> = {
345
+ export type Payment<K extends AssetKind = AssetKind, M extends Key = Key> = RemotableObject & PaymentMethods<K>;
346
+ export type PaymentMethods<K extends AssetKind = AssetKind> = {
322
347
  /**
323
348
  * Get the allegedBrand, indicating
324
349
  * the type of digital asset this payment purports to be, and which issuer to
@@ -377,8 +402,10 @@ export type MathHelpers<V extends AmountValue> = {
377
402
  doSubtract: (left: V, right: V) => V;
378
403
  };
379
404
  export type NatValue = bigint;
380
- export type SetValue = any[];
405
+ export type SetValue<K extends Key = Key> = K[];
406
+ import type { Key } from '@endo/patterns';
381
407
  import type { CopySet } from '@endo/patterns';
382
- import type { ERef } from '@endo/far';
408
+ import type { CopyBag } from '@endo/patterns';
409
+ import type { RemotableObject } from '@endo/pass-style';
383
410
  import type { LatestTopic } from '@agoric/notifier';
384
411
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":";;;;;;;;;;mBAuBgC,CAAC;WADnB,KAAK,CACa,CAAC,AADZ,CAAC;WACR,iBAAiB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2BrB,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS;8BAYvC,CAAC;8BAaD,CAAC;wBAiBE,CAAC;;;;;;;;;;;;;;;;;eAAD,CAAC;;;;;;;;;;;;;kBAkBiB,CAAC;;;;4DAHc,OAAO,CAAC,OAAO,CAAC;oBAEjD,MAAM,MAAM;;;;;oBACZ,MAAM,WAAW,CAAC,CAAC,CAAC;oBAEpB,MAAM,OAAO;;;;;;;kEAUd,OAAO,CAAC,OAAO,CAAC;;;;;;;;8BAUD,CAAC,6DAAhB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;8EAkBpB,OAAO,KACL,OAAO,CAAC,MAAM,CAAC;;;;;;;;;mBAwBI,CAAC;;;;;;;;cAbnB,MAAM,KAAK,CAaO,CAAC,AAbN,CAAC;;;;;oBAKd,MAAM,MAAM;;;;;kBAEZ,MAAM,SAAS;;;;;oBAEf,MAAM,WAAW,CAIC,CAAC,AAJA,CAAC;;;;oBAEpB,MAAM,KAAK,CAEO,CAAC,AAFN,CAAC;YACd,YAAY;iBACZ,iBAAiB,CAAC,CAAC,CAAC;UACpB,UAAU;;0BAWJ,CAAC;UALP,IAAI,CAKE,CAAC,AALD,CAAC;;;;;;uBACP,KAAK,CAIC,CAAC,AAJA,CAAC;YAGR,MAAM,CACA,CAAC,AADC,CAAC;WACT,KAAK,CAAC,CAAC,CAAC;;sBAWF,CAAC;UALP,IAAI,CAKE,CAAC,AALD,CAAC;;;;;;uBACP,KAAK,CAIC,CAAC,AAJA,CAAC;YAGR,MAAM,CACA,CAAC,AADC,CAAC;WACT,KAAK,CAAC,CAAC,CAAC;iBACR,WAAW;;;;;;;;;;;;;;;;;;;;;iBAsBuB,CAAC;;;;eADnC,MAAM,MAAM,CACsB,CAAC,AADrB,CAAC;;;;;iBACf,CAAC,SAAS,EAAE,MAAM,CAAgB,CAAC,AAAf,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;iCAmBrC,iBAAiB,GAAG,gBAAgB;4CAOtC,OAAO,mBACP,OAAO,KACL,MAAM;;;;;;;;;;aAKL,mBAAmB;;yBAab,CAAC,gCAFV,OAAO,CAEE,CAAC,AAFD,CAAC,mBACV,OAAO,KACL,MAAM,CAAC,CAAC,CAAC;;;;;;;;;;;;kBAuCK,CAAC;;;;;qBAzBd,MAAM,KAAK,CAyBE,CAAC,AAzBD,CAAC;;;;;sBAEd,MAAM,MAAM,CAuBC,CAAC,AAvBA,CAAC;;;;;;;;;;;;;aAIf,YAAY,CAmBC,CAAC,AAnBA,CAAC;;;;;qBAKf,MAAM,YAAY;;;;;cAElB,CAAC,MAAM,EAAE,MAAM,CAYF,CAAC,AAZG,CAAC,KAAK,OAAO,CAYjB,CAAC,AAZkB,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAYjC,MAAM,MAAM,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;oBAwBH,CAAC;;;;;;;qBAAb,MAAM,KAAK,CAAC,CAAC,CAAC;;;;;;;;;;;;;;wBA+BS,CAAC;;;;;cAXxB,CAAC,YAAY,EAWU,CAAC,AAXR,KAWO,CAAC,AAXF;;;;;iBAEtB,MASuB,CAAC,AATjB;;;;;eAEP,CAAC,KAAK,EAOiB,CAAC,AAPf,KAAK,OAAO;;;;;aAErB,CAAC,IAAI,EAKkB,CAAC,AALhB,EAAE,KAAK,EAKQ,CAAC,AALN,KAAK,OAAO;;;;eAE9B,CAAC,IAAI,EAGkB,CAAC,AAHhB,EAAE,KAAK,EAGQ,CAAC,AAHN,KAAK,OAAO;;;;;WAC9B,CAAC,IAAI,EAEkB,CAAC,AAFhB,EAAE,KAAK,EAEQ,CAAC,AAFN,KAEK,CAAC,AAFA;;;;;;gBAExB,CAAC,IAAI,EAAkB,CAAC,AAAhB,EAAE,KAAK,EAAQ,CAAC,AAAN,KAAK,CAAC;;uBAKxB,MAAM;;6BAtWW,gBAAgB;0BADxB,WAAW;iCAEY,kBAAkB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":"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"}