accounts 0.3.0 → 0.4.1

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 (168) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +97 -0
  4. package/dist/core/AccessKey.d.ts +55 -0
  5. package/dist/core/AccessKey.d.ts.map +1 -0
  6. package/dist/core/AccessKey.js +69 -0
  7. package/dist/core/AccessKey.js.map +1 -0
  8. package/dist/core/Account.d.ts +91 -0
  9. package/dist/core/Account.d.ts.map +1 -0
  10. package/dist/core/Account.js +64 -0
  11. package/dist/core/Account.js.map +1 -0
  12. package/dist/core/Adapter.d.ts +187 -0
  13. package/dist/core/Adapter.d.ts.map +1 -0
  14. package/dist/core/Adapter.js +7 -0
  15. package/dist/core/Adapter.js.map +1 -0
  16. package/dist/core/Ceremony.d.ts +109 -0
  17. package/dist/core/Ceremony.d.ts.map +1 -0
  18. package/dist/core/Ceremony.js +104 -0
  19. package/dist/core/Ceremony.js.map +1 -0
  20. package/dist/core/Client.d.ts +16 -0
  21. package/dist/core/Client.d.ts.map +1 -0
  22. package/dist/core/Client.js +18 -0
  23. package/dist/core/Client.js.map +1 -0
  24. package/dist/core/Dialog.d.ts +52 -0
  25. package/dist/core/Dialog.d.ts.map +1 -0
  26. package/dist/core/Dialog.js +342 -0
  27. package/dist/core/Dialog.js.map +1 -0
  28. package/dist/core/Expiry.d.ts +15 -0
  29. package/dist/core/Expiry.d.ts.map +1 -0
  30. package/dist/core/Expiry.js +29 -0
  31. package/dist/core/Expiry.js.map +1 -0
  32. package/dist/core/Messenger.d.ts +86 -0
  33. package/dist/core/Messenger.d.ts.map +1 -0
  34. package/dist/core/Messenger.js +127 -0
  35. package/dist/core/Messenger.js.map +1 -0
  36. package/dist/core/Provider.d.ts +69 -0
  37. package/dist/core/Provider.d.ts.map +1 -0
  38. package/dist/core/Provider.js +401 -0
  39. package/dist/core/Provider.js.map +1 -0
  40. package/dist/core/Remote.d.ts +114 -0
  41. package/dist/core/Remote.d.ts.map +1 -0
  42. package/dist/core/Remote.js +116 -0
  43. package/dist/core/Remote.js.map +1 -0
  44. package/dist/core/Schema.d.ts +805 -0
  45. package/dist/core/Schema.d.ts.map +1 -0
  46. package/dist/core/Schema.js +43 -0
  47. package/dist/core/Schema.js.map +1 -0
  48. package/dist/core/Storage.d.ts +42 -0
  49. package/dist/core/Storage.d.ts.map +1 -0
  50. package/dist/core/Storage.js +173 -0
  51. package/dist/core/Storage.js.map +1 -0
  52. package/dist/core/Store.d.ts +58 -0
  53. package/dist/core/Store.d.ts.map +1 -0
  54. package/dist/core/Store.js +58 -0
  55. package/dist/core/Store.js.map +1 -0
  56. package/dist/core/adapters/dangerous_secp256k1.d.ts +30 -0
  57. package/dist/core/adapters/dangerous_secp256k1.d.ts.map +1 -0
  58. package/dist/core/adapters/dangerous_secp256k1.js +39 -0
  59. package/dist/core/adapters/dangerous_secp256k1.js.map +1 -0
  60. package/dist/core/adapters/dialog.d.ts +31 -0
  61. package/dist/core/adapters/dialog.d.ts.map +1 -0
  62. package/dist/core/adapters/dialog.js +306 -0
  63. package/dist/core/adapters/dialog.js.map +1 -0
  64. package/dist/core/adapters/local.d.ts +33 -0
  65. package/dist/core/adapters/local.d.ts.map +1 -0
  66. package/dist/core/adapters/local.js +227 -0
  67. package/dist/core/adapters/local.js.map +1 -0
  68. package/dist/core/adapters/webAuthn.d.ts +36 -0
  69. package/dist/core/adapters/webAuthn.d.ts.map +1 -0
  70. package/dist/core/adapters/webAuthn.js +93 -0
  71. package/dist/core/adapters/webAuthn.js.map +1 -0
  72. package/dist/core/internal/withDedupe.d.ts +12 -0
  73. package/dist/core/internal/withDedupe.d.ts.map +1 -0
  74. package/dist/core/internal/withDedupe.js +12 -0
  75. package/dist/core/internal/withDedupe.js.map +1 -0
  76. package/dist/core/zod/request.d.ts +31 -0
  77. package/dist/core/zod/request.d.ts.map +1 -0
  78. package/dist/core/zod/request.js +41 -0
  79. package/dist/core/zod/request.js.map +1 -0
  80. package/dist/core/zod/rpc.d.ts +603 -0
  81. package/dist/core/zod/rpc.d.ts.map +1 -0
  82. package/dist/core/zod/rpc.js +293 -0
  83. package/dist/core/zod/rpc.js.map +1 -0
  84. package/dist/core/zod/utils.d.ts +18 -0
  85. package/dist/core/zod/utils.d.ts.map +1 -0
  86. package/dist/core/zod/utils.js +21 -0
  87. package/dist/core/zod/utils.js.map +1 -0
  88. package/dist/index.d.ts +15 -0
  89. package/dist/index.d.ts.map +1 -0
  90. package/dist/index.js +15 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/internal/types.d.ts +284 -0
  93. package/dist/internal/types.d.ts.map +1 -0
  94. package/dist/internal/types.js +2 -0
  95. package/dist/internal/types.js.map +1 -0
  96. package/dist/server/Handler.d.ts +257 -0
  97. package/dist/server/Handler.d.ts.map +1 -0
  98. package/dist/server/Handler.js +433 -0
  99. package/dist/server/Handler.js.map +1 -0
  100. package/dist/server/Kv.d.ts +16 -0
  101. package/dist/server/Kv.d.ts.map +1 -0
  102. package/dist/server/Kv.js +30 -0
  103. package/dist/server/Kv.js.map +1 -0
  104. package/dist/server/index.d.ts +3 -0
  105. package/dist/server/index.d.ts.map +1 -0
  106. package/dist/server/index.js +3 -0
  107. package/dist/server/index.js.map +1 -0
  108. package/dist/server/internal/requestListener.d.ts +124 -0
  109. package/dist/server/internal/requestListener.d.ts.map +1 -0
  110. package/dist/server/internal/requestListener.js +173 -0
  111. package/dist/server/internal/requestListener.js.map +1 -0
  112. package/dist/wagmi/Connector.d.ts +93 -0
  113. package/dist/wagmi/Connector.d.ts.map +1 -0
  114. package/dist/wagmi/Connector.js +238 -0
  115. package/dist/wagmi/Connector.js.map +1 -0
  116. package/dist/wagmi/index.d.ts +3 -0
  117. package/dist/wagmi/index.d.ts.map +1 -0
  118. package/dist/wagmi/index.js +3 -0
  119. package/dist/wagmi/index.js.map +1 -0
  120. package/package.json +56 -2
  121. package/src/core/AccessKey.test.ts +257 -0
  122. package/src/core/AccessKey.ts +123 -0
  123. package/src/core/Account.test.ts +309 -0
  124. package/src/core/Account.ts +152 -0
  125. package/src/core/Adapter.ts +238 -0
  126. package/src/core/Ceremony.browser.test.ts +239 -0
  127. package/src/core/Ceremony.test.ts +151 -0
  128. package/src/core/Ceremony.ts +203 -0
  129. package/src/core/Client.ts +36 -0
  130. package/src/core/Dialog.browser.test.ts +309 -0
  131. package/src/core/Dialog.test-d.ts +19 -0
  132. package/src/core/Dialog.ts +442 -0
  133. package/src/core/Expiry.ts +34 -0
  134. package/src/core/Messenger.ts +206 -0
  135. package/src/core/Provider.browser.test.ts +774 -0
  136. package/src/core/Provider.connect.browser.test.ts +415 -0
  137. package/src/core/Provider.test-d.ts +53 -0
  138. package/src/core/Provider.test.ts +1566 -0
  139. package/src/core/Provider.ts +559 -0
  140. package/src/core/Remote.ts +262 -0
  141. package/src/core/Schema.test-d.ts +211 -0
  142. package/src/core/Schema.ts +143 -0
  143. package/src/core/Storage.ts +213 -0
  144. package/src/core/Store.test.ts +287 -0
  145. package/src/core/Store.ts +129 -0
  146. package/src/core/adapters/dangerous_secp256k1.ts +53 -0
  147. package/src/core/adapters/dialog.ts +379 -0
  148. package/src/core/adapters/local.test.ts +97 -0
  149. package/src/core/adapters/local.ts +277 -0
  150. package/src/core/adapters/webAuthn.ts +129 -0
  151. package/src/core/internal/withDedupe.test.ts +116 -0
  152. package/src/core/internal/withDedupe.ts +20 -0
  153. package/src/core/mppx.test.ts +83 -0
  154. package/src/core/zod/request.test.ts +121 -0
  155. package/src/core/zod/request.ts +70 -0
  156. package/src/core/zod/rpc.ts +374 -0
  157. package/src/core/zod/utils.test.ts +69 -0
  158. package/src/core/zod/utils.ts +40 -0
  159. package/src/index.ts +14 -0
  160. package/src/internal/types.ts +378 -0
  161. package/src/server/Handler.test.ts +1014 -0
  162. package/src/server/Handler.ts +605 -0
  163. package/src/server/Kv.ts +46 -0
  164. package/src/server/index.ts +2 -0
  165. package/src/server/internal/requestListener.ts +273 -0
  166. package/src/tsconfig.json +9 -0
  167. package/src/wagmi/Connector.ts +287 -0
  168. package/src/wagmi/index.ts +2 -0
@@ -0,0 +1,378 @@
1
+ /** Combines members of an intersection into a readable type. */
2
+ // https://twitter.com/mattpocockuk/status/1622730173446557697?s=20&t=NdpAcmEFXY01xkqU3KO0Mg
3
+ export type Compute<type> = { [key in keyof type]: type[key] } & unknown
4
+
5
+ declare const symbol: unique symbol
6
+
7
+ /**
8
+ * Creates a branded type of `T` with the brand `U`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * type Result = Branded<string, 'foo'>
13
+ * // ^? type Result = string & { [symbol]: 'foo' }
14
+ * ```
15
+ */
16
+ export type Branded<T, U> = T & { [symbol]: U }
17
+
18
+ /**
19
+ * Filters out all members of `T` that are not `P`
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * type Result = Filter<['a', 'b', 'c'], 'b'>
24
+ * // ^? type Result = ['a', 'c']
25
+ * ```
26
+ *
27
+ * @internal
28
+ */
29
+ export type Filter<
30
+ T extends readonly unknown[],
31
+ P,
32
+ Acc extends readonly unknown[] = [],
33
+ > = T extends readonly [infer F, ...infer Rest extends readonly unknown[]]
34
+ ? [F] extends [P]
35
+ ? Filter<Rest, P, [...Acc, F]>
36
+ : Filter<Rest, P, Acc>
37
+ : readonly [...Acc]
38
+
39
+ /**
40
+ * Checks if `T` can be narrowed further than `U`
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * type Result = IsNarrowable<'foo', string>
45
+ * // ^? true
46
+ * ```
47
+ */
48
+ export type IsNarrowable<T, U> =
49
+ IsNever<(T extends U ? true : false) & (U extends T ? false : true)> extends true ? false : true
50
+
51
+ /**
52
+ * Checks if `T` is `never`
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * type Result = IsNever<never>
57
+ * // ^? type Result = true
58
+ * ```
59
+ */
60
+ export type IsNever<T> = [T] extends [never] ? true : false
61
+
62
+ /**
63
+ * Removes `readonly` from all properties of an object.
64
+ *
65
+ * @internal
66
+ */
67
+ export type Mutable<type extends object> = {
68
+ -readonly [key in keyof type]: type[key]
69
+ }
70
+
71
+ /**
72
+ * Evaluates boolean "or" condition for `T` properties.
73
+ *
74
+ * * @example
75
+ * ```ts
76
+ * type Result = Or<[false, true, false]>
77
+ * // ^? type Result = true
78
+ * ```
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * type Result = Or<[false, false, false]>
83
+ * // ^? type Result = false
84
+ * ```
85
+ *
86
+ * @internal
87
+ */
88
+ export type Or<T extends readonly unknown[]> = T extends readonly [infer Head, ...infer Tail]
89
+ ? Head extends true
90
+ ? true
91
+ : Or<Tail>
92
+ : false
93
+
94
+ /**
95
+ * Checks if `T` is `undefined`
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * type Result = IsUndefined<undefined>
100
+ * // ^? type Result = true
101
+ * ```
102
+ *
103
+ * @internal
104
+ */
105
+ export type IsUndefined<T> = [undefined] extends [T] ? true : false
106
+
107
+ /**
108
+ * Checks if type `T` is the `unknown` type.
109
+ *
110
+ * @internal
111
+ */
112
+ export type IsUnknown<T> = unknown extends T ? ([T] extends [null] ? false : true) : false
113
+
114
+ /** @internal */
115
+ export type MaybePromise<T> = T | Promise<T>
116
+
117
+ /**
118
+ * Makes attributes on the type T required if required is true.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * MaybeRequired<{ a: string, b?: number }, true>
123
+ * // { a: string, b: number }
124
+ *
125
+ * MaybeRequired<{ a: string, b?: number }, false>
126
+ * // { a: string, b?: number }
127
+ * ```
128
+ *
129
+ * @internal
130
+ */
131
+ export type MaybeRequired<T, required extends boolean> = required extends true
132
+ ? ExactRequired<T>
133
+ : T
134
+
135
+ /**
136
+ * Assigns the properties of U onto T.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * Assign<{ a: string, b: number }, { a: undefined, c: boolean }>
141
+ * // { a: undefined, b: number, c: boolean }
142
+ * ```
143
+ *
144
+ * @internal
145
+ */
146
+ export type Assign<T, U> = Assign_inner<T, U> & U
147
+
148
+ /** @internal */
149
+ export type Assign_inner<T, U> = {
150
+ [K in keyof T as K extends keyof U ? (U[K] extends void ? never : K) : K]: K extends keyof U
151
+ ? U[K]
152
+ : T[K]
153
+ }
154
+
155
+ /**
156
+ * Constructs a type by excluding `undefined` from `T`.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * NoUndefined<string | undefined>
161
+ * // string
162
+ * ```
163
+ *
164
+ * @internal
165
+ */
166
+ export type NoUndefined<T> = T extends undefined ? never : T
167
+
168
+ /**
169
+ * Strict version of built-in Omit type
170
+ *
171
+ * @internal
172
+ */
173
+ export type Omit<type, keys extends keyof type> = Pick<type, Exclude<keyof type, keys>>
174
+
175
+ /**
176
+ * Creates a type that is a partial of T, but with the required keys K.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * PartialBy<{ a: string, b: number }, 'a'>
181
+ * // { a?: string, b: number }
182
+ * ```
183
+ *
184
+ * @internal
185
+ */
186
+ export type PartialBy<T, K extends keyof T> = Omit<T, K> & ExactPartial<Pick<T, K>>
187
+
188
+ export type RecursiveArray<T> = T | readonly RecursiveArray<T>[]
189
+
190
+ /**
191
+ * Creates a type that is T with the required keys K.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * RequiredBy<{ a?: string, b: number }, 'a'>
196
+ * // { a: string, b: number }
197
+ * ```
198
+ *
199
+ * @internal
200
+ */
201
+ export type RequiredBy<T, K extends keyof T> = Omit<T, K> & ExactRequired<Pick<T, K>>
202
+
203
+ /**
204
+ * Returns truthy if `array` contains `value`.
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * Some<[1, 2, 3], 2>
209
+ * // true
210
+ * ```
211
+ *
212
+ * @internal
213
+ */
214
+ export type Some<array extends readonly unknown[], value> = array extends readonly [
215
+ value,
216
+ ...unknown[],
217
+ ]
218
+ ? true
219
+ : array extends readonly [unknown, ...infer rest]
220
+ ? Some<rest, value>
221
+ : false
222
+
223
+ /**
224
+ * Prints custom error message
225
+ *
226
+ * @param messages - Error message
227
+ * @returns Custom error message
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * type Result = TypeErrorMessage<'Custom error message'>
232
+ * // ^? type Result = ['Error: Custom error message']
233
+ * ```
234
+ */
235
+ export type TypeErrorMessage<messages extends string | string[]> = messages extends string
236
+ ? [
237
+ // Surrounding with array to prevent `messages` from being widened to `string`
238
+ `Error: ${messages}`,
239
+ ]
240
+ : {
241
+ [key in keyof messages]: messages[key] extends infer message extends string
242
+ ? `Error: ${message}`
243
+ : never
244
+ }
245
+
246
+ /** @internal */
247
+ export type UnionToTuple<
248
+ union,
249
+ ///
250
+ last = LastInUnion<union>,
251
+ > = [union] extends [never] ? [] : [...UnionToTuple<Exclude<union, last>>, last]
252
+
253
+ /** @internal */
254
+ export type LastInUnion<U> =
255
+ UnionToIntersection<U extends unknown ? (x: U) => 0 : never> extends (x: infer l) => 0 ? l : never
256
+
257
+ /** @internal */
258
+ export type UnionToIntersection<union> = (
259
+ union extends unknown ? (arg: union) => 0 : never
260
+ ) extends (arg: infer i) => 0
261
+ ? i
262
+ : never
263
+
264
+ /** @internal */
265
+ export type IsUnion<
266
+ union,
267
+ ///
268
+ union2 = union,
269
+ > = union extends union2 ? ([union2] extends [union] ? false : true) : never
270
+
271
+ /** @internal */
272
+ export type MaybePartial<type, enabled extends boolean | undefined> = enabled extends true
273
+ ? Compute<ExactPartial<type>>
274
+ : type
275
+
276
+ export type ExactPartial<type> = {
277
+ [key in keyof type]?: type[key] | undefined
278
+ }
279
+
280
+ /** @internal */
281
+ export type ExactRequired<type> = {
282
+ [key in keyof type]-?: Exclude<type[key], undefined>
283
+ }
284
+
285
+ export type OneOf<
286
+ union extends object,
287
+ fallback extends object | undefined = undefined,
288
+ ///
289
+ keys extends KeyofUnion<union> = KeyofUnion<union>,
290
+ > = union extends infer item
291
+ ? Compute<
292
+ item & {
293
+ [key in Exclude<keys, keyof item>]?: fallback extends object
294
+ ? key extends keyof fallback
295
+ ? fallback[key]
296
+ : undefined
297
+ : undefined
298
+ }
299
+ >
300
+ : never
301
+
302
+ /** @internal */
303
+ export type KeyofUnion<type> = type extends type ? keyof type : never
304
+
305
+ /** @internal */
306
+ export type Undefined<type> = {
307
+ [key in keyof type]?: undefined
308
+ }
309
+
310
+ ///////////////////////////////////////////////////////////////////////////
311
+ // Loose types
312
+
313
+ /**
314
+ * Loose version of {@link Omit}
315
+ * @internal
316
+ */
317
+ export type LooseOmit<type, keys extends string> = Pick<type, Exclude<keyof type, keys>>
318
+
319
+ ///////////////////////////////////////////////////////////////////////////
320
+ // Union types
321
+
322
+ /** @internal */
323
+ export type UnionCompute<type> = type extends object ? Compute<type> : type
324
+
325
+ /** @internal */
326
+ export type UnionLooseOmit<type, keys extends string> = type extends any
327
+ ? LooseOmit<type, keys>
328
+ : never
329
+
330
+ /**
331
+ * Construct a type with the properties of union type T except for those in type K.
332
+ * @example
333
+ * ```ts
334
+ * type Result = UnionOmit<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
335
+ * // { b: number } | { b: undefined, c: number }
336
+ * ```
337
+ *
338
+ * @internal
339
+ */
340
+ export type UnionOmit<type, keys extends keyof type> = type extends any ? Omit<type, keys> : never
341
+
342
+ /**
343
+ * Construct a type with the properties of union type T except for those in type K.
344
+ * @example
345
+ * ```ts
346
+ * type Result = UnionOmit<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
347
+ * // { b: number } | { b: undefined, c: number }
348
+ * ```
349
+ *
350
+ * @internal
351
+ */
352
+ export type UnionPick<type, keys extends keyof type> = type extends any ? Pick<type, keys> : never
353
+
354
+ /**
355
+ * Creates a type that is a partial of T, but with the required keys K.
356
+ *
357
+ * @example
358
+ * ```ts
359
+ * PartialBy<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
360
+ * // { a?: string, b: number } | { a?: string, b: undefined, c: number }
361
+ * ```
362
+ *
363
+ * @internal
364
+ */
365
+ export type UnionPartialBy<T, K extends keyof T> = T extends any ? PartialBy<T, K> : never
366
+
367
+ /**
368
+ * Creates a type that is T with the required keys K.
369
+ *
370
+ * @example
371
+ * ```ts
372
+ * RequiredBy<{ a?: string, b: number } | { a?: string, c?: number }, 'a'>
373
+ * // { a: string, b: number } | { a: string, c?: number }
374
+ * ```
375
+ *
376
+ * @internal
377
+ */
378
+ export type UnionRequiredBy<T, K extends keyof T> = T extends any ? RequiredBy<T, K> : never