@metamask/snaps-utils 9.1.0 → 9.2.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 (149) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/dist/cronjob.d.cts +9 -9
  3. package/dist/cronjob.d.mts +9 -9
  4. package/dist/eval-worker.cjs +4 -5
  5. package/dist/eval-worker.cjs.map +1 -1
  6. package/dist/eval-worker.mjs +3 -4
  7. package/dist/eval-worker.mjs.map +1 -1
  8. package/dist/handlers/asset-historical-price.cjs +25 -0
  9. package/dist/handlers/asset-historical-price.cjs.map +1 -0
  10. package/dist/handlers/asset-historical-price.d.cts +37 -0
  11. package/dist/handlers/asset-historical-price.d.cts.map +1 -0
  12. package/dist/handlers/asset-historical-price.d.mts +37 -0
  13. package/dist/handlers/asset-historical-price.d.mts.map +1 -0
  14. package/dist/handlers/asset-historical-price.mjs +22 -0
  15. package/dist/handlers/asset-historical-price.mjs.map +1 -0
  16. package/dist/handlers/assets-conversion.cjs +38 -0
  17. package/dist/handlers/assets-conversion.cjs.map +1 -0
  18. package/dist/handlers/assets-conversion.d.cts +90 -0
  19. package/dist/handlers/assets-conversion.d.cts.map +1 -0
  20. package/dist/handlers/assets-conversion.d.mts +90 -0
  21. package/dist/handlers/assets-conversion.d.mts.map +1 -0
  22. package/dist/handlers/assets-conversion.mjs +35 -0
  23. package/dist/handlers/assets-conversion.mjs.map +1 -0
  24. package/dist/handlers/exports.cjs +113 -0
  25. package/dist/handlers/exports.cjs.map +1 -0
  26. package/dist/handlers/exports.d.cts +81 -0
  27. package/dist/handlers/exports.d.cts.map +1 -0
  28. package/dist/handlers/exports.d.mts +81 -0
  29. package/dist/handlers/exports.d.mts.map +1 -0
  30. package/dist/{handlers.mjs → handlers/exports.mjs} +10 -45
  31. package/dist/handlers/exports.mjs.map +1 -0
  32. package/dist/handlers/home-page.cjs +16 -0
  33. package/dist/handlers/home-page.cjs.map +1 -0
  34. package/dist/handlers/home-page.d.cts +268 -0
  35. package/dist/handlers/home-page.d.cts.map +1 -0
  36. package/dist/handlers/home-page.d.mts +268 -0
  37. package/dist/handlers/home-page.d.mts.map +1 -0
  38. package/dist/handlers/home-page.mjs +13 -0
  39. package/dist/handlers/home-page.mjs.map +1 -0
  40. package/dist/handlers/index.cjs +26 -0
  41. package/dist/handlers/index.cjs.map +1 -0
  42. package/dist/handlers/index.d.cts +10 -0
  43. package/dist/handlers/index.d.cts.map +1 -0
  44. package/dist/handlers/index.d.mts +10 -0
  45. package/dist/handlers/index.d.mts.map +1 -0
  46. package/dist/handlers/index.mjs +10 -0
  47. package/dist/handlers/index.mjs.map +1 -0
  48. package/dist/handlers/name-lookup.cjs +21 -0
  49. package/dist/handlers/name-lookup.cjs.map +1 -0
  50. package/dist/handlers/name-lookup.d.cts +67 -0
  51. package/dist/handlers/name-lookup.d.cts.map +1 -0
  52. package/dist/handlers/name-lookup.d.mts +67 -0
  53. package/dist/handlers/name-lookup.d.mts.map +1 -0
  54. package/dist/handlers/name-lookup.mjs +18 -0
  55. package/dist/handlers/name-lookup.mjs.map +1 -0
  56. package/dist/handlers/settings-page.cjs +6 -0
  57. package/dist/handlers/settings-page.cjs.map +1 -0
  58. package/dist/handlers/settings-page.d.cts +90 -0
  59. package/dist/handlers/settings-page.d.cts.map +1 -0
  60. package/dist/handlers/settings-page.d.mts +90 -0
  61. package/dist/handlers/settings-page.d.mts.map +1 -0
  62. package/dist/handlers/settings-page.mjs +3 -0
  63. package/dist/handlers/settings-page.mjs.map +1 -0
  64. package/dist/handlers/signature.cjs +6 -0
  65. package/dist/handlers/signature.cjs.map +1 -0
  66. package/dist/handlers/signature.d.cts +92 -0
  67. package/dist/handlers/signature.d.cts.map +1 -0
  68. package/dist/handlers/signature.d.mts +92 -0
  69. package/dist/handlers/signature.d.mts.map +1 -0
  70. package/dist/handlers/signature.mjs +3 -0
  71. package/dist/handlers/signature.mjs.map +1 -0
  72. package/dist/handlers/transaction.cjs +19 -0
  73. package/dist/handlers/transaction.cjs.map +1 -0
  74. package/dist/handlers/transaction.d.cts +280 -0
  75. package/dist/handlers/transaction.d.cts.map +1 -0
  76. package/dist/handlers/transaction.d.mts +280 -0
  77. package/dist/handlers/transaction.d.mts.map +1 -0
  78. package/dist/handlers/transaction.mjs +16 -0
  79. package/dist/handlers/transaction.mjs.map +1 -0
  80. package/dist/{handler-types.cjs → handlers/types.cjs} +3 -3
  81. package/dist/handlers/types.cjs.map +1 -0
  82. package/dist/{handler-types.d.mts → handlers/types.d.cts} +22 -2
  83. package/dist/handlers/types.d.cts.map +1 -0
  84. package/dist/{handler-types.d.cts → handlers/types.d.mts} +22 -2
  85. package/dist/handlers/types.d.mts.map +1 -0
  86. package/dist/{handler-types.mjs → handlers/types.mjs} +2 -2
  87. package/dist/handlers/types.mjs.map +1 -0
  88. package/dist/iframe.test.browser.cjs +20 -19
  89. package/dist/iframe.test.browser.cjs.map +1 -1
  90. package/dist/iframe.test.browser.mjs +2 -1
  91. package/dist/iframe.test.browser.mjs.map +1 -1
  92. package/dist/index.cjs +2 -2
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.d.cts +2 -2
  95. package/dist/index.d.cts.map +1 -1
  96. package/dist/index.d.mts +2 -2
  97. package/dist/index.d.mts.map +1 -1
  98. package/dist/index.executionenv.cjs +3 -2
  99. package/dist/index.executionenv.cjs.map +1 -1
  100. package/dist/index.executionenv.d.cts +3 -2
  101. package/dist/index.executionenv.d.cts.map +1 -1
  102. package/dist/index.executionenv.d.mts +3 -2
  103. package/dist/index.executionenv.d.mts.map +1 -1
  104. package/dist/index.executionenv.mjs +3 -2
  105. package/dist/index.executionenv.mjs.map +1 -1
  106. package/dist/index.mjs +2 -2
  107. package/dist/index.mjs.map +1 -1
  108. package/dist/json-rpc.cjs.map +1 -1
  109. package/dist/json-rpc.d.cts +2 -2
  110. package/dist/json-rpc.d.cts.map +1 -1
  111. package/dist/json-rpc.d.mts +2 -2
  112. package/dist/json-rpc.d.mts.map +1 -1
  113. package/dist/json-rpc.mjs.map +1 -1
  114. package/dist/json.cjs +5 -1
  115. package/dist/json.cjs.map +1 -1
  116. package/dist/json.d.cts +3 -0
  117. package/dist/json.d.cts.map +1 -1
  118. package/dist/json.d.mts +3 -0
  119. package/dist/json.d.mts.map +1 -1
  120. package/dist/json.mjs +5 -1
  121. package/dist/json.mjs.map +1 -1
  122. package/dist/localization.d.cts +5 -5
  123. package/dist/localization.d.mts +5 -5
  124. package/dist/manifest/validation.d.cts +12 -12
  125. package/dist/manifest/validation.d.mts +12 -12
  126. package/dist/time.cjs +34 -0
  127. package/dist/time.cjs.map +1 -0
  128. package/dist/time.d.cts +9 -0
  129. package/dist/time.d.cts.map +1 -0
  130. package/dist/time.d.mts +9 -0
  131. package/dist/time.d.mts.map +1 -0
  132. package/dist/time.mjs +31 -0
  133. package/dist/time.mjs.map +1 -0
  134. package/dist/types.d.cts +2 -2
  135. package/dist/types.d.cts.map +1 -1
  136. package/dist/types.d.mts +2 -2
  137. package/dist/types.d.mts.map +1 -1
  138. package/package.json +17 -24
  139. package/dist/handler-types.cjs.map +0 -1
  140. package/dist/handler-types.d.cts.map +0 -1
  141. package/dist/handler-types.d.mts.map +0 -1
  142. package/dist/handler-types.mjs.map +0 -1
  143. package/dist/handlers.cjs +0 -148
  144. package/dist/handlers.cjs.map +0 -1
  145. package/dist/handlers.d.cts +0 -887
  146. package/dist/handlers.d.cts.map +0 -1
  147. package/dist/handlers.d.mts +0 -887
  148. package/dist/handlers.d.mts.map +0 -1
  149. package/dist/handlers.mjs.map +0 -1
@@ -0,0 +1,280 @@
1
+ import { SeverityLevel } from "@metamask/snaps-sdk";
2
+ export declare const OnTransactionSeverityResponseStruct: import("@metamask/superstruct").Struct<{
3
+ severity?: SeverityLevel | undefined;
4
+ }, {
5
+ severity: import("@metamask/superstruct").Struct<SeverityLevel | undefined, SeverityLevel>;
6
+ }>;
7
+ export declare const OnTransactionResponseWithIdStruct: import("@metamask/superstruct").Struct<{
8
+ id: string;
9
+ severity?: SeverityLevel | undefined;
10
+ }, {
11
+ id: import("@metamask/superstruct").Struct<string, null>;
12
+ severity: import("@metamask/superstruct").Struct<SeverityLevel | undefined, SeverityLevel>;
13
+ }>;
14
+ export declare const OnTransactionResponseWithContentStruct: import("@metamask/superstruct").Struct<{
15
+ content: {
16
+ value: string;
17
+ type: import("@metamask/snaps-sdk").NodeType.Copyable;
18
+ sensitive?: boolean | undefined;
19
+ } | {
20
+ type: import("@metamask/snaps-sdk").NodeType.Divider;
21
+ } | {
22
+ value: string;
23
+ type: import("@metamask/snaps-sdk").NodeType.Heading;
24
+ } | {
25
+ value: string;
26
+ type: import("@metamask/snaps-sdk").NodeType.Image;
27
+ } | import("@metamask/snaps-sdk").Panel | {
28
+ type: import("@metamask/snaps-sdk").NodeType.Spinner;
29
+ } | {
30
+ value: string;
31
+ type: import("@metamask/snaps-sdk").NodeType.Text;
32
+ markdown?: boolean | undefined;
33
+ } | {
34
+ value: `0x${string}`;
35
+ type: import("@metamask/snaps-sdk").NodeType.Address;
36
+ } | {
37
+ value: {
38
+ value: string;
39
+ type: import("@metamask/snaps-sdk").NodeType.Image;
40
+ } | {
41
+ value: string;
42
+ type: import("@metamask/snaps-sdk").NodeType.Text;
43
+ markdown?: boolean | undefined;
44
+ } | {
45
+ value: `0x${string}`;
46
+ type: import("@metamask/snaps-sdk").NodeType.Address;
47
+ };
48
+ type: import("@metamask/snaps-sdk").NodeType.Row;
49
+ label: string;
50
+ variant?: "warning" | "default" | "critical" | undefined;
51
+ } | {
52
+ name: string;
53
+ type: import("@metamask/snaps-sdk").NodeType.Input;
54
+ value?: string | undefined;
55
+ label?: string | undefined;
56
+ inputType?: "number" | "text" | "password" | undefined;
57
+ placeholder?: string | undefined;
58
+ error?: string | undefined;
59
+ } | {
60
+ value: string;
61
+ type: import("@metamask/snaps-sdk").NodeType.Button;
62
+ name?: string | undefined;
63
+ variant?: "primary" | "secondary" | undefined;
64
+ buttonType?: "button" | "submit" | undefined;
65
+ } | {
66
+ name: string;
67
+ type: import("@metamask/snaps-sdk").NodeType.Form;
68
+ children: ({
69
+ name: string;
70
+ type: import("@metamask/snaps-sdk").NodeType.Input;
71
+ value?: string | undefined;
72
+ label?: string | undefined;
73
+ inputType?: "number" | "text" | "password" | undefined;
74
+ placeholder?: string | undefined;
75
+ error?: string | undefined;
76
+ } | {
77
+ value: string;
78
+ type: import("@metamask/snaps-sdk").NodeType.Button;
79
+ name?: string | undefined;
80
+ variant?: "primary" | "secondary" | undefined;
81
+ buttonType?: "button" | "submit" | undefined;
82
+ })[];
83
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AssetSelectorProps, "AssetSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressInputProps, "AddressInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
84
+ src: string;
85
+ alt?: string | undefined;
86
+ borderRadius?: import("@metamask/snaps-sdk/jsx").BorderRadius;
87
+ }, "Image"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
88
+ name: string;
89
+ value?: string | undefined;
90
+ children: import("@metamask/snaps-sdk/jsx").SnapsChildren<import("@metamask/snaps-sdk/jsx").SnapElement<{
91
+ value: string;
92
+ children: string;
93
+ disabled?: boolean | undefined;
94
+ }, "Radio">>;
95
+ disabled?: boolean | undefined;
96
+ }, "RadioGroup"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | 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").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | 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").SkeletonProps, "Skeleton"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
97
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
98
+ size?: "md" | "sm" | "lg" | undefined;
99
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner">;
100
+ severity?: SeverityLevel | undefined;
101
+ }, {
102
+ content: import("@metamask/superstruct").Struct<{
103
+ value: string;
104
+ type: import("@metamask/snaps-sdk").NodeType.Copyable;
105
+ sensitive?: boolean | undefined;
106
+ } | {
107
+ type: import("@metamask/snaps-sdk").NodeType.Divider;
108
+ } | {
109
+ value: string;
110
+ type: import("@metamask/snaps-sdk").NodeType.Heading;
111
+ } | {
112
+ value: string;
113
+ type: import("@metamask/snaps-sdk").NodeType.Image;
114
+ } | import("@metamask/snaps-sdk").Panel | {
115
+ type: import("@metamask/snaps-sdk").NodeType.Spinner;
116
+ } | {
117
+ value: string;
118
+ type: import("@metamask/snaps-sdk").NodeType.Text;
119
+ markdown?: boolean | undefined;
120
+ } | {
121
+ value: `0x${string}`;
122
+ type: import("@metamask/snaps-sdk").NodeType.Address;
123
+ } | {
124
+ value: {
125
+ value: string;
126
+ type: import("@metamask/snaps-sdk").NodeType.Image;
127
+ } | {
128
+ value: string;
129
+ type: import("@metamask/snaps-sdk").NodeType.Text;
130
+ markdown?: boolean | undefined;
131
+ } | {
132
+ value: `0x${string}`;
133
+ type: import("@metamask/snaps-sdk").NodeType.Address;
134
+ };
135
+ type: import("@metamask/snaps-sdk").NodeType.Row;
136
+ label: string;
137
+ variant?: "warning" | "default" | "critical" | undefined;
138
+ } | {
139
+ name: string;
140
+ type: import("@metamask/snaps-sdk").NodeType.Input;
141
+ value?: string | undefined;
142
+ label?: string | undefined;
143
+ inputType?: "number" | "text" | "password" | undefined;
144
+ placeholder?: string | undefined;
145
+ error?: string | undefined;
146
+ } | {
147
+ value: string;
148
+ type: import("@metamask/snaps-sdk").NodeType.Button;
149
+ name?: string | undefined;
150
+ variant?: "primary" | "secondary" | undefined;
151
+ buttonType?: "button" | "submit" | undefined;
152
+ } | {
153
+ name: string;
154
+ type: import("@metamask/snaps-sdk").NodeType.Form;
155
+ children: ({
156
+ name: string;
157
+ type: import("@metamask/snaps-sdk").NodeType.Input;
158
+ value?: string | undefined;
159
+ label?: string | undefined;
160
+ inputType?: "number" | "text" | "password" | undefined;
161
+ placeholder?: string | undefined;
162
+ error?: string | undefined;
163
+ } | {
164
+ value: string;
165
+ type: import("@metamask/snaps-sdk").NodeType.Button;
166
+ name?: string | undefined;
167
+ variant?: "primary" | "secondary" | undefined;
168
+ buttonType?: "button" | "submit" | undefined;
169
+ })[];
170
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AssetSelectorProps, "AssetSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressInputProps, "AddressInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
171
+ src: string;
172
+ alt?: string | undefined;
173
+ borderRadius?: import("@metamask/snaps-sdk/jsx").BorderRadius;
174
+ }, "Image"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
175
+ name: string;
176
+ value?: string | undefined;
177
+ children: import("@metamask/snaps-sdk/jsx").SnapsChildren<import("@metamask/snaps-sdk/jsx").SnapElement<{
178
+ value: string;
179
+ children: string;
180
+ disabled?: boolean | undefined;
181
+ }, "Radio">>;
182
+ disabled?: boolean | undefined;
183
+ }, "RadioGroup"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | 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").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | 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").SkeletonProps, "Skeleton"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
184
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
185
+ size?: "md" | "sm" | "lg" | undefined;
186
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner">, null>;
187
+ severity: import("@metamask/superstruct").Struct<SeverityLevel | undefined, SeverityLevel>;
188
+ }>;
189
+ export declare const OnTransactionResponseStruct: import("@metamask/superstruct").Struct<{
190
+ id: string;
191
+ severity?: SeverityLevel | undefined;
192
+ } | {
193
+ content: {
194
+ value: string;
195
+ type: import("@metamask/snaps-sdk").NodeType.Copyable;
196
+ sensitive?: boolean | undefined;
197
+ } | {
198
+ type: import("@metamask/snaps-sdk").NodeType.Divider;
199
+ } | {
200
+ value: string;
201
+ type: import("@metamask/snaps-sdk").NodeType.Heading;
202
+ } | {
203
+ value: string;
204
+ type: import("@metamask/snaps-sdk").NodeType.Image;
205
+ } | import("@metamask/snaps-sdk").Panel | {
206
+ type: import("@metamask/snaps-sdk").NodeType.Spinner;
207
+ } | {
208
+ value: string;
209
+ type: import("@metamask/snaps-sdk").NodeType.Text;
210
+ markdown?: boolean | undefined;
211
+ } | {
212
+ value: `0x${string}`;
213
+ type: import("@metamask/snaps-sdk").NodeType.Address;
214
+ } | {
215
+ value: {
216
+ value: string;
217
+ type: import("@metamask/snaps-sdk").NodeType.Image;
218
+ } | {
219
+ value: string;
220
+ type: import("@metamask/snaps-sdk").NodeType.Text;
221
+ markdown?: boolean | undefined;
222
+ } | {
223
+ value: `0x${string}`;
224
+ type: import("@metamask/snaps-sdk").NodeType.Address;
225
+ };
226
+ type: import("@metamask/snaps-sdk").NodeType.Row;
227
+ label: string;
228
+ variant?: "warning" | "default" | "critical" | undefined;
229
+ } | {
230
+ name: string;
231
+ type: import("@metamask/snaps-sdk").NodeType.Input;
232
+ value?: string | undefined;
233
+ label?: string | undefined;
234
+ inputType?: "number" | "text" | "password" | undefined;
235
+ placeholder?: string | undefined;
236
+ error?: string | undefined;
237
+ } | {
238
+ value: string;
239
+ type: import("@metamask/snaps-sdk").NodeType.Button;
240
+ name?: string | undefined;
241
+ variant?: "primary" | "secondary" | undefined;
242
+ buttonType?: "button" | "submit" | undefined;
243
+ } | {
244
+ name: string;
245
+ type: import("@metamask/snaps-sdk").NodeType.Form;
246
+ children: ({
247
+ name: string;
248
+ type: import("@metamask/snaps-sdk").NodeType.Input;
249
+ value?: string | undefined;
250
+ label?: string | undefined;
251
+ inputType?: "number" | "text" | "password" | undefined;
252
+ placeholder?: string | undefined;
253
+ error?: string | undefined;
254
+ } | {
255
+ value: string;
256
+ type: import("@metamask/snaps-sdk").NodeType.Button;
257
+ name?: string | undefined;
258
+ variant?: "primary" | "secondary" | undefined;
259
+ buttonType?: "button" | "submit" | undefined;
260
+ })[];
261
+ } | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AssetSelectorProps, "AssetSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressInputProps, "AddressInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
262
+ src: string;
263
+ alt?: string | undefined;
264
+ borderRadius?: import("@metamask/snaps-sdk/jsx").BorderRadius;
265
+ }, "Image"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
266
+ name: string;
267
+ value?: string | undefined;
268
+ children: import("@metamask/snaps-sdk/jsx").SnapsChildren<import("@metamask/snaps-sdk/jsx").SnapElement<{
269
+ value: string;
270
+ children: string;
271
+ disabled?: boolean | undefined;
272
+ }, "Radio">>;
273
+ disabled?: boolean | undefined;
274
+ }, "RadioGroup"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | 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").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | 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").SkeletonProps, "Skeleton"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<{
275
+ children: import("@metamask/snaps-sdk/jsx").StringElement;
276
+ size?: "md" | "sm" | "lg" | undefined;
277
+ }, "Heading"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner">;
278
+ severity?: SeverityLevel | undefined;
279
+ } | null, null>;
280
+ //# sourceMappingURL=transaction.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.mts","sourceRoot":"","sources":["../../src/handlers/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,aAAa,EAAE,4BAA4B;AAW9E,eAAO,MAAM,mCAAmC;;;;EAE9C,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;EAK7C,CAAC;AAEF,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKlD,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAKvC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ComponentOrElementStruct, SeverityLevel } from "@metamask/snaps-sdk";
2
+ import { literal, object, optional, string, assign, nullable, union } from "@metamask/superstruct";
3
+ export const OnTransactionSeverityResponseStruct = object({
4
+ severity: optional(literal(SeverityLevel.Critical)),
5
+ });
6
+ export const OnTransactionResponseWithIdStruct = assign(OnTransactionSeverityResponseStruct, object({
7
+ id: string(),
8
+ }));
9
+ export const OnTransactionResponseWithContentStruct = assign(OnTransactionSeverityResponseStruct, object({
10
+ content: ComponentOrElementStruct,
11
+ }));
12
+ export const OnTransactionResponseStruct = nullable(union([
13
+ OnTransactionResponseWithContentStruct,
14
+ OnTransactionResponseWithIdStruct,
15
+ ]));
16
+ //# sourceMappingURL=transaction.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.mjs","sourceRoot":"","sources":["../../src/handlers/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,4BAA4B;AAC9E,OAAO,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,KAAK,EACN,8BAA8B;AAE/B,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CAAC;IACxD,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CACrD,mCAAmC,EACnC,MAAM,CAAC;IACL,EAAE,EAAE,MAAM,EAAE;CACb,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,MAAM,CAC1D,mCAAmC,EACnC,MAAM,CAAC;IACL,OAAO,EAAE,wBAAwB;CAClC,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CACjD,KAAK,CAAC;IACJ,sCAAsC;IACtC,iCAAiC;CAClC,CAAC,CACH,CAAC","sourcesContent":["import { ComponentOrElementStruct, SeverityLevel } from '@metamask/snaps-sdk';\nimport {\n literal,\n object,\n optional,\n string,\n assign,\n nullable,\n union,\n} from '@metamask/superstruct';\n\nexport const OnTransactionSeverityResponseStruct = object({\n severity: optional(literal(SeverityLevel.Critical)),\n});\n\nexport const OnTransactionResponseWithIdStruct = assign(\n OnTransactionSeverityResponseStruct,\n object({\n id: string(),\n }),\n);\n\nexport const OnTransactionResponseWithContentStruct = assign(\n OnTransactionSeverityResponseStruct,\n object({\n content: ComponentOrElementStruct,\n }),\n);\n\nexport const OnTransactionResponseStruct = nullable(\n union([\n OnTransactionResponseWithContentStruct,\n OnTransactionResponseWithIdStruct,\n ]),\n);\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SNAP_EXPORT_NAMES = exports.HandlerType = void 0;
3
+ exports.HandlerType = void 0;
4
4
  var HandlerType;
5
5
  (function (HandlerType) {
6
6
  HandlerType["OnRpcRequest"] = "onRpcRequest";
@@ -16,7 +16,7 @@ var HandlerType;
16
16
  HandlerType["OnUserInput"] = "onUserInput";
17
17
  HandlerType["OnAssetsLookup"] = "onAssetsLookup";
18
18
  HandlerType["OnAssetsConversion"] = "onAssetsConversion";
19
+ HandlerType["OnAssetHistoricalPrice"] = "onAssetHistoricalPrice";
19
20
  HandlerType["OnProtocolRequest"] = "onProtocolRequest";
20
21
  })(HandlerType || (exports.HandlerType = HandlerType = {}));
21
- exports.SNAP_EXPORT_NAMES = Object.values(HandlerType);
22
- //# sourceMappingURL=handler-types.cjs.map
22
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":";;;AA8BA,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACrB,4CAA6B,CAAA;IAC7B,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,sCAAuB,CAAA;IACvB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,4CAA6B,CAAA;IAC7B,oDAAqC,CAAA;IACrC,wCAAyB,CAAA;IACzB,gDAAiC,CAAA;IACjC,0CAA2B,CAAA;IAC3B,gDAAiC,CAAA;IACjC,wDAAyC,CAAA;IACzC,gEAAiD,CAAA;IACjD,sDAAuC,CAAA;AACzC,CAAC,EAhBW,WAAW,2BAAX,WAAW,QAgBtB","sourcesContent":["import type { SNAP_EXPORTS } from './exports';\n\nexport type SnapRpcHookArgs = {\n origin: string;\n handler: HandlerType;\n request: Record<string, unknown>;\n};\n\n/**\n * Utility type for getting the handler function type from a handler type.\n */\nexport type HandlerFunction<Type extends SnapHandler> =\n Type['validator'] extends (snapExport: unknown) => snapExport is infer Handler\n ? Handler\n : never;\n\n/**\n * All the function-based handlers that a snap can implement.\n */\nexport type SnapFunctionExports = {\n [Key in keyof typeof SNAP_EXPORTS]?: HandlerFunction<\n (typeof SNAP_EXPORTS)[Key]\n >;\n};\n\n/**\n * All handlers that a snap can implement.\n */\nexport type SnapExports = SnapFunctionExports;\n\nexport enum HandlerType {\n OnRpcRequest = 'onRpcRequest',\n OnSignature = 'onSignature',\n OnTransaction = 'onTransaction',\n OnCronjob = 'onCronjob',\n OnInstall = 'onInstall',\n OnUpdate = 'onUpdate',\n OnNameLookup = 'onNameLookup',\n OnKeyringRequest = 'onKeyringRequest',\n OnHomePage = 'onHomePage',\n OnSettingsPage = 'onSettingsPage',\n OnUserInput = 'onUserInput',\n OnAssetsLookup = 'onAssetsLookup',\n OnAssetsConversion = 'onAssetsConversion',\n OnAssetHistoricalPrice = 'onAssetHistoricalPrice',\n OnProtocolRequest = 'onProtocolRequest',\n}\n\nexport type SnapHandler = {\n /**\n * The type of handler.\n */\n type: HandlerType;\n\n /**\n * Whether the handler is required, i.e., whether the request will fail if the\n * handler is called, but the snap does not export it.\n *\n * This is primarily used for the lifecycle handlers, which are optional.\n */\n required: boolean;\n\n /**\n * Validate the given snap export. This should return a type guard for the\n * handler type.\n *\n * @param snapExport - The export to validate.\n * @returns Whether the export is valid.\n */\n validator: (snapExport: unknown) => boolean;\n};\n"]}
@@ -1,3 +1,23 @@
1
+ import type { SNAP_EXPORTS } from "./exports.cjs";
2
+ export type SnapRpcHookArgs = {
3
+ origin: string;
4
+ handler: HandlerType;
5
+ request: Record<string, unknown>;
6
+ };
7
+ /**
8
+ * Utility type for getting the handler function type from a handler type.
9
+ */
10
+ export type HandlerFunction<Type extends SnapHandler> = Type['validator'] extends (snapExport: unknown) => snapExport is infer Handler ? Handler : never;
11
+ /**
12
+ * All the function-based handlers that a snap can implement.
13
+ */
14
+ export type SnapFunctionExports = {
15
+ [Key in keyof typeof SNAP_EXPORTS]?: HandlerFunction<(typeof SNAP_EXPORTS)[Key]>;
16
+ };
17
+ /**
18
+ * All handlers that a snap can implement.
19
+ */
20
+ export type SnapExports = SnapFunctionExports;
1
21
  export declare enum HandlerType {
2
22
  OnRpcRequest = "onRpcRequest",
3
23
  OnSignature = "onSignature",
@@ -12,6 +32,7 @@ export declare enum HandlerType {
12
32
  OnUserInput = "onUserInput",
13
33
  OnAssetsLookup = "onAssetsLookup",
14
34
  OnAssetsConversion = "onAssetsConversion",
35
+ OnAssetHistoricalPrice = "onAssetHistoricalPrice",
15
36
  OnProtocolRequest = "onProtocolRequest"
16
37
  }
17
38
  export type SnapHandler = {
@@ -35,5 +56,4 @@ export type SnapHandler = {
35
56
  */
36
57
  validator: (snapExport: unknown) => boolean;
37
58
  };
38
- export declare const SNAP_EXPORT_NAMES: HandlerType[];
39
- //# sourceMappingURL=handler-types.d.mts.map
59
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAkB;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,WAAW,IAClD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,KAAK,UAAU,IAAI,MAAM,OAAO,GAC1E,OAAO,GACP,KAAK,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;KAC/B,GAAG,IAAI,MAAM,OAAO,YAAY,CAAC,CAAC,EAAE,eAAe,CAClD,CAAC,OAAO,YAAY,CAAC,CAAC,GAAG,CAAC,CAC3B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAE9C,oBAAY,WAAW;IACrB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;CACxC;AAED,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC;CAC7C,CAAC"}
@@ -1,3 +1,23 @@
1
+ import type { SNAP_EXPORTS } from "./exports.mjs";
2
+ export type SnapRpcHookArgs = {
3
+ origin: string;
4
+ handler: HandlerType;
5
+ request: Record<string, unknown>;
6
+ };
7
+ /**
8
+ * Utility type for getting the handler function type from a handler type.
9
+ */
10
+ export type HandlerFunction<Type extends SnapHandler> = Type['validator'] extends (snapExport: unknown) => snapExport is infer Handler ? Handler : never;
11
+ /**
12
+ * All the function-based handlers that a snap can implement.
13
+ */
14
+ export type SnapFunctionExports = {
15
+ [Key in keyof typeof SNAP_EXPORTS]?: HandlerFunction<(typeof SNAP_EXPORTS)[Key]>;
16
+ };
17
+ /**
18
+ * All handlers that a snap can implement.
19
+ */
20
+ export type SnapExports = SnapFunctionExports;
1
21
  export declare enum HandlerType {
2
22
  OnRpcRequest = "onRpcRequest",
3
23
  OnSignature = "onSignature",
@@ -12,6 +32,7 @@ export declare enum HandlerType {
12
32
  OnUserInput = "onUserInput",
13
33
  OnAssetsLookup = "onAssetsLookup",
14
34
  OnAssetsConversion = "onAssetsConversion",
35
+ OnAssetHistoricalPrice = "onAssetHistoricalPrice",
15
36
  OnProtocolRequest = "onProtocolRequest"
16
37
  }
17
38
  export type SnapHandler = {
@@ -35,5 +56,4 @@ export type SnapHandler = {
35
56
  */
36
57
  validator: (snapExport: unknown) => boolean;
37
58
  };
38
- export declare const SNAP_EXPORT_NAMES: HandlerType[];
39
- //# sourceMappingURL=handler-types.d.cts.map
59
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAkB;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,WAAW,IAClD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,KAAK,UAAU,IAAI,MAAM,OAAO,GAC1E,OAAO,GACP,KAAK,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;KAC/B,GAAG,IAAI,MAAM,OAAO,YAAY,CAAC,CAAC,EAAE,eAAe,CAClD,CAAC,OAAO,YAAY,CAAC,CAAC,GAAG,CAAC,CAC3B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAE9C,oBAAY,WAAW;IACrB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;CACxC;AAED,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC;CAC7C,CAAC"}
@@ -13,7 +13,7 @@ export var HandlerType;
13
13
  HandlerType["OnUserInput"] = "onUserInput";
14
14
  HandlerType["OnAssetsLookup"] = "onAssetsLookup";
15
15
  HandlerType["OnAssetsConversion"] = "onAssetsConversion";
16
+ HandlerType["OnAssetHistoricalPrice"] = "onAssetHistoricalPrice";
16
17
  HandlerType["OnProtocolRequest"] = "onProtocolRequest";
17
18
  })(HandlerType || (HandlerType = {}));
18
- export const SNAP_EXPORT_NAMES = Object.values(HandlerType);
19
- //# sourceMappingURL=handler-types.mjs.map
19
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAN,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACrB,4CAA6B,CAAA;IAC7B,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,sCAAuB,CAAA;IACvB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,4CAA6B,CAAA;IAC7B,oDAAqC,CAAA;IACrC,wCAAyB,CAAA;IACzB,gDAAiC,CAAA;IACjC,0CAA2B,CAAA;IAC3B,gDAAiC,CAAA;IACjC,wDAAyC,CAAA;IACzC,gEAAiD,CAAA;IACjD,sDAAuC,CAAA;AACzC,CAAC,EAhBW,WAAW,KAAX,WAAW,QAgBtB","sourcesContent":["import type { SNAP_EXPORTS } from './exports';\n\nexport type SnapRpcHookArgs = {\n origin: string;\n handler: HandlerType;\n request: Record<string, unknown>;\n};\n\n/**\n * Utility type for getting the handler function type from a handler type.\n */\nexport type HandlerFunction<Type extends SnapHandler> =\n Type['validator'] extends (snapExport: unknown) => snapExport is infer Handler\n ? Handler\n : never;\n\n/**\n * All the function-based handlers that a snap can implement.\n */\nexport type SnapFunctionExports = {\n [Key in keyof typeof SNAP_EXPORTS]?: HandlerFunction<\n (typeof SNAP_EXPORTS)[Key]\n >;\n};\n\n/**\n * All handlers that a snap can implement.\n */\nexport type SnapExports = SnapFunctionExports;\n\nexport enum HandlerType {\n OnRpcRequest = 'onRpcRequest',\n OnSignature = 'onSignature',\n OnTransaction = 'onTransaction',\n OnCronjob = 'onCronjob',\n OnInstall = 'onInstall',\n OnUpdate = 'onUpdate',\n OnNameLookup = 'onNameLookup',\n OnKeyringRequest = 'onKeyringRequest',\n OnHomePage = 'onHomePage',\n OnSettingsPage = 'onSettingsPage',\n OnUserInput = 'onUserInput',\n OnAssetsLookup = 'onAssetsLookup',\n OnAssetsConversion = 'onAssetsConversion',\n OnAssetHistoricalPrice = 'onAssetHistoricalPrice',\n OnProtocolRequest = 'onProtocolRequest',\n}\n\nexport type SnapHandler = {\n /**\n * The type of handler.\n */\n type: HandlerType;\n\n /**\n * Whether the handler is required, i.e., whether the request will fail if the\n * handler is called, but the snap does not export it.\n *\n * This is primarily used for the lifecycle handlers, which are optional.\n */\n required: boolean;\n\n /**\n * Validate the given snap export. This should return a type guard for the\n * handler type.\n *\n * @param snapExport - The export to validate.\n * @returns Whether the export is valid.\n */\n validator: (snapExport: unknown) => boolean;\n};\n"]}
@@ -1,35 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
3
4
  const iframe_1 = require("./iframe.cjs");
4
- const IFRAME_URL = `http://localhost:4569`;
5
+ const IFRAME_URL = 'http://localhost:63317/iframe/executor/index.html';
5
6
  const MOCK_JOB_ID = 'job-id';
6
- describe('createWindow', () => {
7
- afterEach(() => {
7
+ (0, vitest_1.describe)('createWindow', () => {
8
+ (0, vitest_1.afterEach)(() => {
8
9
  const iframe = document.getElementById(MOCK_JOB_ID);
9
10
  if (iframe) {
10
11
  document.body.removeChild(iframe);
11
12
  }
12
13
  });
13
- it('creates an iframe window with the provided job ID as the iframe ID', async () => {
14
+ (0, vitest_1.it)('creates an iframe window with the provided job ID as the iframe ID', async () => {
14
15
  const window = await (0, iframe_1.createWindow)({ uri: IFRAME_URL, id: MOCK_JOB_ID });
15
16
  const iframe = document.getElementById(MOCK_JOB_ID);
16
- expect(iframe).toBeDefined();
17
- expect(iframe.contentWindow).toBe(window);
18
- expect(iframe.id).toBe(MOCK_JOB_ID);
17
+ (0, vitest_1.expect)(iframe).toBeDefined();
18
+ (0, vitest_1.expect)(iframe.contentWindow).toBe(window);
19
+ (0, vitest_1.expect)(iframe.id).toBe(MOCK_JOB_ID);
19
20
  });
20
- it('sets the sandbox attribute when the sandbox option is true', async () => {
21
+ (0, vitest_1.it)('sets the sandbox attribute when the sandbox option is true', async () => {
21
22
  await (0, iframe_1.createWindow)({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: true });
22
23
  const iframe = document.getElementById(MOCK_JOB_ID);
23
- expect(iframe).toBeDefined();
24
- expect(iframe.getAttribute('sandbox')).toBe('allow-scripts');
24
+ (0, vitest_1.expect)(iframe).toBeDefined();
25
+ (0, vitest_1.expect)(iframe.getAttribute('sandbox')).toBe('allow-scripts');
25
26
  });
26
- it('does not set the sandbox attribute when the sandbox option is false', async () => {
27
+ (0, vitest_1.it)('does not set the sandbox attribute when the sandbox option is false', async () => {
27
28
  await (0, iframe_1.createWindow)({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: false });
28
29
  const iframe = document.getElementById(MOCK_JOB_ID);
29
- expect(iframe).toBeDefined();
30
- expect(iframe.getAttribute('sandbox')).toBeNull();
30
+ (0, vitest_1.expect)(iframe).toBeDefined();
31
+ (0, vitest_1.expect)(iframe.getAttribute('sandbox')).toBeNull();
31
32
  });
32
- it('sets the data-testid attribute when provided', async () => {
33
+ (0, vitest_1.it)('sets the data-testid attribute when provided', async () => {
33
34
  const testId = 'test-id';
34
35
  await (0, iframe_1.createWindow)({
35
36
  uri: IFRAME_URL,
@@ -37,14 +38,14 @@ describe('createWindow', () => {
37
38
  testId,
38
39
  });
39
40
  const iframe = document.getElementById(MOCK_JOB_ID);
40
- expect(iframe).toBeDefined();
41
- expect(iframe.getAttribute('data-testid')).toBe(testId);
41
+ (0, vitest_1.expect)(iframe).toBeDefined();
42
+ (0, vitest_1.expect)(iframe.getAttribute('data-testid')).toBe(testId);
42
43
  });
43
- it('uses the default data-testid attribute when not provided', async () => {
44
+ (0, vitest_1.it)('uses the default data-testid attribute when not provided', async () => {
44
45
  await (0, iframe_1.createWindow)({ uri: IFRAME_URL, id: MOCK_JOB_ID });
45
46
  const iframe = document.getElementById(MOCK_JOB_ID);
46
- expect(iframe).toBeDefined();
47
- expect(iframe.getAttribute('data-testid')).toBe('snaps-iframe');
47
+ (0, vitest_1.expect)(iframe).toBeDefined();
48
+ (0, vitest_1.expect)(iframe.getAttribute('data-testid')).toBe('snaps-iframe');
48
49
  });
49
50
  });
50
51
  //# sourceMappingURL=iframe.test.browser.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"iframe.test.browser.cjs","sourceRoot":"","sources":["../src/iframe.test.browser.ts"],"names":[],"mappings":";;AAAA,yCAAwC;AAExC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAE3C,MAAM,WAAW,GAAG,QAAQ,CAAC;AAE7B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAY,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAsB,CAAC;QAEzE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,IAAA,qBAAY,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAsB,CAAC;QAEzE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,IAAA,qBAAY,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAsB,CAAC;QAEzE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,SAAS,CAAC;QAEzB,MAAM,IAAA,qBAAY,EAAC;YACjB,GAAG,EAAE,UAAU;YACf,EAAE,EAAE,WAAW;YACf,MAAM;SACP,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAsB,CAAC;QAEzE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,IAAA,qBAAY,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAsB,CAAC;QAEzE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { createWindow } from './iframe';\n\nconst IFRAME_URL = `http://localhost:4569`;\n\nconst MOCK_JOB_ID = 'job-id';\n\ndescribe('createWindow', () => {\n afterEach(() => {\n const iframe = document.getElementById(MOCK_JOB_ID);\n if (iframe) {\n document.body.removeChild(iframe);\n }\n });\n\n it('creates an iframe window with the provided job ID as the iframe ID', async () => {\n const window = await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.contentWindow).toBe(window);\n expect(iframe.id).toBe(MOCK_JOB_ID);\n });\n\n it('sets the sandbox attribute when the sandbox option is true', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: true });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('sandbox')).toBe('allow-scripts');\n });\n\n it('does not set the sandbox attribute when the sandbox option is false', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: false });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('sandbox')).toBeNull();\n });\n\n it('sets the data-testid attribute when provided', async () => {\n const testId = 'test-id';\n\n await createWindow({\n uri: IFRAME_URL,\n id: MOCK_JOB_ID,\n testId,\n });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('data-testid')).toBe(testId);\n });\n\n it('uses the default data-testid attribute when not provided', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('data-testid')).toBe('snaps-iframe');\n });\n});\n"]}
1
+ {"version":3,"file":"iframe.test.browser.cjs","sourceRoot":"","sources":["../src/iframe.test.browser.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it, afterEach } from 'vitest';\n\nimport { createWindow } from './iframe';\n\nconst IFRAME_URL = 'http://localhost:63317/iframe/executor/index.html';\n\nconst MOCK_JOB_ID = 'job-id';\n\ndescribe('createWindow', () => {\n afterEach(() => {\n const iframe = document.getElementById(MOCK_JOB_ID);\n if (iframe) {\n document.body.removeChild(iframe);\n }\n });\n\n it('creates an iframe window with the provided job ID as the iframe ID', async () => {\n const window = await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.contentWindow).toBe(window);\n expect(iframe.id).toBe(MOCK_JOB_ID);\n });\n\n it('sets the sandbox attribute when the sandbox option is true', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: true });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('sandbox')).toBe('allow-scripts');\n });\n\n it('does not set the sandbox attribute when the sandbox option is false', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: false });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('sandbox')).toBeNull();\n });\n\n it('sets the data-testid attribute when provided', async () => {\n const testId = 'test-id';\n\n await createWindow({\n uri: IFRAME_URL,\n id: MOCK_JOB_ID,\n testId,\n });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('data-testid')).toBe(testId);\n });\n\n it('uses the default data-testid attribute when not provided', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('data-testid')).toBe('snaps-iframe');\n });\n});\n"]}
@@ -1,5 +1,6 @@
1
+ import { describe, expect, it, afterEach } from "vitest";
1
2
  import { createWindow } from "./iframe.mjs";
2
- const IFRAME_URL = `http://localhost:4569`;
3
+ const IFRAME_URL = 'http://localhost:63317/iframe/executor/index.html';
3
4
  const MOCK_JOB_ID = 'job-id';
4
5
  describe('createWindow', () => {
5
6
  afterEach(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"iframe.test.browser.mjs","sourceRoot":"","sources":["../src/iframe.test.browser.ts"],"names":[],"mappings":"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","sourcesContent":["import { createWindow } from './iframe';\n\nconst IFRAME_URL = `http://localhost:4569`;\n\nconst MOCK_JOB_ID = 'job-id';\n\ndescribe('createWindow', () => {\n afterEach(() => {\n const iframe = document.getElementById(MOCK_JOB_ID);\n if (iframe) {\n document.body.removeChild(iframe);\n }\n });\n\n it('creates an iframe window with the provided job ID as the iframe ID', async () => {\n const window = await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.contentWindow).toBe(window);\n expect(iframe.id).toBe(MOCK_JOB_ID);\n });\n\n it('sets the sandbox attribute when the sandbox option is true', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: true });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('sandbox')).toBe('allow-scripts');\n });\n\n it('does not set the sandbox attribute when the sandbox option is false', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: false });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('sandbox')).toBeNull();\n });\n\n it('sets the data-testid attribute when provided', async () => {\n const testId = 'test-id';\n\n await createWindow({\n uri: IFRAME_URL,\n id: MOCK_JOB_ID,\n testId,\n });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('data-testid')).toBe(testId);\n });\n\n it('uses the default data-testid attribute when not provided', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('data-testid')).toBe('snaps-iframe');\n });\n});\n"]}
1
+ {"version":3,"file":"iframe.test.browser.mjs","sourceRoot":"","sources":["../src/iframe.test.browser.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it, afterEach } from 'vitest';\n\nimport { createWindow } from './iframe';\n\nconst IFRAME_URL = 'http://localhost:63317/iframe/executor/index.html';\n\nconst MOCK_JOB_ID = 'job-id';\n\ndescribe('createWindow', () => {\n afterEach(() => {\n const iframe = document.getElementById(MOCK_JOB_ID);\n if (iframe) {\n document.body.removeChild(iframe);\n }\n });\n\n it('creates an iframe window with the provided job ID as the iframe ID', async () => {\n const window = await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.contentWindow).toBe(window);\n expect(iframe.id).toBe(MOCK_JOB_ID);\n });\n\n it('sets the sandbox attribute when the sandbox option is true', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: true });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('sandbox')).toBe('allow-scripts');\n });\n\n it('does not set the sandbox attribute when the sandbox option is false', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID, sandbox: false });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('sandbox')).toBeNull();\n });\n\n it('sets the data-testid attribute when provided', async () => {\n const testId = 'test-id';\n\n await createWindow({\n uri: IFRAME_URL,\n id: MOCK_JOB_ID,\n testId,\n });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('data-testid')).toBe(testId);\n });\n\n it('uses the default data-testid attribute when not provided', async () => {\n await createWindow({ uri: IFRAME_URL, id: MOCK_JOB_ID });\n const iframe = document.getElementById(MOCK_JOB_ID) as HTMLIFrameElement;\n\n expect(iframe).toBeDefined();\n expect(iframe.getAttribute('data-testid')).toBe('snaps-iframe');\n });\n});\n"]}
package/dist/index.cjs CHANGED
@@ -28,8 +28,7 @@ __exportStar(require("./default-endowments.cjs"), exports);
28
28
  __exportStar(require("./derivation-paths.cjs"), exports);
29
29
  __exportStar(require("./entropy.cjs"), exports);
30
30
  __exportStar(require("./errors.cjs"), exports);
31
- __exportStar(require("./handlers.cjs"), exports);
32
- __exportStar(require("./handler-types.cjs"), exports);
31
+ __exportStar(require("./handlers/index.cjs"), exports);
33
32
  __exportStar(require("./iframe.cjs"), exports);
34
33
  __exportStar(require("./json.cjs"), exports);
35
34
  __exportStar(require("./json-rpc.cjs"), exports);
@@ -41,6 +40,7 @@ __exportStar(require("./platform-version.cjs"), exports);
41
40
  __exportStar(require("./snaps.cjs"), exports);
42
41
  __exportStar(require("./strings.cjs"), exports);
43
42
  __exportStar(require("./structs.cjs"), exports);
43
+ __exportStar(require("./time.cjs"), exports);
44
44
  __exportStar(require("./types.cjs"), exports);
45
45
  __exportStar(require("./ui.cjs"), exports);
46
46
  __exportStar(require("./url.cjs"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,8CAAwB;AACxB,wDAAkC;AAClC,+CAAyB;AACzB,8CAAwB;AACxB,gDAA0B;AAC1B,iDAA2B;AAC3B,kDAA4B;AAC5B,gDAA0B;AAC1B,iDAA2B;AAC3B,mDAA6B;AAC7B,2DAAqC;AACrC,yDAAmC;AACnC,gDAA0B;AAC1B,+CAAyB;AACzB,iDAA2B;AAC3B,sDAAgC;AAChC,+CAAyB;AACzB,6CAAuB;AACvB,iDAA2B;AAC3B,qDAA+B;AAC/B,gDAA0B;AAC1B,uDAA2B;AAC3B,6CAAuB;AACvB,yDAAmC;AACnC,8CAAwB;AACxB,gDAA0B;AAC1B,gDAA0B;AAC1B,8CAAwB;AACxB,2CAAqB;AACrB,4CAAsB;AACtB,mDAA6B;AAC7B,iDAA2B;AAC3B,2DAA+B","sourcesContent":["export type * from './account';\nexport * from './array';\nexport * from './auxiliary-files';\nexport * from './base64';\nexport * from './bytes';\nexport * from './caveats';\nexport * from './checksum';\nexport * from './constants';\nexport * from './cronjob';\nexport * from './currency';\nexport * from './deep-clone';\nexport * from './default-endowments';\nexport * from './derivation-paths';\nexport * from './entropy';\nexport * from './errors';\nexport * from './handlers';\nexport * from './handler-types';\nexport * from './iframe';\nexport * from './json';\nexport * from './json-rpc';\nexport * from './localization';\nexport * from './logging';\nexport * from './manifest';\nexport * from './path';\nexport * from './platform-version';\nexport * from './snaps';\nexport * from './strings';\nexport * from './structs';\nexport * from './types';\nexport * from './ui';\nexport * from './url';\nexport * from './validation';\nexport * from './versions';\nexport * from './virtual-file';\nexport type * from './promise';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,8CAAwB;AACxB,wDAAkC;AAClC,+CAAyB;AACzB,8CAAwB;AACxB,gDAA0B;AAC1B,iDAA2B;AAC3B,kDAA4B;AAC5B,gDAA0B;AAC1B,iDAA2B;AAC3B,mDAA6B;AAC7B,2DAAqC;AACrC,yDAAmC;AACnC,gDAA0B;AAC1B,+CAAyB;AACzB,uDAA2B;AAC3B,+CAAyB;AACzB,6CAAuB;AACvB,iDAA2B;AAC3B,qDAA+B;AAC/B,gDAA0B;AAC1B,uDAA2B;AAC3B,6CAAuB;AACvB,yDAAmC;AACnC,8CAAwB;AACxB,gDAA0B;AAC1B,gDAA0B;AAC1B,6CAAuB;AACvB,8CAAwB;AACxB,2CAAqB;AACrB,4CAAsB;AACtB,mDAA6B;AAC7B,iDAA2B;AAC3B,2DAA+B","sourcesContent":["export type * from './account';\nexport * from './array';\nexport * from './auxiliary-files';\nexport * from './base64';\nexport * from './bytes';\nexport * from './caveats';\nexport * from './checksum';\nexport * from './constants';\nexport * from './cronjob';\nexport * from './currency';\nexport * from './deep-clone';\nexport * from './default-endowments';\nexport * from './derivation-paths';\nexport * from './entropy';\nexport * from './errors';\nexport * from './handlers';\nexport * from './iframe';\nexport * from './json';\nexport * from './json-rpc';\nexport * from './localization';\nexport * from './logging';\nexport * from './manifest';\nexport * from './path';\nexport * from './platform-version';\nexport * from './snaps';\nexport * from './strings';\nexport * from './structs';\nexport * from './time';\nexport * from './types';\nexport * from './ui';\nexport * from './url';\nexport * from './validation';\nexport * from './versions';\nexport * from './virtual-file';\nexport type * from './promise';\n"]}