@replohq/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/LICENSE +11 -0
  2. package/_vendor/replo-utils/lib/crypto.d.ts +30 -0
  3. package/_vendor/replo-utils/lib/errors.d.ts +83 -0
  4. package/_vendor/replo-utils/lib/json.d.ts +6 -0
  5. package/_vendor/replo-utils/lib/json.mjs +43 -0
  6. package/_vendor/replo-utils/lib/misc.d.ts +145 -0
  7. package/_vendor/replo-utils/lib/object.d.ts +31 -0
  8. package/_vendor/schemas/errors.d.ts +459 -0
  9. package/_vendor/schemas/generated/consent.d.ts +55 -0
  10. package/_vendor/schemas/generated/errors.d.ts +61 -0
  11. package/_vendor/schemas/loaderKeys.d.ts +1 -0
  12. package/_vendor/schemas/loaderKeys.mjs +27 -0
  13. package/_vendor/schemas/money.d.ts +60 -0
  14. package/_vendor/schemas/money.mjs +2051 -0
  15. package/analytics/analytics-provider.d.ts +16 -0
  16. package/analytics/analytics-provider.js +113 -0
  17. package/analytics/analytics-provider.js.map +7 -0
  18. package/analytics/analytics-sink.d.ts +26 -0
  19. package/analytics/analytics-sink.js +1 -0
  20. package/analytics/analytics-sink.js.map +7 -0
  21. package/analytics/get-analytics-sinks.d.ts +27 -0
  22. package/analytics/get-analytics-sinks.js +52 -0
  23. package/analytics/get-analytics-sinks.js.map +7 -0
  24. package/analytics/hooks/use-product-viewed-analytics.d.ts +23 -0
  25. package/analytics/hooks/use-product-viewed-analytics.js +34 -0
  26. package/analytics/hooks/use-product-viewed-analytics.js.map +7 -0
  27. package/analytics/replo-first-party-pixel.d.ts +12 -0
  28. package/analytics/replo-first-party-pixel.js +31 -0
  29. package/analytics/replo-first-party-pixel.js.map +7 -0
  30. package/analytics/replo-pixel-script.d.ts +13 -0
  31. package/analytics/replo-pixel-script.js +30 -0
  32. package/analytics/replo-pixel-script.js.map +7 -0
  33. package/analytics/sinks/ga4-sink.d.ts +15 -0
  34. package/analytics/sinks/ga4-sink.js +60 -0
  35. package/analytics/sinks/ga4-sink.js.map +7 -0
  36. package/analytics/sinks/meta-sink.d.ts +14 -0
  37. package/analytics/sinks/meta-sink.js +56 -0
  38. package/analytics/sinks/meta-sink.js.map +7 -0
  39. package/analytics/sinks/pinterest-sink.d.ts +14 -0
  40. package/analytics/sinks/pinterest-sink.js +76 -0
  41. package/analytics/sinks/pinterest-sink.js.map +7 -0
  42. package/analytics/sinks/reddit-sink.d.ts +14 -0
  43. package/analytics/sinks/reddit-sink.js +80 -0
  44. package/analytics/sinks/reddit-sink.js.map +7 -0
  45. package/analytics/sinks/replo-sink.d.ts +14 -0
  46. package/analytics/sinks/replo-sink.js +57 -0
  47. package/analytics/sinks/replo-sink.js.map +7 -0
  48. package/analytics/sinks/snapchat-sink.d.ts +14 -0
  49. package/analytics/sinks/snapchat-sink.js +67 -0
  50. package/analytics/sinks/snapchat-sink.js.map +7 -0
  51. package/analytics/sinks/tiktok-sink.d.ts +14 -0
  52. package/analytics/sinks/tiktok-sink.js +79 -0
  53. package/analytics/sinks/tiktok-sink.js.map +7 -0
  54. package/analytics/sinks/window-sink.d.ts +18 -0
  55. package/analytics/sinks/window-sink.js +46 -0
  56. package/analytics/sinks/window-sink.js.map +7 -0
  57. package/analytics/utils/analytics-utils.d.ts +7 -0
  58. package/analytics/utils/analytics-utils.js +130 -0
  59. package/analytics/utils/analytics-utils.js.map +7 -0
  60. package/analytics/utils/navigation-tracker.d.ts +16 -0
  61. package/analytics/utils/navigation-tracker.js +44 -0
  62. package/analytics/utils/navigation-tracker.js.map +7 -0
  63. package/analytics/utils/shopify-funnel-gate.d.ts +8 -0
  64. package/analytics/utils/shopify-funnel-gate.js +22 -0
  65. package/analytics/utils/shopify-funnel-gate.js.map +7 -0
  66. package/cart/buy-now-action.d.ts +21 -0
  67. package/cart/buy-now-action.js +104 -0
  68. package/cart/buy-now-action.js.map +7 -0
  69. package/cart/cart-actions.d.ts +63 -0
  70. package/cart/cart-actions.js +90 -0
  71. package/cart/cart-actions.js.map +7 -0
  72. package/cart/cart-loader.d.ts +9 -0
  73. package/cart/cart-loader.js +11 -0
  74. package/cart/cart-loader.js.map +7 -0
  75. package/cart/cart-provider.d.ts +85 -0
  76. package/cart/cart-provider.js +372 -0
  77. package/cart/cart-provider.js.map +7 -0
  78. package/cart/cart-schema.d.ts +74 -0
  79. package/cart/cart-schema.js +69 -0
  80. package/cart/cart-schema.js.map +7 -0
  81. package/cart/cart-types.d.ts +132 -0
  82. package/cart/cart-types.js +8 -0
  83. package/cart/cart-types.js.map +7 -0
  84. package/cart/gateways/cart-constants.d.ts +1 -0
  85. package/cart/gateways/cart-constants.js +5 -0
  86. package/cart/gateways/cart-constants.js.map +7 -0
  87. package/cart/gateways/cart-gateway.d.ts +10 -0
  88. package/cart/gateways/cart-gateway.js +19 -0
  89. package/cart/gateways/cart-gateway.js.map +7 -0
  90. package/cart/gateways/cookie-cart-gateway.d.ts +28 -0
  91. package/cart/gateways/cookie-cart-gateway.js +109 -0
  92. package/cart/gateways/cookie-cart-gateway.js.map +7 -0
  93. package/cart/gateways/default-cart-gateway.d.ts +19 -0
  94. package/cart/gateways/default-cart-gateway.js +30 -0
  95. package/cart/gateways/default-cart-gateway.js.map +7 -0
  96. package/cart/gateways/resolver-cart-gateway.d.ts +2 -0
  97. package/cart/gateways/resolver-cart-gateway.js +109 -0
  98. package/cart/gateways/resolver-cart-gateway.js.map +7 -0
  99. package/cart/gateways/stripe-cart-gateway.d.ts +19 -0
  100. package/cart/gateways/stripe-cart-gateway.js +28 -0
  101. package/cart/gateways/stripe-cart-gateway.js.map +7 -0
  102. package/cart/hooks/use-add-to-cart.d.ts +63 -0
  103. package/cart/hooks/use-add-to-cart.js +124 -0
  104. package/cart/hooks/use-add-to-cart.js.map +7 -0
  105. package/cart/hooks/use-buy-now.d.ts +49 -0
  106. package/cart/hooks/use-buy-now.js +62 -0
  107. package/cart/hooks/use-buy-now.js.map +7 -0
  108. package/cart/utils/cart-utils.d.ts +43 -0
  109. package/cart/utils/cart-utils.js +46 -0
  110. package/cart/utils/cart-utils.js.map +7 -0
  111. package/cart/utils/cookie-cart-persistence.d.ts +55 -0
  112. package/cart/utils/cookie-cart-persistence.js +166 -0
  113. package/cart/utils/cookie-cart-persistence.js.map +7 -0
  114. package/cart/utils/variant-to-cart-line.d.ts +74 -0
  115. package/cart/utils/variant-to-cart-line.js +162 -0
  116. package/cart/utils/variant-to-cart-line.js.map +7 -0
  117. package/chunk-UJCSKKID.mjs +27 -0
  118. package/consent/consent-action.d.ts +9 -0
  119. package/consent/consent-action.js +25 -0
  120. package/consent/consent-action.js.map +7 -0
  121. package/consent/consent-actions.d.ts +28 -0
  122. package/consent/consent-actions.js +36 -0
  123. package/consent/consent-actions.js.map +7 -0
  124. package/consent/consent-store.d.ts +69 -0
  125. package/consent/consent-store.js +194 -0
  126. package/consent/consent-store.js.map +7 -0
  127. package/consent/cookie.d.ts +36 -0
  128. package/consent/cookie.js +82 -0
  129. package/consent/cookie.js.map +7 -0
  130. package/consent/replo-scripts.d.ts +23 -0
  131. package/consent/replo-scripts.js +102 -0
  132. package/consent/replo-scripts.js.map +7 -0
  133. package/consent/script-registration-store.d.ts +25 -0
  134. package/consent/script-registration-store.js +61 -0
  135. package/consent/script-registration-store.js.map +7 -0
  136. package/consent/script-snippets.d.ts +24 -0
  137. package/consent/script-snippets.js +122 -0
  138. package/consent/script-snippets.js.map +7 -0
  139. package/consent/types.d.ts +34 -0
  140. package/consent/types.js +1 -0
  141. package/consent/types.js.map +7 -0
  142. package/consent/window-api.d.ts +41 -0
  143. package/consent/window-api.js +73 -0
  144. package/consent/window-api.js.map +7 -0
  145. package/env.d.ts +9 -0
  146. package/env.js +42 -0
  147. package/env.js.map +7 -0
  148. package/gateways/canopy-api.d.ts +83 -0
  149. package/gateways/canopy-api.js +197 -0
  150. package/gateways/canopy-api.js.map +7 -0
  151. package/hooks/use-client-value.d.ts +10 -0
  152. package/hooks/use-client-value.js +12 -0
  153. package/hooks/use-client-value.js.map +7 -0
  154. package/hooks/use-formatted-price.d.ts +15 -0
  155. package/hooks/use-formatted-price.js +20 -0
  156. package/hooks/use-formatted-price.js.map +7 -0
  157. package/lib/canopy-error.d.ts +25 -0
  158. package/lib/canopy-error.js +24 -0
  159. package/lib/canopy-error.js.map +7 -0
  160. package/lib/get-query-client.d.ts +2 -0
  161. package/lib/get-query-client.js +34 -0
  162. package/lib/get-query-client.js.map +7 -0
  163. package/lib/integration-utils.d.ts +2 -0
  164. package/lib/integration-utils.js +9 -0
  165. package/lib/integration-utils.js.map +7 -0
  166. package/lib/shopify-utils.d.ts +10 -0
  167. package/lib/shopify-utils.js +7 -0
  168. package/lib/shopify-utils.js.map +7 -0
  169. package/lib/url-utils.d.ts +4 -0
  170. package/lib/url-utils.js +8 -0
  171. package/lib/url-utils.js.map +7 -0
  172. package/loaders/collection-loader.d.ts +11 -0
  173. package/loaders/collection-loader.js +55 -0
  174. package/loaders/collection-loader.js.map +7 -0
  175. package/loaders/collection-products-loader.d.ts +12 -0
  176. package/loaders/collection-products-loader.js +58 -0
  177. package/loaders/collection-products-loader.js.map +7 -0
  178. package/loaders/contentful-entries-loader.d.ts +17 -0
  179. package/loaders/contentful-entries-loader.js +78 -0
  180. package/loaders/contentful-entries-loader.js.map +7 -0
  181. package/loaders/contentful-entry-loader.d.ts +14 -0
  182. package/loaders/contentful-entry-loader.js +60 -0
  183. package/loaders/contentful-entry-loader.js.map +7 -0
  184. package/loaders/invoke-loader-action.d.ts +11 -0
  185. package/loaders/invoke-loader-action.js +14 -0
  186. package/loaders/invoke-loader-action.js.map +7 -0
  187. package/loaders/invoke-loader-server.d.ts +18 -0
  188. package/loaders/invoke-loader-server.js +40 -0
  189. package/loaders/invoke-loader-server.js.map +7 -0
  190. package/loaders/invoke-loader.d.ts +16 -0
  191. package/loaders/invoke-loader.js +37 -0
  192. package/loaders/invoke-loader.js.map +7 -0
  193. package/loaders/levanta-product-loader.d.ts +11 -0
  194. package/loaders/levanta-product-loader.js +53 -0
  195. package/loaders/levanta-product-loader.js.map +7 -0
  196. package/loaders/loader-error-boundary.d.ts +25 -0
  197. package/loaders/loader-error-boundary.js +24 -0
  198. package/loaders/loader-error-boundary.js.map +7 -0
  199. package/loaders/loader-keys.d.ts +34 -0
  200. package/loaders/loader-keys.js +26 -0
  201. package/loaders/loader-keys.js.map +7 -0
  202. package/loaders/loader-schemas.d.ts +946 -0
  203. package/loaders/loader-schemas.js +353 -0
  204. package/loaders/loader-schemas.js.map +7 -0
  205. package/loaders/metaobject-loader.d.ts +12 -0
  206. package/loaders/metaobject-loader.js +54 -0
  207. package/loaders/metaobject-loader.js.map +7 -0
  208. package/loaders/metaobjects-loader.d.ts +14 -0
  209. package/loaders/metaobjects-loader.js +60 -0
  210. package/loaders/metaobjects-loader.js.map +7 -0
  211. package/loaders/okendo-review-aggregate-loader.d.ts +17 -0
  212. package/loaders/okendo-review-aggregate-loader.js +56 -0
  213. package/loaders/okendo-review-aggregate-loader.js.map +7 -0
  214. package/loaders/okendo-reviews-loader.d.ts +23 -0
  215. package/loaders/okendo-reviews-loader.js +54 -0
  216. package/loaders/okendo-reviews-loader.js.map +7 -0
  217. package/loaders/prefetch-loaders.d.ts +33 -0
  218. package/loaders/prefetch-loaders.js +46 -0
  219. package/loaders/prefetch-loaders.js.map +7 -0
  220. package/loaders/preview-placeholder.d.ts +25 -0
  221. package/loaders/preview-placeholder.js +222 -0
  222. package/loaders/preview-placeholder.js.map +7 -0
  223. package/loaders/product-loader-args.d.ts +21 -0
  224. package/loaders/product-loader-args.js +17 -0
  225. package/loaders/product-loader-args.js.map +7 -0
  226. package/loaders/product-loader.d.ts +10 -0
  227. package/loaders/product-loader.js +52 -0
  228. package/loaders/product-loader.js.map +7 -0
  229. package/loaders/rebuy-recommendations-loader.d.ts +165 -0
  230. package/loaders/rebuy-recommendations-loader.js +57 -0
  231. package/loaders/rebuy-recommendations-loader.js.map +7 -0
  232. package/loaders/reviews-io-review-aggregate-loader.d.ts +12 -0
  233. package/loaders/reviews-io-review-aggregate-loader.js +43 -0
  234. package/loaders/reviews-io-review-aggregate-loader.js.map +7 -0
  235. package/loaders/reviews-io-reviews-loader.d.ts +14 -0
  236. package/loaders/reviews-io-reviews-loader.js +65 -0
  237. package/loaders/reviews-io-reviews-loader.js.map +7 -0
  238. package/loaders/smile-earning-rules-loader.d.ts +19 -0
  239. package/loaders/smile-earning-rules-loader.js +44 -0
  240. package/loaders/smile-earning-rules-loader.js.map +7 -0
  241. package/loaders/smile-rewards-loader.d.ts +19 -0
  242. package/loaders/smile-rewards-loader.js +44 -0
  243. package/loaders/smile-rewards-loader.js.map +7 -0
  244. package/loaders/smile-vip-tiers-loader.d.ts +18 -0
  245. package/loaders/smile-vip-tiers-loader.js +43 -0
  246. package/loaders/smile-vip-tiers-loader.js.map +7 -0
  247. package/loaders/statsig-experiment-loader.d.ts +20 -0
  248. package/loaders/statsig-experiment-loader.js +81 -0
  249. package/loaders/statsig-experiment-loader.js.map +7 -0
  250. package/loaders/yotpo-review-aggregate-loader.d.ts +12 -0
  251. package/loaders/yotpo-review-aggregate-loader.js +50 -0
  252. package/loaders/yotpo-review-aggregate-loader.js.map +7 -0
  253. package/loaders/yotpo-reviews-loader.d.ts +14 -0
  254. package/loaders/yotpo-reviews-loader.js +65 -0
  255. package/loaders/yotpo-reviews-loader.js.map +7 -0
  256. package/money.d.ts +9 -0
  257. package/money.js +13 -0
  258. package/money.js.map +7 -0
  259. package/next/config.d.ts +4 -0
  260. package/next/config.js +91 -0
  261. package/next/config.js.map +7 -0
  262. package/next/image-loader.d.ts +2 -0
  263. package/next/image-loader.js +52 -0
  264. package/next/image-loader.js.map +7 -0
  265. package/next/open-next.d.ts +2 -0
  266. package/next/open-next.js +24 -0
  267. package/next/open-next.js.map +7 -0
  268. package/orders/order-status-schema.d.ts +161 -0
  269. package/orders/order-status-schema.js +83 -0
  270. package/orders/order-status-schema.js.map +7 -0
  271. package/orders/order-status.d.ts +11 -0
  272. package/orders/order-status.js +41 -0
  273. package/orders/order-status.js.map +7 -0
  274. package/package.json +216 -0
  275. package/providers/query-provider.d.ts +1 -0
  276. package/providers/query-provider.js +12 -0
  277. package/providers/query-provider.js.map +7 -0
  278. package/providers/replo-provider.d.ts +1 -0
  279. package/providers/replo-provider.js +22 -0
  280. package/providers/replo-provider.js.map +7 -0
@@ -0,0 +1,2051 @@
1
+ import { __commonJS, __toESM } from '../../chunk-UJCSKKID.mjs';
2
+ import { z } from 'zod';
3
+ import { v4 } from 'uuid';
4
+
5
+ // ../../node_modules/.pnpm/first-match@0.0.1/node_modules/first-match/index.js
6
+ var require_first_match = __commonJS({
7
+ "../../node_modules/.pnpm/first-match@0.0.1/node_modules/first-match/index.js"(exports, module) {
8
+ function truthy(d) {
9
+ return d;
10
+ }
11
+ function first(array, callback, context) {
12
+ var callback = callback || truthy, context = context || array;
13
+ for (var i = 0, l = array.length; i < l; i += 1) {
14
+ if (callback.call(context, array[i], i)) return array[i];
15
+ }
16
+ }
17
+ module.exports = first;
18
+ }
19
+ });
20
+
21
+ // ../../node_modules/.pnpm/nub@0.0.0/node_modules/nub/index.js
22
+ var require_nub = __commonJS({
23
+ "../../node_modules/.pnpm/nub@0.0.0/node_modules/nub/index.js"(exports, module) {
24
+ var nub = module.exports = function(xs, cmp) {
25
+ if (typeof xs === "function" || cmp) {
26
+ return nub.by(xs, cmp);
27
+ }
28
+ var keys = {
29
+ "object": [],
30
+ "function": [],
31
+ "string": {},
32
+ "number": {},
33
+ "boolean": {},
34
+ "undefined": {}
35
+ };
36
+ var res = [];
37
+ for (var i = 0; i < xs.length; i++) {
38
+ var x = xs[i];
39
+ var recs = x === "__proto__" ? keys.objects : keys[typeof x] || keys.objects;
40
+ if (Array.isArray(recs)) {
41
+ if (recs.indexOf(x) < 0) {
42
+ recs.push(x);
43
+ res.push(x);
44
+ }
45
+ } else if (!Object.hasOwnProperty.call(recs, x)) {
46
+ recs[x] = true;
47
+ res.push(x);
48
+ }
49
+ }
50
+ return res;
51
+ };
52
+ nub.by = function(xs, cmp) {
53
+ if (typeof xs === "function") {
54
+ var cmp_ = cmp;
55
+ cmp = xs;
56
+ xs = cmp_;
57
+ }
58
+ var res = [];
59
+ for (var i = 0; i < xs.length; i++) {
60
+ var x = xs[i];
61
+ var found = false;
62
+ for (var j = 0; j < res.length; j++) {
63
+ var y = res[j];
64
+ if (cmp.call(res, x, y)) {
65
+ found = true;
66
+ break;
67
+ }
68
+ }
69
+ if (!found) res.push(x);
70
+ }
71
+ return res;
72
+ };
73
+ }
74
+ });
75
+
76
+ // ../../node_modules/.pnpm/currency-codes@2.2.0/node_modules/currency-codes/data.js
77
+ var require_data = __commonJS({
78
+ "../../node_modules/.pnpm/currency-codes@2.2.0/node_modules/currency-codes/data.js"(exports, module) {
79
+ module.exports = [
80
+ {
81
+ "code": "AED",
82
+ "number": "784",
83
+ "digits": 2,
84
+ "currency": "UAE Dirham",
85
+ "countries": [
86
+ "United Arab Emirates (The)"
87
+ ]
88
+ },
89
+ {
90
+ "code": "AFN",
91
+ "number": "971",
92
+ "digits": 2,
93
+ "currency": "Afghani",
94
+ "countries": [
95
+ "Afghanistan"
96
+ ]
97
+ },
98
+ {
99
+ "code": "ALL",
100
+ "number": "008",
101
+ "digits": 2,
102
+ "currency": "Lek",
103
+ "countries": [
104
+ "Albania"
105
+ ]
106
+ },
107
+ {
108
+ "code": "AMD",
109
+ "number": "051",
110
+ "digits": 2,
111
+ "currency": "Armenian Dram",
112
+ "countries": [
113
+ "Armenia"
114
+ ]
115
+ },
116
+ {
117
+ "code": "ANG",
118
+ "number": "532",
119
+ "digits": 2,
120
+ "currency": "Netherlands Antillean Guilder",
121
+ "countries": [
122
+ "Cura\xE7ao",
123
+ "Sint Maarten (Dutch Part)"
124
+ ]
125
+ },
126
+ {
127
+ "code": "AOA",
128
+ "number": "973",
129
+ "digits": 2,
130
+ "currency": "Kwanza",
131
+ "countries": [
132
+ "Angola"
133
+ ]
134
+ },
135
+ {
136
+ "code": "ARS",
137
+ "number": "032",
138
+ "digits": 2,
139
+ "currency": "Argentine Peso",
140
+ "countries": [
141
+ "Argentina"
142
+ ]
143
+ },
144
+ {
145
+ "code": "AUD",
146
+ "number": "036",
147
+ "digits": 2,
148
+ "currency": "Australian Dollar",
149
+ "countries": [
150
+ "Australia",
151
+ "Christmas Island",
152
+ "Cocos (Keeling) Islands (The)",
153
+ "Heard Island and Mcdonald Islands",
154
+ "Kiribati",
155
+ "Nauru",
156
+ "Norfolk Island",
157
+ "Tuvalu"
158
+ ]
159
+ },
160
+ {
161
+ "code": "AWG",
162
+ "number": "533",
163
+ "digits": 2,
164
+ "currency": "Aruban Florin",
165
+ "countries": [
166
+ "Aruba"
167
+ ]
168
+ },
169
+ {
170
+ "code": "AZN",
171
+ "number": "944",
172
+ "digits": 2,
173
+ "currency": "Azerbaijan Manat",
174
+ "countries": [
175
+ "Azerbaijan"
176
+ ]
177
+ },
178
+ {
179
+ "code": "BAM",
180
+ "number": "977",
181
+ "digits": 2,
182
+ "currency": "Convertible Mark",
183
+ "countries": [
184
+ "Bosnia and Herzegovina"
185
+ ]
186
+ },
187
+ {
188
+ "code": "BBD",
189
+ "number": "052",
190
+ "digits": 2,
191
+ "currency": "Barbados Dollar",
192
+ "countries": [
193
+ "Barbados"
194
+ ]
195
+ },
196
+ {
197
+ "code": "BDT",
198
+ "number": "050",
199
+ "digits": 2,
200
+ "currency": "Taka",
201
+ "countries": [
202
+ "Bangladesh"
203
+ ]
204
+ },
205
+ {
206
+ "code": "BGN",
207
+ "number": "975",
208
+ "digits": 2,
209
+ "currency": "Bulgarian Lev",
210
+ "countries": [
211
+ "Bulgaria"
212
+ ]
213
+ },
214
+ {
215
+ "code": "BHD",
216
+ "number": "048",
217
+ "digits": 3,
218
+ "currency": "Bahraini Dinar",
219
+ "countries": [
220
+ "Bahrain"
221
+ ]
222
+ },
223
+ {
224
+ "code": "BIF",
225
+ "number": "108",
226
+ "digits": 0,
227
+ "currency": "Burundi Franc",
228
+ "countries": [
229
+ "Burundi"
230
+ ]
231
+ },
232
+ {
233
+ "code": "BMD",
234
+ "number": "060",
235
+ "digits": 2,
236
+ "currency": "Bermudian Dollar",
237
+ "countries": [
238
+ "Bermuda"
239
+ ]
240
+ },
241
+ {
242
+ "code": "BND",
243
+ "number": "096",
244
+ "digits": 2,
245
+ "currency": "Brunei Dollar",
246
+ "countries": [
247
+ "Brunei Darussalam"
248
+ ]
249
+ },
250
+ {
251
+ "code": "BOB",
252
+ "number": "068",
253
+ "digits": 2,
254
+ "currency": "Boliviano",
255
+ "countries": [
256
+ "Bolivia (Plurinational State Of)"
257
+ ]
258
+ },
259
+ {
260
+ "code": "BOV",
261
+ "number": "984",
262
+ "digits": 2,
263
+ "currency": "Mvdol",
264
+ "countries": [
265
+ "Bolivia (Plurinational State Of)"
266
+ ]
267
+ },
268
+ {
269
+ "code": "BRL",
270
+ "number": "986",
271
+ "digits": 2,
272
+ "currency": "Brazilian Real",
273
+ "countries": [
274
+ "Brazil"
275
+ ]
276
+ },
277
+ {
278
+ "code": "BSD",
279
+ "number": "044",
280
+ "digits": 2,
281
+ "currency": "Bahamian Dollar",
282
+ "countries": [
283
+ "Bahamas (The)"
284
+ ]
285
+ },
286
+ {
287
+ "code": "BTN",
288
+ "number": "064",
289
+ "digits": 2,
290
+ "currency": "Ngultrum",
291
+ "countries": [
292
+ "Bhutan"
293
+ ]
294
+ },
295
+ {
296
+ "code": "BWP",
297
+ "number": "072",
298
+ "digits": 2,
299
+ "currency": "Pula",
300
+ "countries": [
301
+ "Botswana"
302
+ ]
303
+ },
304
+ {
305
+ "code": "BYN",
306
+ "number": "933",
307
+ "digits": 2,
308
+ "currency": "Belarusian Ruble",
309
+ "countries": [
310
+ "Belarus"
311
+ ]
312
+ },
313
+ {
314
+ "code": "BZD",
315
+ "number": "084",
316
+ "digits": 2,
317
+ "currency": "Belize Dollar",
318
+ "countries": [
319
+ "Belize"
320
+ ]
321
+ },
322
+ {
323
+ "code": "CAD",
324
+ "number": "124",
325
+ "digits": 2,
326
+ "currency": "Canadian Dollar",
327
+ "countries": [
328
+ "Canada"
329
+ ]
330
+ },
331
+ {
332
+ "code": "CDF",
333
+ "number": "976",
334
+ "digits": 2,
335
+ "currency": "Congolese Franc",
336
+ "countries": [
337
+ "Congo (The Democratic Republic of The)"
338
+ ]
339
+ },
340
+ {
341
+ "code": "CHE",
342
+ "number": "947",
343
+ "digits": 2,
344
+ "currency": "WIR Euro",
345
+ "countries": [
346
+ "Switzerland"
347
+ ]
348
+ },
349
+ {
350
+ "code": "CHF",
351
+ "number": "756",
352
+ "digits": 2,
353
+ "currency": "Swiss Franc",
354
+ "countries": [
355
+ "Liechtenstein",
356
+ "Switzerland"
357
+ ]
358
+ },
359
+ {
360
+ "code": "CHW",
361
+ "number": "948",
362
+ "digits": 2,
363
+ "currency": "WIR Franc",
364
+ "countries": [
365
+ "Switzerland"
366
+ ]
367
+ },
368
+ {
369
+ "code": "CLF",
370
+ "number": "990",
371
+ "digits": 4,
372
+ "currency": "Unidad de Fomento",
373
+ "countries": [
374
+ "Chile"
375
+ ]
376
+ },
377
+ {
378
+ "code": "CLP",
379
+ "number": "152",
380
+ "digits": 0,
381
+ "currency": "Chilean Peso",
382
+ "countries": [
383
+ "Chile"
384
+ ]
385
+ },
386
+ {
387
+ "code": "CNY",
388
+ "number": "156",
389
+ "digits": 2,
390
+ "currency": "Yuan Renminbi",
391
+ "countries": [
392
+ "China"
393
+ ]
394
+ },
395
+ {
396
+ "code": "COP",
397
+ "number": "170",
398
+ "digits": 2,
399
+ "currency": "Colombian Peso",
400
+ "countries": [
401
+ "Colombia"
402
+ ]
403
+ },
404
+ {
405
+ "code": "COU",
406
+ "number": "970",
407
+ "digits": 2,
408
+ "currency": "Unidad de Valor Real",
409
+ "countries": [
410
+ "Colombia"
411
+ ]
412
+ },
413
+ {
414
+ "code": "CRC",
415
+ "number": "188",
416
+ "digits": 2,
417
+ "currency": "Costa Rican Colon",
418
+ "countries": [
419
+ "Costa Rica"
420
+ ]
421
+ },
422
+ {
423
+ "code": "CUC",
424
+ "number": "931",
425
+ "digits": 2,
426
+ "currency": "Peso Convertible",
427
+ "countries": [
428
+ "Cuba"
429
+ ]
430
+ },
431
+ {
432
+ "code": "CUP",
433
+ "number": "192",
434
+ "digits": 2,
435
+ "currency": "Cuban Peso",
436
+ "countries": [
437
+ "Cuba"
438
+ ]
439
+ },
440
+ {
441
+ "code": "CVE",
442
+ "number": "132",
443
+ "digits": 2,
444
+ "currency": "Cabo Verde Escudo",
445
+ "countries": [
446
+ "Cabo Verde"
447
+ ]
448
+ },
449
+ {
450
+ "code": "CZK",
451
+ "number": "203",
452
+ "digits": 2,
453
+ "currency": "Czech Koruna",
454
+ "countries": [
455
+ "Czechia"
456
+ ]
457
+ },
458
+ {
459
+ "code": "DJF",
460
+ "number": "262",
461
+ "digits": 0,
462
+ "currency": "Djibouti Franc",
463
+ "countries": [
464
+ "Djibouti"
465
+ ]
466
+ },
467
+ {
468
+ "code": "DKK",
469
+ "number": "208",
470
+ "digits": 2,
471
+ "currency": "Danish Krone",
472
+ "countries": [
473
+ "Denmark",
474
+ "Faroe Islands (The)",
475
+ "Greenland"
476
+ ]
477
+ },
478
+ {
479
+ "code": "DOP",
480
+ "number": "214",
481
+ "digits": 2,
482
+ "currency": "Dominican Peso",
483
+ "countries": [
484
+ "Dominican Republic (The)"
485
+ ]
486
+ },
487
+ {
488
+ "code": "DZD",
489
+ "number": "012",
490
+ "digits": 2,
491
+ "currency": "Algerian Dinar",
492
+ "countries": [
493
+ "Algeria"
494
+ ]
495
+ },
496
+ {
497
+ "code": "EGP",
498
+ "number": "818",
499
+ "digits": 2,
500
+ "currency": "Egyptian Pound",
501
+ "countries": [
502
+ "Egypt"
503
+ ]
504
+ },
505
+ {
506
+ "code": "ERN",
507
+ "number": "232",
508
+ "digits": 2,
509
+ "currency": "Nakfa",
510
+ "countries": [
511
+ "Eritrea"
512
+ ]
513
+ },
514
+ {
515
+ "code": "ETB",
516
+ "number": "230",
517
+ "digits": 2,
518
+ "currency": "Ethiopian Birr",
519
+ "countries": [
520
+ "Ethiopia"
521
+ ]
522
+ },
523
+ {
524
+ "code": "EUR",
525
+ "number": "978",
526
+ "digits": 2,
527
+ "currency": "Euro",
528
+ "countries": [
529
+ "\xC5land Islands",
530
+ "Andorra",
531
+ "Austria",
532
+ "Belgium",
533
+ "Croatia",
534
+ "Cyprus",
535
+ "Estonia",
536
+ "European Union",
537
+ "Finland",
538
+ "France",
539
+ "French Guiana",
540
+ "French Southern Territories (The)",
541
+ "Germany",
542
+ "Greece",
543
+ "Guadeloupe",
544
+ "Holy See (The)",
545
+ "Ireland",
546
+ "Italy",
547
+ "Latvia",
548
+ "Lithuania",
549
+ "Luxembourg",
550
+ "Malta",
551
+ "Martinique",
552
+ "Mayotte",
553
+ "Monaco",
554
+ "Montenegro",
555
+ "Netherlands (The)",
556
+ "Portugal",
557
+ "R\xE9union",
558
+ "Saint Barth\xE9lemy",
559
+ "Saint Martin (French Part)",
560
+ "Saint Pierre and Miquelon",
561
+ "San Marino",
562
+ "Slovakia",
563
+ "Slovenia",
564
+ "Spain"
565
+ ]
566
+ },
567
+ {
568
+ "code": "FJD",
569
+ "number": "242",
570
+ "digits": 2,
571
+ "currency": "Fiji Dollar",
572
+ "countries": [
573
+ "Fiji"
574
+ ]
575
+ },
576
+ {
577
+ "code": "FKP",
578
+ "number": "238",
579
+ "digits": 2,
580
+ "currency": "Falkland Islands Pound",
581
+ "countries": [
582
+ "Falkland Islands (The) [Malvinas]"
583
+ ]
584
+ },
585
+ {
586
+ "code": "GBP",
587
+ "number": "826",
588
+ "digits": 2,
589
+ "currency": "Pound Sterling",
590
+ "countries": [
591
+ "Guernsey",
592
+ "Isle of Man",
593
+ "Jersey",
594
+ "United Kingdom of Great Britain and Northern Ireland (The)"
595
+ ]
596
+ },
597
+ {
598
+ "code": "GEL",
599
+ "number": "981",
600
+ "digits": 2,
601
+ "currency": "Lari",
602
+ "countries": [
603
+ "Georgia"
604
+ ]
605
+ },
606
+ {
607
+ "code": "GHS",
608
+ "number": "936",
609
+ "digits": 2,
610
+ "currency": "Ghana Cedi",
611
+ "countries": [
612
+ "Ghana"
613
+ ]
614
+ },
615
+ {
616
+ "code": "GIP",
617
+ "number": "292",
618
+ "digits": 2,
619
+ "currency": "Gibraltar Pound",
620
+ "countries": [
621
+ "Gibraltar"
622
+ ]
623
+ },
624
+ {
625
+ "code": "GMD",
626
+ "number": "270",
627
+ "digits": 2,
628
+ "currency": "Dalasi",
629
+ "countries": [
630
+ "Gambia (The)"
631
+ ]
632
+ },
633
+ {
634
+ "code": "GNF",
635
+ "number": "324",
636
+ "digits": 0,
637
+ "currency": "Guinean Franc",
638
+ "countries": [
639
+ "Guinea"
640
+ ]
641
+ },
642
+ {
643
+ "code": "GTQ",
644
+ "number": "320",
645
+ "digits": 2,
646
+ "currency": "Quetzal",
647
+ "countries": [
648
+ "Guatemala"
649
+ ]
650
+ },
651
+ {
652
+ "code": "GYD",
653
+ "number": "328",
654
+ "digits": 2,
655
+ "currency": "Guyana Dollar",
656
+ "countries": [
657
+ "Guyana"
658
+ ]
659
+ },
660
+ {
661
+ "code": "HKD",
662
+ "number": "344",
663
+ "digits": 2,
664
+ "currency": "Hong Kong Dollar",
665
+ "countries": [
666
+ "Hong Kong"
667
+ ]
668
+ },
669
+ {
670
+ "code": "HNL",
671
+ "number": "340",
672
+ "digits": 2,
673
+ "currency": "Lempira",
674
+ "countries": [
675
+ "Honduras"
676
+ ]
677
+ },
678
+ {
679
+ "code": "HTG",
680
+ "number": "332",
681
+ "digits": 2,
682
+ "currency": "Gourde",
683
+ "countries": [
684
+ "Haiti"
685
+ ]
686
+ },
687
+ {
688
+ "code": "HUF",
689
+ "number": "348",
690
+ "digits": 2,
691
+ "currency": "Forint",
692
+ "countries": [
693
+ "Hungary"
694
+ ]
695
+ },
696
+ {
697
+ "code": "IDR",
698
+ "number": "360",
699
+ "digits": 2,
700
+ "currency": "Rupiah",
701
+ "countries": [
702
+ "Indonesia"
703
+ ]
704
+ },
705
+ {
706
+ "code": "ILS",
707
+ "number": "376",
708
+ "digits": 2,
709
+ "currency": "New Israeli Sheqel",
710
+ "countries": [
711
+ "Israel"
712
+ ]
713
+ },
714
+ {
715
+ "code": "INR",
716
+ "number": "356",
717
+ "digits": 2,
718
+ "currency": "Indian Rupee",
719
+ "countries": [
720
+ "Bhutan",
721
+ "India"
722
+ ]
723
+ },
724
+ {
725
+ "code": "IQD",
726
+ "number": "368",
727
+ "digits": 3,
728
+ "currency": "Iraqi Dinar",
729
+ "countries": [
730
+ "Iraq"
731
+ ]
732
+ },
733
+ {
734
+ "code": "IRR",
735
+ "number": "364",
736
+ "digits": 2,
737
+ "currency": "Iranian Rial",
738
+ "countries": [
739
+ "Iran (Islamic Republic Of)"
740
+ ]
741
+ },
742
+ {
743
+ "code": "ISK",
744
+ "number": "352",
745
+ "digits": 0,
746
+ "currency": "Iceland Krona",
747
+ "countries": [
748
+ "Iceland"
749
+ ]
750
+ },
751
+ {
752
+ "code": "JMD",
753
+ "number": "388",
754
+ "digits": 2,
755
+ "currency": "Jamaican Dollar",
756
+ "countries": [
757
+ "Jamaica"
758
+ ]
759
+ },
760
+ {
761
+ "code": "JOD",
762
+ "number": "400",
763
+ "digits": 3,
764
+ "currency": "Jordanian Dinar",
765
+ "countries": [
766
+ "Jordan"
767
+ ]
768
+ },
769
+ {
770
+ "code": "JPY",
771
+ "number": "392",
772
+ "digits": 0,
773
+ "currency": "Yen",
774
+ "countries": [
775
+ "Japan"
776
+ ]
777
+ },
778
+ {
779
+ "code": "KES",
780
+ "number": "404",
781
+ "digits": 2,
782
+ "currency": "Kenyan Shilling",
783
+ "countries": [
784
+ "Kenya"
785
+ ]
786
+ },
787
+ {
788
+ "code": "KGS",
789
+ "number": "417",
790
+ "digits": 2,
791
+ "currency": "Som",
792
+ "countries": [
793
+ "Kyrgyzstan"
794
+ ]
795
+ },
796
+ {
797
+ "code": "KHR",
798
+ "number": "116",
799
+ "digits": 2,
800
+ "currency": "Riel",
801
+ "countries": [
802
+ "Cambodia"
803
+ ]
804
+ },
805
+ {
806
+ "code": "KMF",
807
+ "number": "174",
808
+ "digits": 0,
809
+ "currency": "Comorian Franc ",
810
+ "countries": [
811
+ "Comoros (The)"
812
+ ]
813
+ },
814
+ {
815
+ "code": "KPW",
816
+ "number": "408",
817
+ "digits": 2,
818
+ "currency": "North Korean Won",
819
+ "countries": [
820
+ "Korea (The Democratic People\u2019s Republic Of)"
821
+ ]
822
+ },
823
+ {
824
+ "code": "KRW",
825
+ "number": "410",
826
+ "digits": 0,
827
+ "currency": "Won",
828
+ "countries": [
829
+ "Korea (The Republic Of)"
830
+ ]
831
+ },
832
+ {
833
+ "code": "KWD",
834
+ "number": "414",
835
+ "digits": 3,
836
+ "currency": "Kuwaiti Dinar",
837
+ "countries": [
838
+ "Kuwait"
839
+ ]
840
+ },
841
+ {
842
+ "code": "KYD",
843
+ "number": "136",
844
+ "digits": 2,
845
+ "currency": "Cayman Islands Dollar",
846
+ "countries": [
847
+ "Cayman Islands (The)"
848
+ ]
849
+ },
850
+ {
851
+ "code": "KZT",
852
+ "number": "398",
853
+ "digits": 2,
854
+ "currency": "Tenge",
855
+ "countries": [
856
+ "Kazakhstan"
857
+ ]
858
+ },
859
+ {
860
+ "code": "LAK",
861
+ "number": "418",
862
+ "digits": 2,
863
+ "currency": "Lao Kip",
864
+ "countries": [
865
+ "Lao People\u2019s Democratic Republic (The)"
866
+ ]
867
+ },
868
+ {
869
+ "code": "LBP",
870
+ "number": "422",
871
+ "digits": 2,
872
+ "currency": "Lebanese Pound",
873
+ "countries": [
874
+ "Lebanon"
875
+ ]
876
+ },
877
+ {
878
+ "code": "LKR",
879
+ "number": "144",
880
+ "digits": 2,
881
+ "currency": "Sri Lanka Rupee",
882
+ "countries": [
883
+ "Sri Lanka"
884
+ ]
885
+ },
886
+ {
887
+ "code": "LRD",
888
+ "number": "430",
889
+ "digits": 2,
890
+ "currency": "Liberian Dollar",
891
+ "countries": [
892
+ "Liberia"
893
+ ]
894
+ },
895
+ {
896
+ "code": "LSL",
897
+ "number": "426",
898
+ "digits": 2,
899
+ "currency": "Loti",
900
+ "countries": [
901
+ "Lesotho"
902
+ ]
903
+ },
904
+ {
905
+ "code": "LYD",
906
+ "number": "434",
907
+ "digits": 3,
908
+ "currency": "Libyan Dinar",
909
+ "countries": [
910
+ "Libya"
911
+ ]
912
+ },
913
+ {
914
+ "code": "MAD",
915
+ "number": "504",
916
+ "digits": 2,
917
+ "currency": "Moroccan Dirham",
918
+ "countries": [
919
+ "Morocco",
920
+ "Western Sahara"
921
+ ]
922
+ },
923
+ {
924
+ "code": "MDL",
925
+ "number": "498",
926
+ "digits": 2,
927
+ "currency": "Moldovan Leu",
928
+ "countries": [
929
+ "Moldova (The Republic Of)"
930
+ ]
931
+ },
932
+ {
933
+ "code": "MGA",
934
+ "number": "969",
935
+ "digits": 2,
936
+ "currency": "Malagasy Ariary",
937
+ "countries": [
938
+ "Madagascar"
939
+ ]
940
+ },
941
+ {
942
+ "code": "MKD",
943
+ "number": "807",
944
+ "digits": 2,
945
+ "currency": "Denar",
946
+ "countries": [
947
+ "North Macedonia"
948
+ ]
949
+ },
950
+ {
951
+ "code": "MMK",
952
+ "number": "104",
953
+ "digits": 2,
954
+ "currency": "Kyat",
955
+ "countries": [
956
+ "Myanmar"
957
+ ]
958
+ },
959
+ {
960
+ "code": "MNT",
961
+ "number": "496",
962
+ "digits": 2,
963
+ "currency": "Tugrik",
964
+ "countries": [
965
+ "Mongolia"
966
+ ]
967
+ },
968
+ {
969
+ "code": "MOP",
970
+ "number": "446",
971
+ "digits": 2,
972
+ "currency": "Pataca",
973
+ "countries": [
974
+ "Macao"
975
+ ]
976
+ },
977
+ {
978
+ "code": "MRU",
979
+ "number": "929",
980
+ "digits": 2,
981
+ "currency": "Ouguiya",
982
+ "countries": [
983
+ "Mauritania"
984
+ ]
985
+ },
986
+ {
987
+ "code": "MUR",
988
+ "number": "480",
989
+ "digits": 2,
990
+ "currency": "Mauritius Rupee",
991
+ "countries": [
992
+ "Mauritius"
993
+ ]
994
+ },
995
+ {
996
+ "code": "MVR",
997
+ "number": "462",
998
+ "digits": 2,
999
+ "currency": "Rufiyaa",
1000
+ "countries": [
1001
+ "Maldives"
1002
+ ]
1003
+ },
1004
+ {
1005
+ "code": "MWK",
1006
+ "number": "454",
1007
+ "digits": 2,
1008
+ "currency": "Malawi Kwacha",
1009
+ "countries": [
1010
+ "Malawi"
1011
+ ]
1012
+ },
1013
+ {
1014
+ "code": "MXN",
1015
+ "number": "484",
1016
+ "digits": 2,
1017
+ "currency": "Mexican Peso",
1018
+ "countries": [
1019
+ "Mexico"
1020
+ ]
1021
+ },
1022
+ {
1023
+ "code": "MXV",
1024
+ "number": "979",
1025
+ "digits": 2,
1026
+ "currency": "Mexican Unidad de Inversion (UDI)",
1027
+ "countries": [
1028
+ "Mexico"
1029
+ ]
1030
+ },
1031
+ {
1032
+ "code": "MYR",
1033
+ "number": "458",
1034
+ "digits": 2,
1035
+ "currency": "Malaysian Ringgit",
1036
+ "countries": [
1037
+ "Malaysia"
1038
+ ]
1039
+ },
1040
+ {
1041
+ "code": "MZN",
1042
+ "number": "943",
1043
+ "digits": 2,
1044
+ "currency": "Mozambique Metical",
1045
+ "countries": [
1046
+ "Mozambique"
1047
+ ]
1048
+ },
1049
+ {
1050
+ "code": "NAD",
1051
+ "number": "516",
1052
+ "digits": 2,
1053
+ "currency": "Namibia Dollar",
1054
+ "countries": [
1055
+ "Namibia"
1056
+ ]
1057
+ },
1058
+ {
1059
+ "code": "NGN",
1060
+ "number": "566",
1061
+ "digits": 2,
1062
+ "currency": "Naira",
1063
+ "countries": [
1064
+ "Nigeria"
1065
+ ]
1066
+ },
1067
+ {
1068
+ "code": "NIO",
1069
+ "number": "558",
1070
+ "digits": 2,
1071
+ "currency": "Cordoba Oro",
1072
+ "countries": [
1073
+ "Nicaragua"
1074
+ ]
1075
+ },
1076
+ {
1077
+ "code": "NOK",
1078
+ "number": "578",
1079
+ "digits": 2,
1080
+ "currency": "Norwegian Krone",
1081
+ "countries": [
1082
+ "Bouvet Island",
1083
+ "Norway",
1084
+ "Svalbard and Jan Mayen"
1085
+ ]
1086
+ },
1087
+ {
1088
+ "code": "NPR",
1089
+ "number": "524",
1090
+ "digits": 2,
1091
+ "currency": "Nepalese Rupee",
1092
+ "countries": [
1093
+ "Nepal"
1094
+ ]
1095
+ },
1096
+ {
1097
+ "code": "NZD",
1098
+ "number": "554",
1099
+ "digits": 2,
1100
+ "currency": "New Zealand Dollar",
1101
+ "countries": [
1102
+ "Cook Islands (The)",
1103
+ "New Zealand",
1104
+ "Niue",
1105
+ "Pitcairn",
1106
+ "Tokelau"
1107
+ ]
1108
+ },
1109
+ {
1110
+ "code": "OMR",
1111
+ "number": "512",
1112
+ "digits": 3,
1113
+ "currency": "Rial Omani",
1114
+ "countries": [
1115
+ "Oman"
1116
+ ]
1117
+ },
1118
+ {
1119
+ "code": "PAB",
1120
+ "number": "590",
1121
+ "digits": 2,
1122
+ "currency": "Balboa",
1123
+ "countries": [
1124
+ "Panama"
1125
+ ]
1126
+ },
1127
+ {
1128
+ "code": "PEN",
1129
+ "number": "604",
1130
+ "digits": 2,
1131
+ "currency": "Sol",
1132
+ "countries": [
1133
+ "Peru"
1134
+ ]
1135
+ },
1136
+ {
1137
+ "code": "PGK",
1138
+ "number": "598",
1139
+ "digits": 2,
1140
+ "currency": "Kina",
1141
+ "countries": [
1142
+ "Papua New Guinea"
1143
+ ]
1144
+ },
1145
+ {
1146
+ "code": "PHP",
1147
+ "number": "608",
1148
+ "digits": 2,
1149
+ "currency": "Philippine Peso",
1150
+ "countries": [
1151
+ "Philippines (The)"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "code": "PKR",
1156
+ "number": "586",
1157
+ "digits": 2,
1158
+ "currency": "Pakistan Rupee",
1159
+ "countries": [
1160
+ "Pakistan"
1161
+ ]
1162
+ },
1163
+ {
1164
+ "code": "PLN",
1165
+ "number": "985",
1166
+ "digits": 2,
1167
+ "currency": "Zloty",
1168
+ "countries": [
1169
+ "Poland"
1170
+ ]
1171
+ },
1172
+ {
1173
+ "code": "PYG",
1174
+ "number": "600",
1175
+ "digits": 0,
1176
+ "currency": "Guarani",
1177
+ "countries": [
1178
+ "Paraguay"
1179
+ ]
1180
+ },
1181
+ {
1182
+ "code": "QAR",
1183
+ "number": "634",
1184
+ "digits": 2,
1185
+ "currency": "Qatari Rial",
1186
+ "countries": [
1187
+ "Qatar"
1188
+ ]
1189
+ },
1190
+ {
1191
+ "code": "RON",
1192
+ "number": "946",
1193
+ "digits": 2,
1194
+ "currency": "Romanian Leu",
1195
+ "countries": [
1196
+ "Romania"
1197
+ ]
1198
+ },
1199
+ {
1200
+ "code": "RSD",
1201
+ "number": "941",
1202
+ "digits": 2,
1203
+ "currency": "Serbian Dinar",
1204
+ "countries": [
1205
+ "Serbia"
1206
+ ]
1207
+ },
1208
+ {
1209
+ "code": "RUB",
1210
+ "number": "643",
1211
+ "digits": 2,
1212
+ "currency": "Russian Ruble",
1213
+ "countries": [
1214
+ "Russian Federation (The)"
1215
+ ]
1216
+ },
1217
+ {
1218
+ "code": "RWF",
1219
+ "number": "646",
1220
+ "digits": 0,
1221
+ "currency": "Rwanda Franc",
1222
+ "countries": [
1223
+ "Rwanda"
1224
+ ]
1225
+ },
1226
+ {
1227
+ "code": "SAR",
1228
+ "number": "682",
1229
+ "digits": 2,
1230
+ "currency": "Saudi Riyal",
1231
+ "countries": [
1232
+ "Saudi Arabia"
1233
+ ]
1234
+ },
1235
+ {
1236
+ "code": "SBD",
1237
+ "number": "090",
1238
+ "digits": 2,
1239
+ "currency": "Solomon Islands Dollar",
1240
+ "countries": [
1241
+ "Solomon Islands"
1242
+ ]
1243
+ },
1244
+ {
1245
+ "code": "SCR",
1246
+ "number": "690",
1247
+ "digits": 2,
1248
+ "currency": "Seychelles Rupee",
1249
+ "countries": [
1250
+ "Seychelles"
1251
+ ]
1252
+ },
1253
+ {
1254
+ "code": "SDG",
1255
+ "number": "938",
1256
+ "digits": 2,
1257
+ "currency": "Sudanese Pound",
1258
+ "countries": [
1259
+ "Sudan (The)"
1260
+ ]
1261
+ },
1262
+ {
1263
+ "code": "SEK",
1264
+ "number": "752",
1265
+ "digits": 2,
1266
+ "currency": "Swedish Krona",
1267
+ "countries": [
1268
+ "Sweden"
1269
+ ]
1270
+ },
1271
+ {
1272
+ "code": "SGD",
1273
+ "number": "702",
1274
+ "digits": 2,
1275
+ "currency": "Singapore Dollar",
1276
+ "countries": [
1277
+ "Singapore"
1278
+ ]
1279
+ },
1280
+ {
1281
+ "code": "SHP",
1282
+ "number": "654",
1283
+ "digits": 2,
1284
+ "currency": "Saint Helena Pound",
1285
+ "countries": [
1286
+ "Saint Helena, Ascension and Tristan Da Cunha"
1287
+ ]
1288
+ },
1289
+ {
1290
+ "code": "SLE",
1291
+ "number": "925",
1292
+ "digits": 2,
1293
+ "currency": "Leone",
1294
+ "countries": [
1295
+ "Sierra Leone"
1296
+ ]
1297
+ },
1298
+ {
1299
+ "code": "SOS",
1300
+ "number": "706",
1301
+ "digits": 2,
1302
+ "currency": "Somali Shilling",
1303
+ "countries": [
1304
+ "Somalia"
1305
+ ]
1306
+ },
1307
+ {
1308
+ "code": "SRD",
1309
+ "number": "968",
1310
+ "digits": 2,
1311
+ "currency": "Surinam Dollar",
1312
+ "countries": [
1313
+ "Suriname"
1314
+ ]
1315
+ },
1316
+ {
1317
+ "code": "SSP",
1318
+ "number": "728",
1319
+ "digits": 2,
1320
+ "currency": "South Sudanese Pound",
1321
+ "countries": [
1322
+ "South Sudan"
1323
+ ]
1324
+ },
1325
+ {
1326
+ "code": "STN",
1327
+ "number": "930",
1328
+ "digits": 2,
1329
+ "currency": "Dobra",
1330
+ "countries": [
1331
+ "Sao Tome and Principe"
1332
+ ]
1333
+ },
1334
+ {
1335
+ "code": "SVC",
1336
+ "number": "222",
1337
+ "digits": 2,
1338
+ "currency": "El Salvador Colon",
1339
+ "countries": [
1340
+ "El Salvador"
1341
+ ]
1342
+ },
1343
+ {
1344
+ "code": "SYP",
1345
+ "number": "760",
1346
+ "digits": 2,
1347
+ "currency": "Syrian Pound",
1348
+ "countries": [
1349
+ "Syrian Arab Republic"
1350
+ ]
1351
+ },
1352
+ {
1353
+ "code": "SZL",
1354
+ "number": "748",
1355
+ "digits": 2,
1356
+ "currency": "Lilangeni",
1357
+ "countries": [
1358
+ "Eswatini"
1359
+ ]
1360
+ },
1361
+ {
1362
+ "code": "THB",
1363
+ "number": "764",
1364
+ "digits": 2,
1365
+ "currency": "Baht",
1366
+ "countries": [
1367
+ "Thailand"
1368
+ ]
1369
+ },
1370
+ {
1371
+ "code": "TJS",
1372
+ "number": "972",
1373
+ "digits": 2,
1374
+ "currency": "Somoni",
1375
+ "countries": [
1376
+ "Tajikistan"
1377
+ ]
1378
+ },
1379
+ {
1380
+ "code": "TMT",
1381
+ "number": "934",
1382
+ "digits": 2,
1383
+ "currency": "Turkmenistan New Manat",
1384
+ "countries": [
1385
+ "Turkmenistan"
1386
+ ]
1387
+ },
1388
+ {
1389
+ "code": "TND",
1390
+ "number": "788",
1391
+ "digits": 3,
1392
+ "currency": "Tunisian Dinar",
1393
+ "countries": [
1394
+ "Tunisia"
1395
+ ]
1396
+ },
1397
+ {
1398
+ "code": "TOP",
1399
+ "number": "776",
1400
+ "digits": 2,
1401
+ "currency": "Pa\u2019anga",
1402
+ "countries": [
1403
+ "Tonga"
1404
+ ]
1405
+ },
1406
+ {
1407
+ "code": "TRY",
1408
+ "number": "949",
1409
+ "digits": 2,
1410
+ "currency": "Turkish Lira",
1411
+ "countries": [
1412
+ "T\xFCrki\u0307ye"
1413
+ ]
1414
+ },
1415
+ {
1416
+ "code": "TTD",
1417
+ "number": "780",
1418
+ "digits": 2,
1419
+ "currency": "Trinidad and Tobago Dollar",
1420
+ "countries": [
1421
+ "Trinidad and Tobago"
1422
+ ]
1423
+ },
1424
+ {
1425
+ "code": "TWD",
1426
+ "number": "901",
1427
+ "digits": 2,
1428
+ "currency": "New Taiwan Dollar",
1429
+ "countries": [
1430
+ "Taiwan (Province of China)"
1431
+ ]
1432
+ },
1433
+ {
1434
+ "code": "TZS",
1435
+ "number": "834",
1436
+ "digits": 2,
1437
+ "currency": "Tanzanian Shilling",
1438
+ "countries": [
1439
+ "Tanzania, United Republic Of"
1440
+ ]
1441
+ },
1442
+ {
1443
+ "code": "UAH",
1444
+ "number": "980",
1445
+ "digits": 2,
1446
+ "currency": "Hryvnia",
1447
+ "countries": [
1448
+ "Ukraine"
1449
+ ]
1450
+ },
1451
+ {
1452
+ "code": "UGX",
1453
+ "number": "800",
1454
+ "digits": 0,
1455
+ "currency": "Uganda Shilling",
1456
+ "countries": [
1457
+ "Uganda"
1458
+ ]
1459
+ },
1460
+ {
1461
+ "code": "USD",
1462
+ "number": "840",
1463
+ "digits": 2,
1464
+ "currency": "US Dollar",
1465
+ "countries": [
1466
+ "American Samoa",
1467
+ "Bonaire, Sint Eustatius and Saba",
1468
+ "British Indian Ocean Territory (The)",
1469
+ "Ecuador",
1470
+ "El Salvador",
1471
+ "Guam",
1472
+ "Haiti",
1473
+ "Marshall Islands (The)",
1474
+ "Micronesia (Federated States Of)",
1475
+ "Northern Mariana Islands (The)",
1476
+ "Palau",
1477
+ "Panama",
1478
+ "Puerto Rico",
1479
+ "Timor-Leste",
1480
+ "Turks and Caicos Islands (The)",
1481
+ "United States Minor Outlying Islands (The)",
1482
+ "United States of America (The)",
1483
+ "Virgin Islands (British)",
1484
+ "Virgin Islands (u.s.)"
1485
+ ]
1486
+ },
1487
+ {
1488
+ "code": "USN",
1489
+ "number": "997",
1490
+ "digits": 2,
1491
+ "currency": "US Dollar (Next day)",
1492
+ "countries": [
1493
+ "United States of America (The)"
1494
+ ]
1495
+ },
1496
+ {
1497
+ "code": "UYI",
1498
+ "number": "940",
1499
+ "digits": 0,
1500
+ "currency": "Uruguay Peso en Unidades Indexadas (UI)",
1501
+ "countries": [
1502
+ "Uruguay"
1503
+ ]
1504
+ },
1505
+ {
1506
+ "code": "UYU",
1507
+ "number": "858",
1508
+ "digits": 2,
1509
+ "currency": "Peso Uruguayo",
1510
+ "countries": [
1511
+ "Uruguay"
1512
+ ]
1513
+ },
1514
+ {
1515
+ "code": "UYW",
1516
+ "number": "927",
1517
+ "digits": 4,
1518
+ "currency": "Unidad Previsional",
1519
+ "countries": [
1520
+ "Uruguay"
1521
+ ]
1522
+ },
1523
+ {
1524
+ "code": "UZS",
1525
+ "number": "860",
1526
+ "digits": 2,
1527
+ "currency": "Uzbekistan Sum",
1528
+ "countries": [
1529
+ "Uzbekistan"
1530
+ ]
1531
+ },
1532
+ {
1533
+ "code": "VED",
1534
+ "number": "926",
1535
+ "digits": 2,
1536
+ "currency": "Bol\xEDvar Soberano",
1537
+ "countries": [
1538
+ "Venezuela (Bolivarian Republic Of)"
1539
+ ]
1540
+ },
1541
+ {
1542
+ "code": "VES",
1543
+ "number": "928",
1544
+ "digits": 2,
1545
+ "currency": "Bol\xEDvar Soberano",
1546
+ "countries": [
1547
+ "Venezuela (Bolivarian Republic Of)"
1548
+ ]
1549
+ },
1550
+ {
1551
+ "code": "VND",
1552
+ "number": "704",
1553
+ "digits": 0,
1554
+ "currency": "Dong",
1555
+ "countries": [
1556
+ "Viet Nam"
1557
+ ]
1558
+ },
1559
+ {
1560
+ "code": "VUV",
1561
+ "number": "548",
1562
+ "digits": 0,
1563
+ "currency": "Vatu",
1564
+ "countries": [
1565
+ "Vanuatu"
1566
+ ]
1567
+ },
1568
+ {
1569
+ "code": "WST",
1570
+ "number": "882",
1571
+ "digits": 2,
1572
+ "currency": "Tala",
1573
+ "countries": [
1574
+ "Samoa"
1575
+ ]
1576
+ },
1577
+ {
1578
+ "code": "XAF",
1579
+ "number": "950",
1580
+ "digits": 0,
1581
+ "currency": "CFA Franc BEAC",
1582
+ "countries": [
1583
+ "Cameroon",
1584
+ "Central African Republic (The)",
1585
+ "Chad",
1586
+ "Congo (The)",
1587
+ "Equatorial Guinea",
1588
+ "Gabon"
1589
+ ]
1590
+ },
1591
+ {
1592
+ "code": "XAG",
1593
+ "number": "961",
1594
+ "digits": 0,
1595
+ "currency": "Silver",
1596
+ "countries": [
1597
+ "Zz11_silver"
1598
+ ]
1599
+ },
1600
+ {
1601
+ "code": "XAU",
1602
+ "number": "959",
1603
+ "digits": 0,
1604
+ "currency": "Gold",
1605
+ "countries": [
1606
+ "Zz08_gold"
1607
+ ]
1608
+ },
1609
+ {
1610
+ "code": "XBA",
1611
+ "number": "955",
1612
+ "digits": 0,
1613
+ "currency": "Bond Markets Unit European Composite Unit (EURCO)",
1614
+ "countries": [
1615
+ "Zz01_bond Markets Unit European_eurco"
1616
+ ]
1617
+ },
1618
+ {
1619
+ "code": "XBB",
1620
+ "number": "956",
1621
+ "digits": 0,
1622
+ "currency": "Bond Markets Unit European Monetary Unit (E.M.U.-6)",
1623
+ "countries": [
1624
+ "Zz02_bond Markets Unit European_emu-6"
1625
+ ]
1626
+ },
1627
+ {
1628
+ "code": "XBC",
1629
+ "number": "957",
1630
+ "digits": 0,
1631
+ "currency": "Bond Markets Unit European Unit of Account 9 (E.U.A.-9)",
1632
+ "countries": [
1633
+ "Zz03_bond Markets Unit European_eua-9"
1634
+ ]
1635
+ },
1636
+ {
1637
+ "code": "XBD",
1638
+ "number": "958",
1639
+ "digits": 0,
1640
+ "currency": "Bond Markets Unit European Unit of Account 17 (E.U.A.-17)",
1641
+ "countries": [
1642
+ "Zz04_bond Markets Unit European_eua-17"
1643
+ ]
1644
+ },
1645
+ {
1646
+ "code": "XCD",
1647
+ "number": "951",
1648
+ "digits": 2,
1649
+ "currency": "East Caribbean Dollar",
1650
+ "countries": [
1651
+ "Anguilla",
1652
+ "Antigua and Barbuda",
1653
+ "Dominica",
1654
+ "Grenada",
1655
+ "Montserrat",
1656
+ "Saint Kitts and Nevis",
1657
+ "Saint Lucia",
1658
+ "Saint Vincent and the Grenadines"
1659
+ ]
1660
+ },
1661
+ {
1662
+ "code": "XDR",
1663
+ "number": "960",
1664
+ "digits": 0,
1665
+ "currency": "SDR (Special Drawing Right)",
1666
+ "countries": [
1667
+ "International Monetary Fund (Imf)\xA0"
1668
+ ]
1669
+ },
1670
+ {
1671
+ "code": "XOF",
1672
+ "number": "952",
1673
+ "digits": 0,
1674
+ "currency": "CFA Franc BCEAO",
1675
+ "countries": [
1676
+ "Benin",
1677
+ "Burkina Faso",
1678
+ "C\xF4te D'ivoire",
1679
+ "Guinea-Bissau",
1680
+ "Mali",
1681
+ "Niger (The)",
1682
+ "Senegal",
1683
+ "Togo"
1684
+ ]
1685
+ },
1686
+ {
1687
+ "code": "XPD",
1688
+ "number": "964",
1689
+ "digits": 0,
1690
+ "currency": "Palladium",
1691
+ "countries": [
1692
+ "Zz09_palladium"
1693
+ ]
1694
+ },
1695
+ {
1696
+ "code": "XPF",
1697
+ "number": "953",
1698
+ "digits": 0,
1699
+ "currency": "CFP Franc",
1700
+ "countries": [
1701
+ "French Polynesia",
1702
+ "New Caledonia",
1703
+ "Wallis and Futuna"
1704
+ ]
1705
+ },
1706
+ {
1707
+ "code": "XPT",
1708
+ "number": "962",
1709
+ "digits": 0,
1710
+ "currency": "Platinum",
1711
+ "countries": [
1712
+ "Zz10_platinum"
1713
+ ]
1714
+ },
1715
+ {
1716
+ "code": "XSU",
1717
+ "number": "994",
1718
+ "digits": 0,
1719
+ "currency": "Sucre",
1720
+ "countries": [
1721
+ 'Sistema Unitario De Compensacion Regional De Pagos "Sucre"'
1722
+ ]
1723
+ },
1724
+ {
1725
+ "code": "XTS",
1726
+ "number": "963",
1727
+ "digits": 0,
1728
+ "currency": "Codes specifically reserved for testing purposes",
1729
+ "countries": [
1730
+ "Zz06_testing_code"
1731
+ ]
1732
+ },
1733
+ {
1734
+ "code": "XUA",
1735
+ "number": "965",
1736
+ "digits": 0,
1737
+ "currency": "ADB Unit of Account",
1738
+ "countries": [
1739
+ "Member Countries of the African Development Bank Group"
1740
+ ]
1741
+ },
1742
+ {
1743
+ "code": "XXX",
1744
+ "number": "999",
1745
+ "digits": 0,
1746
+ "currency": "The codes assigned for transactions where no currency is involved",
1747
+ "countries": [
1748
+ "Zz07_no_currency"
1749
+ ]
1750
+ },
1751
+ {
1752
+ "code": "YER",
1753
+ "number": "886",
1754
+ "digits": 2,
1755
+ "currency": "Yemeni Rial",
1756
+ "countries": [
1757
+ "Yemen"
1758
+ ]
1759
+ },
1760
+ {
1761
+ "code": "ZAR",
1762
+ "number": "710",
1763
+ "digits": 2,
1764
+ "currency": "Rand",
1765
+ "countries": [
1766
+ "Lesotho",
1767
+ "Namibia",
1768
+ "South Africa"
1769
+ ]
1770
+ },
1771
+ {
1772
+ "code": "ZMW",
1773
+ "number": "967",
1774
+ "digits": 2,
1775
+ "currency": "Zambian Kwacha",
1776
+ "countries": [
1777
+ "Zambia"
1778
+ ]
1779
+ },
1780
+ {
1781
+ "code": "ZWG",
1782
+ "number": "924",
1783
+ "digits": 2,
1784
+ "currency": "Zimbabwe Gold",
1785
+ "countries": [
1786
+ "Zimbabwe"
1787
+ ]
1788
+ }
1789
+ ];
1790
+ }
1791
+ });
1792
+
1793
+ // ../../node_modules/.pnpm/currency-codes@2.2.0/node_modules/currency-codes/iso-4217-publish-date.js
1794
+ var require_iso_4217_publish_date = __commonJS({
1795
+ "../../node_modules/.pnpm/currency-codes@2.2.0/node_modules/currency-codes/iso-4217-publish-date.js"(exports, module) {
1796
+ module.exports = "2024-06-25";
1797
+ }
1798
+ });
1799
+
1800
+ // ../../node_modules/.pnpm/currency-codes@2.2.0/node_modules/currency-codes/index.js
1801
+ var require_currency_codes = __commonJS({
1802
+ "../../node_modules/.pnpm/currency-codes@2.2.0/node_modules/currency-codes/index.js"(exports) {
1803
+ var first = require_first_match();
1804
+ var nub = require_nub();
1805
+ var data = require_data();
1806
+ var publishDate = require_iso_4217_publish_date();
1807
+ var code = function(code2) {
1808
+ code2 = code2.toUpperCase();
1809
+ return first(data, function(c) {
1810
+ return c.code === code2;
1811
+ });
1812
+ };
1813
+ var country = function(country2) {
1814
+ country2 = country2.toLowerCase();
1815
+ return data.filter(function(c) {
1816
+ return (c.countries.map(function(c2) {
1817
+ return c2.toLowerCase();
1818
+ }) || []).indexOf(country2) > -1;
1819
+ });
1820
+ };
1821
+ var number = function(number2) {
1822
+ return first(data, function(c) {
1823
+ return c.number === String(number2);
1824
+ });
1825
+ };
1826
+ var codes = function() {
1827
+ return data.map(function(c) {
1828
+ return c.code;
1829
+ });
1830
+ };
1831
+ var numbers = function() {
1832
+ var items = data.map(function(c) {
1833
+ return c.number;
1834
+ });
1835
+ return items.filter(function(n) {
1836
+ if (n) {
1837
+ return n;
1838
+ }
1839
+ });
1840
+ };
1841
+ var countries = function() {
1842
+ var m = data.filter(function(c) {
1843
+ return c.countries;
1844
+ }).map(function(c) {
1845
+ return c.countries;
1846
+ });
1847
+ return nub(Array.prototype.concat.apply([], m));
1848
+ };
1849
+ exports.code = code;
1850
+ exports.country = country;
1851
+ exports.number = number;
1852
+ exports.codes = codes;
1853
+ exports.numbers = numbers;
1854
+ exports.countries = countries;
1855
+ exports.publishDate = publishDate;
1856
+ exports.data = data;
1857
+ }
1858
+ });
1859
+
1860
+ // ../schemas/money.ts
1861
+ var import_currency_codes = __toESM(require_currency_codes());
1862
+ function randomUUID() {
1863
+ return v4();
1864
+ }
1865
+ var ReploError = class _ReploError extends Error {
1866
+ config;
1867
+ id;
1868
+ constructor(config) {
1869
+ super(config.message);
1870
+ this.message = config.message ?? this.constructor.name;
1871
+ this.config = config;
1872
+ this.id = randomUUID();
1873
+ const cause = config.cause;
1874
+ if (cause) {
1875
+ this.cause = cause;
1876
+ if (cause instanceof _ReploError) {
1877
+ this.config.additionalData = {
1878
+ ...this.config.additionalData,
1879
+ ...cause.config.additionalData
1880
+ };
1881
+ }
1882
+ }
1883
+ }
1884
+ };
1885
+ var errorUserFacingDetailsMessageSchema = z.object({
1886
+ type: z.enum([
1887
+ "toast",
1888
+ "fullPageModal",
1889
+ "shopifyStorePassword",
1890
+ "billing.addPublishedElements",
1891
+ "billing.addShopifyThemeProject",
1892
+ "billing.addReploSite",
1893
+ // Agent Billing ONLY
1894
+ "agentBilling.shopifyThemeBuilder.publishedElements.exceeded",
1895
+ "agentBilling.shopifyThemeBuilder.projects.exceeded",
1896
+ "agentBilling.sites.exceeded",
1897
+ "agentBilling.credits.exceeded",
1898
+ "agentBilling.upgradeRequired"
1899
+ ]),
1900
+ message: z.string(),
1901
+ isRecoverable: z.boolean().optional(),
1902
+ // NOTE (Matt 2024-03-22): We support detail being an array of strings
1903
+ // in FullPageModal only.
1904
+ detail: z.array(z.string()).or(z.string()).optional(),
1905
+ key: z.string(),
1906
+ usage: z.object({
1907
+ current: z.number(),
1908
+ maximum: z.number()
1909
+ }).optional(),
1910
+ plan: z.string().optional(),
1911
+ callToAction: z.discriminatedUnion("type", [
1912
+ z.object({ type: z.literal("reload") }),
1913
+ z.object({ type: z.literal("installApp") }),
1914
+ z.object({ type: z.literal("goToHomepage") }),
1915
+ z.object({ type: z.literal("navigateToProjectEditor") }),
1916
+ z.object({ type: z.literal("closeModal") }),
1917
+ z.object({
1918
+ type: z.literal("navigateToLink"),
1919
+ link: z.discriminatedUnion("type", [
1920
+ z.object({ type: z.literal("errors.wrongJsonExtension") }),
1921
+ z.object({ type: z.literal("errors.chunkingError") }),
1922
+ z.object({ type: z.literal("errors.indexBackupError") }),
1923
+ z.object({
1924
+ type: z.literal("errors.shopifyIntegrationAlreadyAssigned")
1925
+ }),
1926
+ z.object({
1927
+ type: z.literal("errors.shopifyIntegrationMissingAccessScopes"),
1928
+ url: z.string()
1929
+ }),
1930
+ z.object({
1931
+ type: z.literal("customLink"),
1932
+ url: z.string()
1933
+ }),
1934
+ z.object({
1935
+ type: z.literal(
1936
+ "errors.projectConnectedToBillingIntegrationForShopifyWorkspace"
1937
+ )
1938
+ }),
1939
+ z.object({ type: z.literal("errors.themeAssetSizeLimitExceeded") }),
1940
+ z.object({ type: z.literal("errors.themeTotalSizeLimitExceeded") }),
1941
+ z.object({
1942
+ type: z.literal("errors.pageMetafieldDefinitionsChanged")
1943
+ }),
1944
+ z.object({ type: z.literal("settings.billing") })
1945
+ ])
1946
+ })
1947
+ ]).optional()
1948
+ }).describe("ErrorUserFacingDetailsWithMessage");
1949
+ z.discriminatedUnion("type", [
1950
+ /**
1951
+ * Normal errors, show error UI depending on the type
1952
+ */
1953
+ errorUserFacingDetailsMessageSchema,
1954
+ /**
1955
+ * Errors which should be ignored by the frontend. This is uncommon, usually
1956
+ * you want to show an error in the UI, and if you don't want to then you catch
1957
+ * the error in your route.
1958
+ */
1959
+ z.object({
1960
+ type: z.literal("uncommon_none"),
1961
+ key: z.string(),
1962
+ usage: z.object({
1963
+ current: z.number(),
1964
+ maximum: z.number()
1965
+ }).optional(),
1966
+ message: z.string().optional(),
1967
+ isRecoverable: z.boolean().optional(),
1968
+ detail: z.array(z.string()).or(z.string()).optional()
1969
+ })
1970
+ ]).describe("ErrorUserFacingDetails");
1971
+
1972
+ // ../schemas/money.ts
1973
+ var InvalidAmountError = class extends ReploError {
1974
+ };
1975
+ var UnsupportedCurrencyError = class extends ReploError {
1976
+ };
1977
+ var STRIPE_UNSUPPORTED_CURRENCIES = /* @__PURE__ */ new Set([
1978
+ "ISK",
1979
+ "UGX",
1980
+ "IQD",
1981
+ "LYD",
1982
+ "MGA",
1983
+ "MRU"
1984
+ ]);
1985
+ function currencyMinorUnitExponent(currencyCode) {
1986
+ const normalizedCode = currencyCode.toUpperCase();
1987
+ if (STRIPE_UNSUPPORTED_CURRENCIES.has(normalizedCode)) {
1988
+ throw new UnsupportedCurrencyError({
1989
+ message: "Currency's ISO minor-unit exponent differs from Stripe's; not supported",
1990
+ additionalData: { currencyCode: normalizedCode }
1991
+ });
1992
+ }
1993
+ return (0, import_currency_codes.code)(normalizedCode)?.digits ?? 2;
1994
+ }
1995
+ function fromMajorUnitsToMinorUnits({
1996
+ amount,
1997
+ currencyCode
1998
+ }) {
1999
+ const majorUnits = typeof amount === "string" && amount.trim() === "" ? Number.NaN : Number(amount);
2000
+ if (!Number.isFinite(majorUnits)) {
2001
+ throw new InvalidAmountError({
2002
+ message: "Money amount is not a finite number",
2003
+ additionalData: { amount, currencyCode }
2004
+ });
2005
+ }
2006
+ const scaled = majorUnits * 10 ** currencyMinorUnitExponent(currencyCode);
2007
+ return Math.round(Number(scaled.toPrecision(15)));
2008
+ }
2009
+ function parseDecimalToMinorUnits({
2010
+ value,
2011
+ currencyCode
2012
+ }) {
2013
+ const trimmed = value?.trim();
2014
+ if (!trimmed || !Number.isFinite(Number(trimmed))) {
2015
+ return null;
2016
+ }
2017
+ return fromMajorUnitsToMinorUnits({ amount: trimmed, currencyCode });
2018
+ }
2019
+ function fromMinorUnitsToMajorUnits({
2020
+ amount,
2021
+ currencyCode
2022
+ }) {
2023
+ return amount / 10 ** currencyMinorUnitExponent(currencyCode);
2024
+ }
2025
+ function fromMinorUnitsToMajorUnitsString({
2026
+ amount,
2027
+ currencyCode
2028
+ }) {
2029
+ return fromMinorUnitsToMajorUnits({ amount, currencyCode }).toFixed(
2030
+ currencyMinorUnitExponent(currencyCode)
2031
+ );
2032
+ }
2033
+ function formatAmount({
2034
+ amount,
2035
+ currencyCode,
2036
+ locale
2037
+ }) {
2038
+ return new Intl.NumberFormat(locale ?? "en-US", {
2039
+ style: "currency",
2040
+ currency: currencyCode.toUpperCase()
2041
+ }).format(fromMinorUnitsToMajorUnits({ amount, currencyCode }));
2042
+ }
2043
+ var amountSchema = z.number().int().describe(
2044
+ "Integer amount in the currency's minor units (Stripe convention): 1999 = $19.99 USD, 1999 = \xA51999 JPY, 1999 = 1.999 KWD"
2045
+ );
2046
+ var amountWithCurrencyCodeSchema = z.object({
2047
+ amount: amountSchema,
2048
+ currencyCode: z.string()
2049
+ });
2050
+
2051
+ export { InvalidAmountError, UnsupportedCurrencyError, amountSchema, amountWithCurrencyCodeSchema, formatAmount, fromMajorUnitsToMinorUnits, fromMinorUnitsToMajorUnits, fromMinorUnitsToMajorUnitsString, parseDecimalToMinorUnits };