@decocms/apps 0.20.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 (113) hide show
  1. package/.github/workflows/release.yml +34 -0
  2. package/.releaserc.json +25 -0
  3. package/commerce/components/Image.tsx +209 -0
  4. package/commerce/components/JsonLd.tsx +285 -0
  5. package/commerce/sdk/analytics.ts +24 -0
  6. package/commerce/sdk/formatPrice.ts +23 -0
  7. package/commerce/sdk/url.ts +9 -0
  8. package/commerce/sdk/useOffer.ts +75 -0
  9. package/commerce/sdk/useVariantPossibilities.ts +43 -0
  10. package/commerce/types/commerce.ts +1105 -0
  11. package/commerce/utils/canonical.ts +11 -0
  12. package/commerce/utils/constants.ts +9 -0
  13. package/commerce/utils/filters.ts +10 -0
  14. package/commerce/utils/productToAnalyticsItem.ts +67 -0
  15. package/commerce/utils/stateByZip.ts +50 -0
  16. package/knip.json +19 -0
  17. package/package.json +77 -0
  18. package/shopify/actions/cart/addItems.ts +37 -0
  19. package/shopify/actions/cart/updateCoupons.ts +32 -0
  20. package/shopify/actions/cart/updateItems.ts +32 -0
  21. package/shopify/actions/user/signIn.ts +45 -0
  22. package/shopify/actions/user/signUp.ts +36 -0
  23. package/shopify/client.ts +58 -0
  24. package/shopify/index.ts +32 -0
  25. package/shopify/init.ts +40 -0
  26. package/shopify/loaders/ProductDetailsPage.ts +35 -0
  27. package/shopify/loaders/ProductList.ts +101 -0
  28. package/shopify/loaders/ProductListingPage.ts +180 -0
  29. package/shopify/loaders/RelatedProducts.ts +45 -0
  30. package/shopify/loaders/cart.ts +73 -0
  31. package/shopify/loaders/shop.ts +40 -0
  32. package/shopify/loaders/user.ts +44 -0
  33. package/shopify/utils/admin/admin.ts +57 -0
  34. package/shopify/utils/admin/queries.ts +29 -0
  35. package/shopify/utils/cart.ts +28 -0
  36. package/shopify/utils/cookies.ts +85 -0
  37. package/shopify/utils/enums.ts +438 -0
  38. package/shopify/utils/graphql.ts +69 -0
  39. package/shopify/utils/storefront/queries.ts +530 -0
  40. package/shopify/utils/storefront/storefront.graphql.gen.ts +113 -0
  41. package/shopify/utils/transform.ts +436 -0
  42. package/shopify/utils/types.ts +191 -0
  43. package/shopify/utils/user.ts +23 -0
  44. package/shopify/utils/utils.ts +164 -0
  45. package/tsconfig.json +11 -0
  46. package/vtex/README.md +6 -0
  47. package/vtex/actions/address.ts +211 -0
  48. package/vtex/actions/auth.ts +337 -0
  49. package/vtex/actions/checkout.ts +497 -0
  50. package/vtex/actions/index.ts +11 -0
  51. package/vtex/actions/masterData.ts +170 -0
  52. package/vtex/actions/misc.ts +196 -0
  53. package/vtex/actions/newsletter.ts +108 -0
  54. package/vtex/actions/orders.ts +37 -0
  55. package/vtex/actions/profile.ts +119 -0
  56. package/vtex/actions/session.ts +87 -0
  57. package/vtex/actions/trigger.ts +43 -0
  58. package/vtex/actions/wishlist.ts +116 -0
  59. package/vtex/client.ts +423 -0
  60. package/vtex/hooks/index.ts +4 -0
  61. package/vtex/hooks/useAutocomplete.ts +89 -0
  62. package/vtex/hooks/useCart.ts +219 -0
  63. package/vtex/hooks/useUser.ts +78 -0
  64. package/vtex/hooks/useWishlist.ts +119 -0
  65. package/vtex/index.ts +14 -0
  66. package/vtex/inline-loaders/productDetailsPage.ts +75 -0
  67. package/vtex/inline-loaders/productList.ts +163 -0
  68. package/vtex/inline-loaders/productListingPage.ts +447 -0
  69. package/vtex/inline-loaders/relatedProducts.ts +83 -0
  70. package/vtex/inline-loaders/suggestions.ts +49 -0
  71. package/vtex/inline-loaders/workflowProducts.ts +68 -0
  72. package/vtex/invoke.ts +202 -0
  73. package/vtex/loaders/address.ts +120 -0
  74. package/vtex/loaders/brands.ts +51 -0
  75. package/vtex/loaders/cart.ts +49 -0
  76. package/vtex/loaders/catalog.ts +165 -0
  77. package/vtex/loaders/collections.ts +57 -0
  78. package/vtex/loaders/index.ts +19 -0
  79. package/vtex/loaders/legacy.ts +671 -0
  80. package/vtex/loaders/logistics.ts +115 -0
  81. package/vtex/loaders/navbar.ts +29 -0
  82. package/vtex/loaders/orders.ts +103 -0
  83. package/vtex/loaders/pageType.ts +62 -0
  84. package/vtex/loaders/payment.ts +107 -0
  85. package/vtex/loaders/profile.ts +138 -0
  86. package/vtex/loaders/promotion.ts +33 -0
  87. package/vtex/loaders/search.ts +127 -0
  88. package/vtex/loaders/session.ts +91 -0
  89. package/vtex/loaders/user.ts +89 -0
  90. package/vtex/loaders/wishlist.ts +89 -0
  91. package/vtex/loaders/wishlistProducts.ts +81 -0
  92. package/vtex/loaders/workflow.ts +323 -0
  93. package/vtex/logo.png +0 -0
  94. package/vtex/middleware.ts +229 -0
  95. package/vtex/types.ts +248 -0
  96. package/vtex/utils/batch.ts +21 -0
  97. package/vtex/utils/cookies.ts +76 -0
  98. package/vtex/utils/enrichment.ts +540 -0
  99. package/vtex/utils/fetchCache.ts +150 -0
  100. package/vtex/utils/index.ts +17 -0
  101. package/vtex/utils/intelligentSearch.ts +84 -0
  102. package/vtex/utils/legacy.ts +155 -0
  103. package/vtex/utils/pickAndOmit.ts +30 -0
  104. package/vtex/utils/proxy.ts +196 -0
  105. package/vtex/utils/resourceRange.ts +10 -0
  106. package/vtex/utils/segment.ts +163 -0
  107. package/vtex/utils/similars.ts +38 -0
  108. package/vtex/utils/sitemap.ts +133 -0
  109. package/vtex/utils/slugCache.ts +32 -0
  110. package/vtex/utils/slugify.ts +13 -0
  111. package/vtex/utils/transform.ts +1331 -0
  112. package/vtex/utils/types.ts +1884 -0
  113. package/vtex/utils/vtexId.ts +103 -0
@@ -0,0 +1,438 @@
1
+ export enum CurrencyCode {
2
+ AED = "AED",
3
+ AFN = "AFN",
4
+ ALL = "ALL",
5
+ AMD = "AMD",
6
+ ANG = "ANG",
7
+ AOA = "AOA",
8
+ ARS = "ARS",
9
+ AUD = "AUD",
10
+ AWG = "AWG",
11
+ AZN = "AZN",
12
+ BAM = "BAM",
13
+ BBD = "BBD",
14
+ BDT = "BDT",
15
+ BGN = "BGN",
16
+ BHD = "BHD",
17
+ BIF = "BIF",
18
+ BMD = "BMD",
19
+ BND = "BND",
20
+ BOB = "BOB",
21
+ BRL = "BRL",
22
+ BSD = "BSD",
23
+ BTN = "BTN",
24
+ BWP = "BWP",
25
+ BYN = "BYN",
26
+ BZD = "BZD",
27
+ CAD = "CAD",
28
+ CDF = "CDF",
29
+ CHF = "CHF",
30
+ CLP = "CLP",
31
+ CNY = "CNY",
32
+ COP = "COP",
33
+ CRC = "CRC",
34
+ CVE = "CVE",
35
+ CZK = "CZK",
36
+ DJF = "DJF",
37
+ DKK = "DKK",
38
+ DOP = "DOP",
39
+ DZD = "DZD",
40
+ EGP = "EGP",
41
+ ERN = "ERN",
42
+ ETB = "ETB",
43
+ EUR = "EUR",
44
+ FJD = "FJD",
45
+ FKP = "FKP",
46
+ GBP = "GBP",
47
+ GEL = "GEL",
48
+ GHS = "GHS",
49
+ GIP = "GIP",
50
+ GMD = "GMD",
51
+ GNF = "GNF",
52
+ GTQ = "GTQ",
53
+ GYD = "GYD",
54
+ HKD = "HKD",
55
+ HNL = "HNL",
56
+ HRK = "HRK",
57
+ HTG = "HTG",
58
+ HUF = "HUF",
59
+ IDR = "IDR",
60
+ ILS = "ILS",
61
+ INR = "INR",
62
+ IQD = "IQD",
63
+ IRR = "IRR",
64
+ ISK = "ISK",
65
+ JEP = "JEP",
66
+ JMD = "JMD",
67
+ JOD = "JOD",
68
+ JPY = "JPY",
69
+ KES = "KES",
70
+ KGS = "KGS",
71
+ KHR = "KHR",
72
+ KID = "KID",
73
+ KMF = "KMF",
74
+ KRW = "KRW",
75
+ KWD = "KWD",
76
+ KYD = "KYD",
77
+ KZT = "KZT",
78
+ LAK = "LAK",
79
+ LBP = "LBP",
80
+ LKR = "LKR",
81
+ LRD = "LRD",
82
+ LSL = "LSL",
83
+ LTL = "LTL",
84
+ LVL = "LVL",
85
+ LYD = "LYD",
86
+ MAD = "MAD",
87
+ MDL = "MDL",
88
+ MGA = "MGA",
89
+ MKD = "MKD",
90
+ MMK = "MMK",
91
+ MNT = "MNT",
92
+ MOP = "MOP",
93
+ MRU = "MRU",
94
+ MUR = "MUR",
95
+ MVR = "MVR",
96
+ MWK = "MWK",
97
+ MXN = "MXN",
98
+ MYR = "MYR",
99
+ MZN = "MZN",
100
+ NAD = "NAD",
101
+ NGN = "NGN",
102
+ NIO = "NIO",
103
+ NOK = "NOK",
104
+ NPR = "NPR",
105
+ NZD = "NZD",
106
+ OMR = "OMR",
107
+ PAB = "PAB",
108
+ PEN = "PEN",
109
+ PGK = "PGK",
110
+ PHP = "PHP",
111
+ PKR = "PKR",
112
+ PLN = "PLN",
113
+ PYG = "PYG",
114
+ QAR = "QAR",
115
+ RON = "RON",
116
+ RSD = "RSD",
117
+ RUB = "RUB",
118
+ RWF = "RWF",
119
+ SAR = "SAR",
120
+ SBD = "SBD",
121
+ SCR = "SCR",
122
+ SDG = "SDG",
123
+ SEK = "SEK",
124
+ SGD = "SGD",
125
+ SHP = "SHP",
126
+ SLL = "SLL",
127
+ SOS = "SOS",
128
+ SRD = "SRD",
129
+ SSP = "SSP",
130
+ STN = "STN",
131
+ SYP = "SYP",
132
+ SZL = "SZL",
133
+ THB = "THB",
134
+ TJS = "TJS",
135
+ TMT = "TMT",
136
+ TND = "TND",
137
+ TOP = "TOP",
138
+ TRY = "TRY",
139
+ TTD = "TTD",
140
+ TWD = "TWD",
141
+ TZS = "TZS",
142
+ UAH = "UAH",
143
+ UGX = "UGX",
144
+ USD = "USD",
145
+ UYU = "UYU",
146
+ UZS = "UZS",
147
+ VED = "VED",
148
+ VES = "VES",
149
+ VND = "VND",
150
+ VUV = "VUV",
151
+ WST = "WST",
152
+ XAF = "XAF",
153
+ XCD = "XCD",
154
+ XOF = "XOF",
155
+ XPF = "XPF",
156
+ XXX = "XXX",
157
+ YER = "YER",
158
+ ZAR = "ZAR",
159
+ ZMW = "ZMW",
160
+ }
161
+
162
+ export enum CountryCode {
163
+ AC = "AC",
164
+ AD = "AD",
165
+ AE = "AE",
166
+ AF = "AF",
167
+ AG = "AG",
168
+ AI = "AI",
169
+ AL = "AL",
170
+ AM = "AM",
171
+ AN = "AN",
172
+ AO = "AO",
173
+ AR = "AR",
174
+ AT = "AT",
175
+ AU = "AU",
176
+ AW = "AW",
177
+ AX = "AX",
178
+ AZ = "AZ",
179
+ BA = "BA",
180
+ BB = "BB",
181
+ BD = "BD",
182
+ BE = "BE",
183
+ BF = "BF",
184
+ BG = "BG",
185
+ BH = "BH",
186
+ BI = "BI",
187
+ BJ = "BJ",
188
+ BL = "BL",
189
+ BM = "BM",
190
+ BN = "BN",
191
+ BO = "BO",
192
+ BQ = "BQ",
193
+ BR = "BR",
194
+ BS = "BS",
195
+ BT = "BT",
196
+ BV = "BV",
197
+ BW = "BW",
198
+ BY = "BY",
199
+ BZ = "BZ",
200
+ CA = "CA",
201
+ CC = "CC",
202
+ CD = "CD",
203
+ CF = "CF",
204
+ CG = "CG",
205
+ CH = "CH",
206
+ CI = "CI",
207
+ CK = "CK",
208
+ CL = "CL",
209
+ CM = "CM",
210
+ CN = "CN",
211
+ CO = "CO",
212
+ CR = "CR",
213
+ CU = "CU",
214
+ CV = "CV",
215
+ CW = "CW",
216
+ CX = "CX",
217
+ CY = "CY",
218
+ CZ = "CZ",
219
+ DE = "DE",
220
+ DJ = "DJ",
221
+ DK = "DK",
222
+ DM = "DM",
223
+ DO = "DO",
224
+ DZ = "DZ",
225
+ EC = "EC",
226
+ EE = "EE",
227
+ EG = "EG",
228
+ EH = "EH",
229
+ ER = "ER",
230
+ ES = "ES",
231
+ ET = "ET",
232
+ FI = "FI",
233
+ FJ = "FJ",
234
+ FK = "FK",
235
+ FO = "FO",
236
+ FR = "FR",
237
+ GA = "GA",
238
+ GB = "GB",
239
+ GD = "GD",
240
+ GE = "GE",
241
+ GF = "GF",
242
+ GG = "GG",
243
+ GH = "GH",
244
+ GI = "GI",
245
+ GL = "GL",
246
+ GM = "GM",
247
+ GN = "GN",
248
+ GP = "GP",
249
+ GQ = "GQ",
250
+ GR = "GR",
251
+ GS = "GS",
252
+ GT = "GT",
253
+ GW = "GW",
254
+ GY = "GY",
255
+ HK = "HK",
256
+ HM = "HM",
257
+ HN = "HN",
258
+ HR = "HR",
259
+ HT = "HT",
260
+ HU = "HU",
261
+ ID = "ID",
262
+ IE = "IE",
263
+ IL = "IL",
264
+ IM = "IM",
265
+ IN = "IN",
266
+ IO = "IO",
267
+ IQ = "IQ",
268
+ IR = "IR",
269
+ IS = "IS",
270
+ IT = "IT",
271
+ JE = "JE",
272
+ JM = "JM",
273
+ JO = "JO",
274
+ JP = "JP",
275
+ KE = "KE",
276
+ KG = "KG",
277
+ KH = "KH",
278
+ KI = "KI",
279
+ KM = "KM",
280
+ KN = "KN",
281
+ KP = "KP",
282
+ KR = "KR",
283
+ KW = "KW",
284
+ KY = "KY",
285
+ KZ = "KZ",
286
+ LA = "LA",
287
+ LB = "LB",
288
+ LC = "LC",
289
+ LI = "LI",
290
+ LK = "LK",
291
+ LR = "LR",
292
+ LS = "LS",
293
+ LT = "LT",
294
+ LU = "LU",
295
+ LV = "LV",
296
+ LY = "LY",
297
+ MA = "MA",
298
+ MC = "MC",
299
+ MD = "MD",
300
+ ME = "ME",
301
+ MF = "MF",
302
+ MG = "MG",
303
+ MK = "MK",
304
+ ML = "ML",
305
+ MM = "MM",
306
+ MN = "MN",
307
+ MO = "MO",
308
+ MQ = "MQ",
309
+ MR = "MR",
310
+ MS = "MS",
311
+ MT = "MT",
312
+ MU = "MU",
313
+ MV = "MV",
314
+ MW = "MW",
315
+ MX = "MX",
316
+ MY = "MY",
317
+ MZ = "MZ",
318
+ NA = "NA",
319
+ NC = "NC",
320
+ NE = "NE",
321
+ NF = "NF",
322
+ NG = "NG",
323
+ NI = "NI",
324
+ NL = "NL",
325
+ NO = "NO",
326
+ NP = "NP",
327
+ NR = "NR",
328
+ NU = "NU",
329
+ NZ = "NZ",
330
+ OM = "OM",
331
+ PA = "PA",
332
+ PE = "PE",
333
+ PF = "PF",
334
+ PG = "PG",
335
+ PH = "PH",
336
+ PK = "PK",
337
+ PL = "PL",
338
+ PM = "PM",
339
+ PN = "PN",
340
+ PS = "PS",
341
+ PT = "PT",
342
+ PY = "PY",
343
+ QA = "QA",
344
+ RE = "RE",
345
+ RO = "RO",
346
+ RS = "RS",
347
+ RU = "RU",
348
+ RW = "RW",
349
+ SA = "SA",
350
+ SB = "SB",
351
+ SC = "SC",
352
+ SD = "SD",
353
+ SE = "SE",
354
+ SG = "SG",
355
+ SH = "SH",
356
+ SI = "SI",
357
+ SJ = "SJ",
358
+ SK = "SK",
359
+ SL = "SL",
360
+ SM = "SM",
361
+ SN = "SN",
362
+ SO = "SO",
363
+ SR = "SR",
364
+ SS = "SS",
365
+ ST = "ST",
366
+ SV = "SV",
367
+ SX = "SX",
368
+ SY = "SY",
369
+ SZ = "SZ",
370
+ TA = "TA",
371
+ TC = "TC",
372
+ TD = "TD",
373
+ TF = "TF",
374
+ TG = "TG",
375
+ TH = "TH",
376
+ TJ = "TJ",
377
+ TK = "TK",
378
+ TL = "TL",
379
+ TM = "TM",
380
+ TN = "TN",
381
+ TO = "TO",
382
+ TR = "TR",
383
+ TT = "TT",
384
+ TV = "TV",
385
+ TW = "TW",
386
+ TZ = "TZ",
387
+ UA = "UA",
388
+ UG = "UG",
389
+ UM = "UM",
390
+ US = "US",
391
+ UY = "UY",
392
+ UZ = "UZ",
393
+ VA = "VA",
394
+ VC = "VC",
395
+ VE = "VE",
396
+ VG = "VG",
397
+ VN = "VN",
398
+ VU = "VU",
399
+ WF = "WF",
400
+ WS = "WS",
401
+ XK = "XK",
402
+ YE = "YE",
403
+ YT = "YT",
404
+ ZA = "ZA",
405
+ ZM = "ZM",
406
+ ZW = "ZW",
407
+ ZZ = "ZZ",
408
+ }
409
+
410
+ export enum OrderCancelReason {
411
+ CUSTOMER = "CUSTOMER",
412
+ DECLINED = "DECLINED",
413
+ FRAUD = "FRAUD",
414
+ INVENTORY = "INVENTORY",
415
+ OTHER = "OTHER",
416
+ }
417
+
418
+ export enum OrderFinancialStatus {
419
+ AUTHORIZED = "AUTHORIZED",
420
+ PAID = "PAID",
421
+ PARTIALLY_PAID = "PARTIALLY_PAID",
422
+ PARTIALLY_REFUNDED = "PARTIALLY_REFUNDED",
423
+ PENDING = "PENDING",
424
+ REFUNDED = "REFUNDED",
425
+ VOIDED = "VOIDED",
426
+ }
427
+
428
+ export enum OrderFulfillmentStatus {
429
+ FULFILLED = "FULFILLED",
430
+ IN_PROGRESS = "IN_PROGRESS",
431
+ ON_HOLD = "ON_HOLD",
432
+ OPEN = "OPEN",
433
+ PARTIALLY_FULFILLED = "PARTIALLY_FULFILLED",
434
+ PENDING_FULFILLMENT = "PENDING_FULFILLMENT",
435
+ RESTOCKED = "RESTOCKED",
436
+ SCHEDULED = "SCHEDULED",
437
+ UNFULFILLED = "UNFULFILLED",
438
+ }
@@ -0,0 +1,69 @@
1
+ export function gql(
2
+ strings: TemplateStringsArray,
3
+ ...values: unknown[]
4
+ ): string {
5
+ return strings.reduce(
6
+ (acc, str, i) => acc + str + (values[i] ?? ""),
7
+ ""
8
+ );
9
+ }
10
+
11
+ export interface QueryDefinition {
12
+ fragments?: string[];
13
+ query: string;
14
+ }
15
+
16
+ export function buildQuery(def: QueryDefinition): string {
17
+ const fragments = def.fragments?.join("\n") ?? "";
18
+ return fragments ? `${fragments}\n${def.query}` : def.query;
19
+ }
20
+
21
+ export interface GraphQLClient {
22
+ query<T>(
23
+ query: string | QueryDefinition,
24
+ variables?: Record<string, unknown>
25
+ ): Promise<T>;
26
+ }
27
+
28
+ export function createGraphqlClient(
29
+ endpoint: string,
30
+ headers: Record<string, string>,
31
+ fetchFn?: typeof fetch,
32
+ ): GraphQLClient {
33
+ const _fetch = fetchFn ?? globalThis.fetch;
34
+ return {
35
+ async query<T>(
36
+ queryOrDef: string | QueryDefinition,
37
+ variables?: Record<string, unknown>
38
+ ): Promise<T> {
39
+ const query = typeof queryOrDef === "string"
40
+ ? queryOrDef
41
+ : buildQuery(queryOrDef);
42
+
43
+ const response = await _fetch(endpoint, {
44
+ method: "POST",
45
+ headers: {
46
+ "Content-Type": "application/json",
47
+ ...headers,
48
+ },
49
+ body: JSON.stringify({ query, variables }),
50
+ });
51
+
52
+ if (!response.ok) {
53
+ throw new Error(
54
+ `Shopify GraphQL error: ${response.status} ${response.statusText}`
55
+ );
56
+ }
57
+
58
+ const json = await response.json() as { data?: T; errors?: Array<{ message: string }> };
59
+
60
+ if (json.errors?.length) {
61
+ throw new Error(
62
+ `Shopify GraphQL errors: ${json.errors.map((e) => e.message).join(", ")}`
63
+ );
64
+ }
65
+
66
+ return json.data as T;
67
+ },
68
+ };
69
+ }