@metamask/snaps-utils 7.3.0 → 7.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 (52) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/dist/{chunk-4LELSKWG.js → chunk-3ZSYZX3I.js} +3 -3
  3. package/dist/{chunk-YAKDZ5LP.js → chunk-4YAWNZXM.js} +1 -1
  4. package/dist/chunk-4YAWNZXM.js.map +1 -0
  5. package/dist/{chunk-E5WSD47S.js → chunk-IAHW6IFC.js} +9 -3
  6. package/dist/chunk-IAHW6IFC.js.map +1 -0
  7. package/dist/{chunk-XNUUUOKX.js → chunk-KSRDEGBC.js} +6 -1
  8. package/dist/chunk-KSRDEGBC.js.map +1 -0
  9. package/dist/{chunk-YACE3IOJ.mjs → chunk-MJGSG5N2.mjs} +1 -1
  10. package/dist/chunk-MJGSG5N2.mjs.map +1 -0
  11. package/dist/{chunk-D7Z3SN2N.js → chunk-N4KSSDO5.js} +3 -3
  12. package/dist/{chunk-HTS6HGUU.mjs → chunk-QNPXK3B3.mjs} +8 -2
  13. package/dist/chunk-QNPXK3B3.mjs.map +1 -0
  14. package/dist/{chunk-PBSBESZZ.mjs → chunk-RLA43SHY.mjs} +2 -2
  15. package/dist/{chunk-2OJY3BXD.mjs → chunk-UCRFECSX.mjs} +2 -2
  16. package/dist/{chunk-PBXAWRWW.mjs → chunk-X3XJN63W.mjs} +6 -1
  17. package/dist/chunk-X3XJN63W.mjs.map +1 -0
  18. package/dist/derivation-paths.js +2 -2
  19. package/dist/derivation-paths.mjs +1 -1
  20. package/dist/index.js +7 -5
  21. package/dist/index.mjs +6 -4
  22. package/dist/manifest/index.js +4 -2
  23. package/dist/manifest/index.mjs +3 -1
  24. package/dist/manifest/manifest.js +3 -3
  25. package/dist/manifest/manifest.mjs +2 -2
  26. package/dist/manifest/node.js +5 -3
  27. package/dist/manifest/node.mjs +4 -2
  28. package/dist/manifest/validation.js +4 -2
  29. package/dist/manifest/validation.mjs +3 -1
  30. package/dist/node.js +8 -6
  31. package/dist/node.mjs +7 -5
  32. package/dist/npm.js +3 -3
  33. package/dist/npm.mjs +2 -2
  34. package/dist/tsconfig.build.tsbuildinfo +1 -1
  35. package/dist/types/handlers.d.ts +168 -28
  36. package/dist/types/manifest/validation.d.ts +7 -11
  37. package/dist/types/ui.d.ts +2 -2
  38. package/dist/ui.js +2 -2
  39. package/dist/ui.mjs +1 -1
  40. package/dist/validation.js +3 -3
  41. package/dist/validation.mjs +2 -2
  42. package/package.json +5 -5
  43. package/dist/chunk-E5WSD47S.js.map +0 -1
  44. package/dist/chunk-HTS6HGUU.mjs.map +0 -1
  45. package/dist/chunk-PBXAWRWW.mjs.map +0 -1
  46. package/dist/chunk-XNUUUOKX.js.map +0 -1
  47. package/dist/chunk-YACE3IOJ.mjs.map +0 -1
  48. package/dist/chunk-YAKDZ5LP.js.map +0 -1
  49. /package/dist/{chunk-4LELSKWG.js.map → chunk-3ZSYZX3I.js.map} +0 -0
  50. /package/dist/{chunk-D7Z3SN2N.js.map → chunk-N4KSSDO5.js.map} +0 -0
  51. /package/dist/{chunk-PBSBESZZ.mjs.map → chunk-RLA43SHY.mjs.map} +0 -0
  52. /package/dist/{chunk-2OJY3BXD.mjs.map → chunk-UCRFECSX.mjs.map} +0 -0
@@ -72,7 +72,7 @@ export declare const OnTransactionResponseWithIdStruct: import("superstruct").St
72
72
  severity: import("superstruct").Struct<SeverityLevel | undefined, SeverityLevel>;
73
73
  }>;
74
74
  export declare const OnTransactionResponseWithContentStruct: import("superstruct").Struct<{
75
- content: import("@metamask/snaps-sdk/jsx-runtime").JSXElement | import("@metamask/snaps-sdk").Panel | {
75
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | {
76
76
  value: string;
77
77
  type: import("@metamask/snaps-sdk").NodeType.Copyable;
78
78
  sensitive?: boolean | undefined;
@@ -113,9 +113,9 @@ export declare const OnTransactionResponseWithContentStruct: import("superstruct
113
113
  name: string;
114
114
  value?: string | undefined;
115
115
  error?: string | undefined;
116
- placeholder?: string | undefined;
117
116
  label?: string | undefined;
118
117
  inputType?: "number" | "text" | "password" | undefined;
118
+ placeholder?: string | undefined;
119
119
  } | {
120
120
  value: string;
121
121
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -130,9 +130,9 @@ export declare const OnTransactionResponseWithContentStruct: import("superstruct
130
130
  name: string;
131
131
  value?: string | undefined;
132
132
  error?: string | undefined;
133
- placeholder?: string | undefined;
134
133
  label?: string | undefined;
135
134
  inputType?: "number" | "text" | "password" | undefined;
135
+ placeholder?: string | undefined;
136
136
  } | {
137
137
  value: string;
138
138
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -140,10 +140,30 @@ export declare const OnTransactionResponseWithContentStruct: import("superstruct
140
140
  variant?: "primary" | "secondary" | undefined;
141
141
  buttonType?: "button" | "submit" | undefined;
142
142
  })[];
143
- };
143
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<{
144
+ name: string;
145
+ type?: "number" | "text" | "password" | undefined;
146
+ value?: string | undefined;
147
+ placeholder?: string | undefined;
148
+ }, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
149
+ name: string;
150
+ value?: string | undefined;
151
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<{
152
+ value: string;
153
+ children: string;
154
+ }, "Option">>;
155
+ }, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
156
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field">>;
157
+ name: string;
158
+ }, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
159
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
160
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
161
+ src: string;
162
+ alt?: string | undefined;
163
+ }, "Image">;
144
164
  severity?: SeverityLevel | undefined;
145
165
  }, {
146
- content: import("superstruct").Struct<import("@metamask/snaps-sdk/jsx-runtime").JSXElement | import("@metamask/snaps-sdk").Panel | {
166
+ content: import("superstruct").Struct<import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | {
147
167
  value: string;
148
168
  type: import("@metamask/snaps-sdk").NodeType.Copyable;
149
169
  sensitive?: boolean | undefined;
@@ -184,9 +204,9 @@ export declare const OnTransactionResponseWithContentStruct: import("superstruct
184
204
  name: string;
185
205
  value?: string | undefined;
186
206
  error?: string | undefined;
187
- placeholder?: string | undefined;
188
207
  label?: string | undefined;
189
208
  inputType?: "number" | "text" | "password" | undefined;
209
+ placeholder?: string | undefined;
190
210
  } | {
191
211
  value: string;
192
212
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -201,9 +221,9 @@ export declare const OnTransactionResponseWithContentStruct: import("superstruct
201
221
  name: string;
202
222
  value?: string | undefined;
203
223
  error?: string | undefined;
204
- placeholder?: string | undefined;
205
224
  label?: string | undefined;
206
225
  inputType?: "number" | "text" | "password" | undefined;
226
+ placeholder?: string | undefined;
207
227
  } | {
208
228
  value: string;
209
229
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -211,14 +231,34 @@ export declare const OnTransactionResponseWithContentStruct: import("superstruct
211
231
  variant?: "primary" | "secondary" | undefined;
212
232
  buttonType?: "button" | "submit" | undefined;
213
233
  })[];
214
- }, null>;
234
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<{
235
+ name: string;
236
+ type?: "number" | "text" | "password" | undefined;
237
+ value?: string | undefined;
238
+ placeholder?: string | undefined;
239
+ }, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
240
+ name: string;
241
+ value?: string | undefined;
242
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<{
243
+ value: string;
244
+ children: string;
245
+ }, "Option">>;
246
+ }, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
247
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field">>;
248
+ name: string;
249
+ }, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
250
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
251
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
252
+ src: string;
253
+ alt?: string | undefined;
254
+ }, "Image">, null>;
215
255
  severity: import("superstruct").Struct<SeverityLevel | undefined, SeverityLevel>;
216
256
  }>;
217
257
  export declare const OnTransactionResponseStruct: import("superstruct").Struct<{
218
258
  id: string;
219
259
  severity?: SeverityLevel | undefined;
220
260
  } | {
221
- content: import("@metamask/snaps-sdk/jsx-runtime").JSXElement | import("@metamask/snaps-sdk").Panel | {
261
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | {
222
262
  value: string;
223
263
  type: import("@metamask/snaps-sdk").NodeType.Copyable;
224
264
  sensitive?: boolean | undefined;
@@ -259,9 +299,9 @@ export declare const OnTransactionResponseStruct: import("superstruct").Struct<{
259
299
  name: string;
260
300
  value?: string | undefined;
261
301
  error?: string | undefined;
262
- placeholder?: string | undefined;
263
302
  label?: string | undefined;
264
303
  inputType?: "number" | "text" | "password" | undefined;
304
+ placeholder?: string | undefined;
265
305
  } | {
266
306
  value: string;
267
307
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -276,9 +316,9 @@ export declare const OnTransactionResponseStruct: import("superstruct").Struct<{
276
316
  name: string;
277
317
  value?: string | undefined;
278
318
  error?: string | undefined;
279
- placeholder?: string | undefined;
280
319
  label?: string | undefined;
281
320
  inputType?: "number" | "text" | "password" | undefined;
321
+ placeholder?: string | undefined;
282
322
  } | {
283
323
  value: string;
284
324
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -286,14 +326,34 @@ export declare const OnTransactionResponseStruct: import("superstruct").Struct<{
286
326
  variant?: "primary" | "secondary" | undefined;
287
327
  buttonType?: "button" | "submit" | undefined;
288
328
  })[];
289
- };
329
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<{
330
+ name: string;
331
+ type?: "number" | "text" | "password" | undefined;
332
+ value?: string | undefined;
333
+ placeholder?: string | undefined;
334
+ }, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
335
+ name: string;
336
+ value?: string | undefined;
337
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<{
338
+ value: string;
339
+ children: string;
340
+ }, "Option">>;
341
+ }, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
342
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field">>;
343
+ name: string;
344
+ }, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
345
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
346
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
347
+ src: string;
348
+ alt?: string | undefined;
349
+ }, "Image">;
290
350
  severity?: SeverityLevel | undefined;
291
351
  } | null, null>;
292
352
  export declare const OnSignatureResponseStruct: import("superstruct").Struct<{
293
353
  id: string;
294
354
  severity?: SeverityLevel | undefined;
295
355
  } | {
296
- content: import("@metamask/snaps-sdk/jsx-runtime").JSXElement | import("@metamask/snaps-sdk").Panel | {
356
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | {
297
357
  value: string;
298
358
  type: import("@metamask/snaps-sdk").NodeType.Copyable;
299
359
  sensitive?: boolean | undefined;
@@ -334,9 +394,9 @@ export declare const OnSignatureResponseStruct: import("superstruct").Struct<{
334
394
  name: string;
335
395
  value?: string | undefined;
336
396
  error?: string | undefined;
337
- placeholder?: string | undefined;
338
397
  label?: string | undefined;
339
398
  inputType?: "number" | "text" | "password" | undefined;
399
+ placeholder?: string | undefined;
340
400
  } | {
341
401
  value: string;
342
402
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -351,9 +411,9 @@ export declare const OnSignatureResponseStruct: import("superstruct").Struct<{
351
411
  name: string;
352
412
  value?: string | undefined;
353
413
  error?: string | undefined;
354
- placeholder?: string | undefined;
355
414
  label?: string | undefined;
356
415
  inputType?: "number" | "text" | "password" | undefined;
416
+ placeholder?: string | undefined;
357
417
  } | {
358
418
  value: string;
359
419
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -361,11 +421,31 @@ export declare const OnSignatureResponseStruct: import("superstruct").Struct<{
361
421
  variant?: "primary" | "secondary" | undefined;
362
422
  buttonType?: "button" | "submit" | undefined;
363
423
  })[];
364
- };
424
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<{
425
+ name: string;
426
+ type?: "number" | "text" | "password" | undefined;
427
+ value?: string | undefined;
428
+ placeholder?: string | undefined;
429
+ }, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
430
+ name: string;
431
+ value?: string | undefined;
432
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<{
433
+ value: string;
434
+ children: string;
435
+ }, "Option">>;
436
+ }, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
437
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field">>;
438
+ name: string;
439
+ }, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
440
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
441
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
442
+ src: string;
443
+ alt?: string | undefined;
444
+ }, "Image">;
365
445
  severity?: SeverityLevel | undefined;
366
446
  } | null, null>;
367
447
  export declare const OnHomePageResponseWithContentStruct: import("superstruct").Struct<{
368
- content: import("@metamask/snaps-sdk/jsx-runtime").JSXElement | import("@metamask/snaps-sdk").Panel | {
448
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | {
369
449
  value: string;
370
450
  type: import("@metamask/snaps-sdk").NodeType.Copyable;
371
451
  sensitive?: boolean | undefined;
@@ -406,9 +486,9 @@ export declare const OnHomePageResponseWithContentStruct: import("superstruct").
406
486
  name: string;
407
487
  value?: string | undefined;
408
488
  error?: string | undefined;
409
- placeholder?: string | undefined;
410
489
  label?: string | undefined;
411
490
  inputType?: "number" | "text" | "password" | undefined;
491
+ placeholder?: string | undefined;
412
492
  } | {
413
493
  value: string;
414
494
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -423,9 +503,9 @@ export declare const OnHomePageResponseWithContentStruct: import("superstruct").
423
503
  name: string;
424
504
  value?: string | undefined;
425
505
  error?: string | undefined;
426
- placeholder?: string | undefined;
427
506
  label?: string | undefined;
428
507
  inputType?: "number" | "text" | "password" | undefined;
508
+ placeholder?: string | undefined;
429
509
  } | {
430
510
  value: string;
431
511
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -433,9 +513,29 @@ export declare const OnHomePageResponseWithContentStruct: import("superstruct").
433
513
  variant?: "primary" | "secondary" | undefined;
434
514
  buttonType?: "button" | "submit" | undefined;
435
515
  })[];
436
- };
516
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<{
517
+ name: string;
518
+ type?: "number" | "text" | "password" | undefined;
519
+ value?: string | undefined;
520
+ placeholder?: string | undefined;
521
+ }, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
522
+ name: string;
523
+ value?: string | undefined;
524
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<{
525
+ value: string;
526
+ children: string;
527
+ }, "Option">>;
528
+ }, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
529
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field">>;
530
+ name: string;
531
+ }, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
532
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
533
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
534
+ src: string;
535
+ alt?: string | undefined;
536
+ }, "Image">;
437
537
  }, {
438
- content: import("superstruct").Struct<import("@metamask/snaps-sdk/jsx-runtime").JSXElement | import("@metamask/snaps-sdk").Panel | {
538
+ content: import("superstruct").Struct<import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | {
439
539
  value: string;
440
540
  type: import("@metamask/snaps-sdk").NodeType.Copyable;
441
541
  sensitive?: boolean | undefined;
@@ -476,9 +576,9 @@ export declare const OnHomePageResponseWithContentStruct: import("superstruct").
476
576
  name: string;
477
577
  value?: string | undefined;
478
578
  error?: string | undefined;
479
- placeholder?: string | undefined;
480
579
  label?: string | undefined;
481
580
  inputType?: "number" | "text" | "password" | undefined;
581
+ placeholder?: string | undefined;
482
582
  } | {
483
583
  value: string;
484
584
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -493,9 +593,9 @@ export declare const OnHomePageResponseWithContentStruct: import("superstruct").
493
593
  name: string;
494
594
  value?: string | undefined;
495
595
  error?: string | undefined;
496
- placeholder?: string | undefined;
497
596
  label?: string | undefined;
498
597
  inputType?: "number" | "text" | "password" | undefined;
598
+ placeholder?: string | undefined;
499
599
  } | {
500
600
  value: string;
501
601
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -503,7 +603,27 @@ export declare const OnHomePageResponseWithContentStruct: import("superstruct").
503
603
  variant?: "primary" | "secondary" | undefined;
504
604
  buttonType?: "button" | "submit" | undefined;
505
605
  })[];
506
- }, null>;
606
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<{
607
+ name: string;
608
+ type?: "number" | "text" | "password" | undefined;
609
+ value?: string | undefined;
610
+ placeholder?: string | undefined;
611
+ }, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
612
+ name: string;
613
+ value?: string | undefined;
614
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<{
615
+ value: string;
616
+ children: string;
617
+ }, "Option">>;
618
+ }, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
619
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field">>;
620
+ name: string;
621
+ }, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
622
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
623
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
624
+ src: string;
625
+ alt?: string | undefined;
626
+ }, "Image">, null>;
507
627
  }>;
508
628
  export declare const OnHomePageResponseWithIdStruct: import("superstruct").Struct<{
509
629
  id: string;
@@ -511,7 +631,7 @@ export declare const OnHomePageResponseWithIdStruct: import("superstruct").Struc
511
631
  id: import("superstruct").Struct<string, null>;
512
632
  }>;
513
633
  export declare const OnHomePageResponseStruct: import("superstruct").Struct<{
514
- content: import("@metamask/snaps-sdk/jsx-runtime").JSXElement | import("@metamask/snaps-sdk").Panel | {
634
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | {
515
635
  value: string;
516
636
  type: import("@metamask/snaps-sdk").NodeType.Copyable;
517
637
  sensitive?: boolean | undefined;
@@ -552,9 +672,9 @@ export declare const OnHomePageResponseStruct: import("superstruct").Struct<{
552
672
  name: string;
553
673
  value?: string | undefined;
554
674
  error?: string | undefined;
555
- placeholder?: string | undefined;
556
675
  label?: string | undefined;
557
676
  inputType?: "number" | "text" | "password" | undefined;
677
+ placeholder?: string | undefined;
558
678
  } | {
559
679
  value: string;
560
680
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -569,9 +689,9 @@ export declare const OnHomePageResponseStruct: import("superstruct").Struct<{
569
689
  name: string;
570
690
  value?: string | undefined;
571
691
  error?: string | undefined;
572
- placeholder?: string | undefined;
573
692
  label?: string | undefined;
574
693
  inputType?: "number" | "text" | "password" | undefined;
694
+ placeholder?: string | undefined;
575
695
  } | {
576
696
  value: string;
577
697
  type: import("@metamask/snaps-sdk").NodeType.Button;
@@ -579,7 +699,27 @@ export declare const OnHomePageResponseStruct: import("superstruct").Struct<{
579
699
  variant?: "primary" | "secondary" | undefined;
580
700
  buttonType?: "button" | "submit" | undefined;
581
701
  })[];
582
- };
702
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<{
703
+ name: string;
704
+ type?: "number" | "text" | "password" | undefined;
705
+ value?: string | undefined;
706
+ placeholder?: string | undefined;
707
+ }, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
708
+ name: string;
709
+ value?: string | undefined;
710
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<{
711
+ value: string;
712
+ children: string;
713
+ }, "Option">>;
714
+ }, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
715
+ children: import("@metamask/snaps-sdk/jsx").MaybeArray<import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field">>;
716
+ name: string;
717
+ }, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
718
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
719
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
720
+ src: string;
721
+ alt?: string | undefined;
722
+ }, "Image">;
583
723
  } | {
584
724
  id: string;
585
725
  }, null>;
@@ -1,3 +1,4 @@
1
+ import type { SupportedCurve } from '@metamask/key-tree';
1
2
  import type { EmptyObject, InitialPermissions } from '@metamask/snaps-sdk';
2
3
  import type { Describe, Infer, Struct } from 'superstruct';
3
4
  import type { InferMatching } from '../structs';
@@ -7,29 +8,24 @@ export declare const bip32entropy: <Type extends {
7
8
  path: string[];
8
9
  curve: string;
9
10
  }, Schema>(struct: Struct<Type, Schema>) => Struct<Type, Schema>;
11
+ export declare const CurveStruct: Describe<SupportedCurve>;
10
12
  export declare const Bip32EntropyStruct: Struct<{
11
13
  path: string[];
12
- curve: "ed25519" | "secp256k1";
14
+ curve: "ed25519" | "ed25519Bip32" | "secp256k1";
13
15
  }, {
14
16
  path: Struct<string[], Struct<string, null>>;
15
- curve: Struct<"ed25519" | "secp256k1", {
16
- ed25519: "ed25519";
17
- secp256k1: "secp256k1";
18
- }>;
17
+ curve: Describe<"ed25519" | "ed25519Bip32" | "secp256k1">;
19
18
  }>;
20
19
  export declare type Bip32Entropy = Infer<typeof Bip32EntropyStruct>;
21
20
  export declare const SnapGetBip32EntropyPermissionsStruct: Struct<{
22
21
  path: string[];
23
- curve: "ed25519" | "secp256k1";
22
+ curve: "ed25519" | "ed25519Bip32" | "secp256k1";
24
23
  }[], Struct<{
25
24
  path: string[];
26
- curve: "ed25519" | "secp256k1";
25
+ curve: "ed25519" | "ed25519Bip32" | "secp256k1";
27
26
  }, {
28
27
  path: Struct<string[], Struct<string, null>>;
29
- curve: Struct<"ed25519" | "secp256k1", {
30
- ed25519: "ed25519";
31
- secp256k1: "secp256k1";
32
- }>;
28
+ curve: Describe<"ed25519" | "ed25519Bip32" | "secp256k1">;
33
29
  }>>;
34
30
  export declare const SemVerRangeStruct: Struct<string, null>;
35
31
  export declare const SnapIdsStruct: Struct<Record<string, {
@@ -1,12 +1,12 @@
1
1
  import type { Component } from '@metamask/snaps-sdk';
2
- import type { JSXElement, MaybeArray } from '@metamask/snaps-sdk/jsx';
2
+ import type { JSXElement, LinkElement, MaybeArray, StandardFormattingElement } from '@metamask/snaps-sdk/jsx';
3
3
  /**
4
4
  * Get all text children from a markdown string.
5
5
  *
6
6
  * @param value - The markdown string.
7
7
  * @returns The text children.
8
8
  */
9
- export declare function getTextChildren(value: string): (string | import("@metamask/snaps-sdk/jsx-runtime").StandardFormattingElement | import("@metamask/snaps-sdk/jsx-runtime").SnapElement<import("@metamask/snaps-sdk/jsx-runtime").LinkProps, "Link"> | null)[];
9
+ export declare function getTextChildren(value: string): (string | StandardFormattingElement | LinkElement)[];
10
10
  /**
11
11
  * Get a JSX element from a legacy UI component. This supports all legacy UI
12
12
  * components, and maps them to their JSX equivalents where possible.
package/dist/ui.js CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
 
9
9
 
10
- var _chunkYAKDZ5LPjs = require('./chunk-YAKDZ5LP.js');
10
+ var _chunk4YAWNZXMjs = require('./chunk-4YAWNZXM.js');
11
11
  require('./chunk-PHUTP7NB.js');
12
12
 
13
13
 
@@ -18,5 +18,5 @@ require('./chunk-PHUTP7NB.js');
18
18
 
19
19
 
20
20
 
21
- exports.getJsxChildren = _chunkYAKDZ5LPjs.getJsxChildren; exports.getJsxElementFromComponent = _chunkYAKDZ5LPjs.getJsxElementFromComponent; exports.getTextChildren = _chunkYAKDZ5LPjs.getTextChildren; exports.getTotalTextLength = _chunkYAKDZ5LPjs.getTotalTextLength; exports.hasChildren = _chunkYAKDZ5LPjs.hasChildren; exports.validateJsxLinks = _chunkYAKDZ5LPjs.validateJsxLinks; exports.validateTextLinks = _chunkYAKDZ5LPjs.validateTextLinks; exports.walkJsx = _chunkYAKDZ5LPjs.walkJsx;
21
+ exports.getJsxChildren = _chunk4YAWNZXMjs.getJsxChildren; exports.getJsxElementFromComponent = _chunk4YAWNZXMjs.getJsxElementFromComponent; exports.getTextChildren = _chunk4YAWNZXMjs.getTextChildren; exports.getTotalTextLength = _chunk4YAWNZXMjs.getTotalTextLength; exports.hasChildren = _chunk4YAWNZXMjs.hasChildren; exports.validateJsxLinks = _chunk4YAWNZXMjs.validateJsxLinks; exports.validateTextLinks = _chunk4YAWNZXMjs.validateTextLinks; exports.walkJsx = _chunk4YAWNZXMjs.walkJsx;
22
22
  //# sourceMappingURL=ui.js.map
package/dist/ui.mjs CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  validateJsxLinks,
8
8
  validateTextLinks,
9
9
  walkJsx
10
- } from "./chunk-YACE3IOJ.mjs";
10
+ } from "./chunk-MJGSG5N2.mjs";
11
11
  import "./chunk-JMDSN227.mjs";
12
12
  export {
13
13
  getJsxChildren,
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk4LELSKWGjs = require('./chunk-4LELSKWG.js');
4
- require('./chunk-E5WSD47S.js');
3
+ var _chunk3ZSYZX3Ijs = require('./chunk-3ZSYZX3I.js');
4
+ require('./chunk-IAHW6IFC.js');
5
5
  require('./chunk-HVTYDKBO.js');
6
6
  require('./chunk-M3KAAQFK.js');
7
7
  require('./chunk-6LOYTBS3.js');
@@ -20,5 +20,5 @@ require('./chunk-NUCLSR2G.js');
20
20
  require('./chunk-PHUTP7NB.js');
21
21
 
22
22
 
23
- exports.validateFetchedSnap = _chunk4LELSKWGjs.validateFetchedSnap;
23
+ exports.validateFetchedSnap = _chunk3ZSYZX3Ijs.validateFetchedSnap;
24
24
  //# sourceMappingURL=validation.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  validateFetchedSnap
3
- } from "./chunk-PBSBESZZ.mjs";
4
- import "./chunk-HTS6HGUU.mjs";
3
+ } from "./chunk-RLA43SHY.mjs";
4
+ import "./chunk-QNPXK3B3.mjs";
5
5
  import "./chunk-2M6G46W6.mjs";
6
6
  import "./chunk-MNCFAD4E.mjs";
7
7
  import "./chunk-EXUEHPZ4.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/snaps-utils",
3
- "version": "7.3.0",
3
+ "version": "7.4.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/MetaMask/snaps.git"
@@ -53,12 +53,12 @@
53
53
  "@babel/core": "^7.23.2",
54
54
  "@babel/types": "^7.23.0",
55
55
  "@metamask/base-controller": "^5.0.2",
56
- "@metamask/key-tree": "^9.0.0",
56
+ "@metamask/key-tree": "^9.1.1",
57
57
  "@metamask/permission-controller": "^9.0.2",
58
58
  "@metamask/rpc-errors": "^6.2.1",
59
59
  "@metamask/slip44": "^3.1.0",
60
60
  "@metamask/snaps-registry": "^3.1.0",
61
- "@metamask/snaps-sdk": "^4.1.0",
61
+ "@metamask/snaps-sdk": "^4.4.1",
62
62
  "@metamask/utils": "^8.3.0",
63
63
  "@noble/hashes": "^1.3.1",
64
64
  "@scure/base": "^1.1.1",
@@ -76,13 +76,13 @@
76
76
  "devDependencies": {
77
77
  "@esbuild-plugins/node-globals-polyfill": "^0.2.3",
78
78
  "@esbuild-plugins/node-modules-polyfill": "^0.2.2",
79
- "@lavamoat/allow-scripts": "^3.0.3",
79
+ "@lavamoat/allow-scripts": "^3.0.4",
80
80
  "@metamask/auto-changelog": "^3.4.4",
81
81
  "@metamask/eslint-config": "^12.1.0",
82
82
  "@metamask/eslint-config-jest": "^12.1.0",
83
83
  "@metamask/eslint-config-nodejs": "^12.1.0",
84
84
  "@metamask/eslint-config-typescript": "^12.1.0",
85
- "@metamask/post-message-stream": "^8.0.0",
85
+ "@metamask/post-message-stream": "^8.1.0",
86
86
  "@swc/core": "1.3.78",
87
87
  "@swc/jest": "^0.2.26",
88
88
  "@types/jest": "^27.5.1",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/manifest/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { isValidBIP32PathSegment } from '@metamask/key-tree';\nimport type { EmptyObject, InitialPermissions } from '@metamask/snaps-sdk';\nimport {\n assertStruct,\n ChecksumStruct,\n VersionStruct,\n isValidSemVerRange,\n inMilliseconds,\n Duration,\n} from '@metamask/utils';\nimport type { Describe, Infer, Struct } from 'superstruct';\nimport {\n array,\n boolean,\n create,\n enums,\n integer,\n is,\n literal,\n object,\n optional,\n refine,\n record,\n size,\n string,\n type,\n union,\n intersection,\n assign,\n} from 'superstruct';\n\nimport { isEqual } from '../array';\nimport { CronjobSpecificationArrayStruct } from '../cronjob';\nimport { SIP_6_MAGIC_VALUE, STATE_ENCRYPTION_MAGIC_VALUE } from '../entropy';\nimport { KeyringOriginsStruct, RpcOriginsStruct } from '../json-rpc';\nimport { ChainIdStruct } from '../namespace';\nimport { SnapIdStruct } from '../snaps';\nimport type { InferMatching } from '../structs';\nimport { NameStruct, NpmSnapFileNames, uri } from '../types';\n\n// BIP-43 purposes that cannot be used for entropy derivation. These are in the\n// string form, ending with `'`.\nconst FORBIDDEN_PURPOSES: string[] = [\n SIP_6_MAGIC_VALUE,\n STATE_ENCRYPTION_MAGIC_VALUE,\n];\n\nexport const FORBIDDEN_COIN_TYPES: number[] = [60];\nconst FORBIDDEN_PATHS: string[][] = FORBIDDEN_COIN_TYPES.map((coinType) => [\n 'm',\n \"44'\",\n `${coinType}'`,\n]);\n\nexport const Bip32PathStruct = refine(\n array(string()),\n 'BIP-32 path',\n (path: string[]) => {\n if (path.length === 0) {\n return 'Path must be a non-empty BIP-32 derivation path array';\n }\n\n if (path[0] !== 'm') {\n return 'Path must start with \"m\".';\n }\n\n if (path.length < 3) {\n return 'Paths must have a length of at least three.';\n }\n\n if (path.slice(1).some((part) => !isValidBIP32PathSegment(part))) {\n return 'Path must be a valid BIP-32 derivation path array.';\n }\n\n if (FORBIDDEN_PURPOSES.includes(path[1])) {\n return `The purpose \"${path[1]}\" is not allowed for entropy derivation.`;\n }\n\n if (\n FORBIDDEN_PATHS.some((forbiddenPath) =>\n isEqual(path.slice(0, forbiddenPath.length), forbiddenPath),\n )\n ) {\n return `The path \"${path.join(\n '/',\n )}\" is not allowed for entropy derivation.`;\n }\n\n return true;\n },\n);\n\nexport const bip32entropy = <\n Type extends { path: string[]; curve: string },\n Schema,\n>(\n struct: Struct<Type, Schema>,\n) =>\n refine(struct, 'BIP-32 entropy', (value) => {\n if (\n value.curve === 'ed25519' &&\n value.path.slice(1).some((part) => !part.endsWith(\"'\"))\n ) {\n return 'Ed25519 does not support unhardened paths.';\n }\n\n return true;\n });\n\n// Used outside @metamask/snap-utils\nexport const Bip32EntropyStruct = bip32entropy(\n type({\n path: Bip32PathStruct,\n curve: enums(['ed25519', 'secp256k1']),\n }),\n);\n\nexport type Bip32Entropy = Infer<typeof Bip32EntropyStruct>;\n\nexport const SnapGetBip32EntropyPermissionsStruct = size(\n array(Bip32EntropyStruct),\n 1,\n Infinity,\n);\n\nexport const SemVerRangeStruct = refine(string(), 'SemVer range', (value) => {\n if (isValidSemVerRange(value)) {\n return true;\n }\n return 'Expected a valid SemVer range.';\n});\n\nexport const SnapIdsStruct = refine(\n record(SnapIdStruct, object({ version: optional(SemVerRangeStruct) })),\n 'SnapIds',\n (value) => {\n if (Object.keys(value).length === 0) {\n return false;\n }\n\n return true;\n },\n);\n\nexport type SnapIds = Infer<typeof SnapIdsStruct>;\n\nexport const ChainIdsStruct = size(array(ChainIdStruct), 1, Infinity);\n\nexport const LookupMatchersStruct = union([\n object({\n tlds: size(array(string()), 1, Infinity),\n }),\n object({\n schemes: size(array(string()), 1, Infinity),\n }),\n object({\n tlds: size(array(string()), 1, Infinity),\n schemes: size(array(string()), 1, Infinity),\n }),\n]);\n\nexport const MINIMUM_REQUEST_TIMEOUT = inMilliseconds(5, Duration.Second);\nexport const MAXIMUM_REQUEST_TIMEOUT = inMilliseconds(3, Duration.Minute);\n\nexport const MaxRequestTimeStruct = size(\n integer(),\n MINIMUM_REQUEST_TIMEOUT,\n MAXIMUM_REQUEST_TIMEOUT,\n);\n\n// Utility type to union with for all handler structs\nexport const HandlerCaveatsStruct = object({\n maxRequestTime: optional(MaxRequestTimeStruct),\n});\n\nexport type HandlerCaveats = Infer<typeof HandlerCaveatsStruct>;\n\nexport const EmptyObjectStruct = object<EmptyObject>({}) as unknown as Struct<\n EmptyObject,\n null\n>;\n\n/* eslint-disable @typescript-eslint/naming-convention */\nexport const PermissionsStruct: Describe<InitialPermissions> = type({\n 'endowment:cronjob': optional(\n assign(\n HandlerCaveatsStruct,\n object({ jobs: CronjobSpecificationArrayStruct }),\n ),\n ),\n 'endowment:ethereum-provider': optional(EmptyObjectStruct),\n 'endowment:keyring': optional(\n assign(HandlerCaveatsStruct, KeyringOriginsStruct),\n ),\n 'endowment:lifecycle-hooks': optional(HandlerCaveatsStruct),\n 'endowment:name-lookup': optional(\n assign(\n HandlerCaveatsStruct,\n object({\n chains: optional(ChainIdsStruct),\n matchers: optional(LookupMatchersStruct),\n }),\n ),\n ),\n 'endowment:network-access': optional(EmptyObjectStruct),\n 'endowment:page-home': optional(HandlerCaveatsStruct),\n 'endowment:rpc': optional(assign(HandlerCaveatsStruct, RpcOriginsStruct)),\n 'endowment:signature-insight': optional(\n assign(\n HandlerCaveatsStruct,\n object({\n allowSignatureOrigin: optional(boolean()),\n }),\n ),\n ),\n 'endowment:transaction-insight': optional(\n assign(\n HandlerCaveatsStruct,\n object({\n allowTransactionOrigin: optional(boolean()),\n }),\n ),\n ),\n 'endowment:webassembly': optional(EmptyObjectStruct),\n snap_dialog: optional(EmptyObjectStruct),\n snap_manageState: optional(EmptyObjectStruct),\n snap_manageAccounts: optional(EmptyObjectStruct),\n snap_notify: optional(EmptyObjectStruct),\n snap_getBip32Entropy: optional(SnapGetBip32EntropyPermissionsStruct),\n snap_getBip32PublicKey: optional(SnapGetBip32EntropyPermissionsStruct),\n snap_getBip44Entropy: optional(\n size(\n array(object({ coinType: size(integer(), 0, 2 ** 32 - 1) })),\n 1,\n Infinity,\n ),\n ),\n snap_getEntropy: optional(EmptyObjectStruct),\n snap_getLocale: optional(EmptyObjectStruct),\n wallet_snap: optional(SnapIdsStruct),\n});\n/* eslint-enable @typescript-eslint/naming-convention */\n\nexport type SnapPermissions = InferMatching<\n typeof PermissionsStruct,\n InitialPermissions\n>;\n\nexport const SnapAuxilaryFilesStruct = array(string());\n\nexport const InitialConnectionsStruct = record(\n intersection([string(), uri()]),\n object({}),\n);\n\nexport type InitialConnections = Infer<typeof InitialConnectionsStruct>;\n\nexport const SnapManifestStruct = object({\n version: VersionStruct,\n description: size(string(), 1, 280),\n proposedName: size(string(), 1, 214),\n repository: optional(\n object({\n type: size(string(), 1, Infinity),\n url: size(string(), 1, Infinity),\n }),\n ),\n source: object({\n shasum: ChecksumStruct,\n location: object({\n npm: object({\n filePath: size(string(), 1, Infinity),\n iconPath: optional(size(string(), 1, Infinity)),\n packageName: NameStruct,\n registry: union([\n literal('https://registry.npmjs.org'),\n literal('https://registry.npmjs.org/'),\n ]),\n }),\n }),\n files: optional(SnapAuxilaryFilesStruct),\n locales: optional(SnapAuxilaryFilesStruct),\n }),\n initialConnections: optional(InitialConnectionsStruct),\n initialPermissions: PermissionsStruct,\n manifestVersion: literal('0.1'),\n $schema: optional(string()), // enables JSON-Schema linting in VSC and other IDEs\n});\n\nexport type SnapManifest = Infer<typeof SnapManifestStruct>;\n\n/**\n * Check if the given value is a valid {@link SnapManifest} object.\n *\n * @param value - The value to check.\n * @returns Whether the value is a valid {@link SnapManifest} object.\n */\nexport function isSnapManifest(value: unknown): value is SnapManifest {\n return is(value, SnapManifestStruct);\n}\n\n/**\n * Assert that the given value is a valid {@link SnapManifest} object.\n *\n * @param value - The value to check.\n * @throws If the value is not a valid {@link SnapManifest} object.\n */\nexport function assertIsSnapManifest(\n value: unknown,\n): asserts value is SnapManifest {\n assertStruct(\n value,\n SnapManifestStruct,\n `\"${NpmSnapFileNames.Manifest}\" is invalid`,\n );\n}\n\n/**\n * Creates a {@link SnapManifest} object from JSON.\n *\n * @param value - The value to check.\n * @throws If the value cannot be coerced to a {@link SnapManifest} object.\n * @returns The created {@link SnapManifest} object.\n */\nexport function createSnapManifest(value: unknown): SnapManifest {\n // TODO: Add a utility to prefix these errors similar to assertStruct\n return create(value, SnapManifestStruct);\n}\n"]}