@decocms/apps-vtex 8.1.0-next.0 → 8.1.0-next.2

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 (163) hide show
  1. package/dist/index.d.ts +6 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +6 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/utils/constants.d.ts +28 -0
  6. package/dist/utils/constants.d.ts.map +1 -0
  7. package/dist/utils/constants.js +17 -0
  8. package/dist/utils/constants.js.map +1 -0
  9. package/dist/utils/cookieSanitizer.d.ts +87 -0
  10. package/dist/utils/cookieSanitizer.d.ts.map +1 -0
  11. package/dist/utils/cookieSanitizer.js +136 -0
  12. package/dist/utils/cookieSanitizer.js.map +1 -0
  13. package/dist/utils/operationRouter.d.ts +25 -0
  14. package/dist/utils/operationRouter.d.ts.map +1 -0
  15. package/dist/utils/operationRouter.js +120 -0
  16. package/dist/utils/operationRouter.js.map +1 -0
  17. package/dist/utils/types.d.ts +944 -0
  18. package/dist/utils/types.d.ts.map +1 -0
  19. package/dist/utils/types.js +25 -0
  20. package/dist/utils/types.js.map +1 -0
  21. package/dist/vtexClient.d.ts +173 -0
  22. package/dist/vtexClient.d.ts.map +1 -0
  23. package/dist/vtexClient.js +242 -0
  24. package/dist/vtexClient.js.map +1 -0
  25. package/package.json +16 -57
  26. package/src/index.ts +11 -29
  27. package/src/utils/constants.ts +2 -56
  28. package/src/utils/cookieSanitizer.ts +59 -59
  29. package/src/utils/operationRouter.ts +75 -65
  30. package/src/utils/types.ts +709 -1557
  31. package/src/vtexClient.ts +358 -347
  32. package/src/README.md +0 -6
  33. package/src/__conformance__/upstream.test.ts +0 -158
  34. package/src/__tests__/client-segment-cookie.test.ts +0 -255
  35. package/src/__tests__/client-set-cookie-forward.test.ts +0 -257
  36. package/src/__tests__/schemas.test.ts +0 -71
  37. package/src/actions/address.ts +0 -250
  38. package/src/actions/analytics/sendEvent.ts +0 -86
  39. package/src/actions/auth.ts +0 -333
  40. package/src/actions/checkout.ts +0 -659
  41. package/src/actions/index.ts +0 -11
  42. package/src/actions/masterData.ts +0 -168
  43. package/src/actions/misc.ts +0 -188
  44. package/src/actions/newsletter.ts +0 -105
  45. package/src/actions/orders.ts +0 -34
  46. package/src/actions/profile.ts +0 -201
  47. package/src/actions/session.ts +0 -85
  48. package/src/actions/trigger.ts +0 -43
  49. package/src/actions/wishlist.ts +0 -114
  50. package/src/client.ts +0 -724
  51. package/src/commerceLoaders.ts +0 -267
  52. package/src/hooks/__tests__/createCart.render.test.ts +0 -114
  53. package/src/hooks/__tests__/createCart.test.ts +0 -92
  54. package/src/hooks/__tests__/createUseCart.test.ts +0 -184
  55. package/src/hooks/__tests__/createUseUser.test.ts +0 -48
  56. package/src/hooks/__tests__/createUseWishlist.test.ts +0 -87
  57. package/src/hooks/cartQuery.ts +0 -204
  58. package/src/hooks/createCart.ts +0 -427
  59. package/src/hooks/createUseCart.ts +0 -360
  60. package/src/hooks/createUseUser.ts +0 -153
  61. package/src/hooks/createUseWishlist.ts +0 -242
  62. package/src/hooks/index.ts +0 -25
  63. package/src/hooks/useAutocomplete.ts +0 -83
  64. package/src/hooks/useCart.ts +0 -243
  65. package/src/hooks/useUser.ts +0 -78
  66. package/src/hooks/useWishlist.ts +0 -119
  67. package/src/invoke.ts +0 -235
  68. package/src/loaders/ProductDetailsPage.ts +0 -1
  69. package/src/loaders/ProductList.ts +0 -1
  70. package/src/loaders/ProductListingPage.ts +0 -1
  71. package/src/loaders/__tests__/legacyProductList.test.ts +0 -157
  72. package/src/loaders/address.ts +0 -115
  73. package/src/loaders/autocomplete.ts +0 -56
  74. package/src/loaders/brands.ts +0 -44
  75. package/src/loaders/cart/attachments.ts +0 -53
  76. package/src/loaders/cart/full.ts +0 -67
  77. package/src/loaders/cart/gifts.ts +0 -43
  78. package/src/loaders/cart/orderFormId.ts +0 -31
  79. package/src/loaders/cart/shipping.test.ts +0 -125
  80. package/src/loaders/cart/shipping.ts +0 -136
  81. package/src/loaders/cart/summary.ts +0 -36
  82. package/src/loaders/cart.ts +0 -52
  83. package/src/loaders/catalog.ts +0 -163
  84. package/src/loaders/collections.ts +0 -55
  85. package/src/loaders/index.ts +0 -20
  86. package/src/loaders/intelligentSearch/__tests__/productListingPage.test.ts +0 -51
  87. package/src/loaders/intelligentSearch/productDetailsPage.ts +0 -111
  88. package/src/loaders/intelligentSearch/productList.ts +0 -170
  89. package/src/loaders/intelligentSearch/productListingPage.ts +0 -525
  90. package/src/loaders/intelligentSearch/suggestions.ts +0 -44
  91. package/src/loaders/legacy/productDetailsPage.ts +0 -1
  92. package/src/loaders/legacy/productList.ts +0 -1
  93. package/src/loaders/legacy/relatedProductsLoader.ts +0 -79
  94. package/src/loaders/legacy.ts +0 -710
  95. package/src/loaders/logistics.ts +0 -111
  96. package/src/loaders/minicart.ts +0 -78
  97. package/src/loaders/navbar.ts +0 -26
  98. package/src/loaders/orders.ts +0 -92
  99. package/src/loaders/pageType.ts +0 -68
  100. package/src/loaders/paths/PDPDefaultPath.ts +0 -51
  101. package/src/loaders/payment.ts +0 -97
  102. package/src/loaders/productListFull.ts +0 -157
  103. package/src/loaders/profile.ts +0 -138
  104. package/src/loaders/promotion.ts +0 -30
  105. package/src/loaders/search.ts +0 -124
  106. package/src/loaders/session.ts +0 -83
  107. package/src/loaders/user.ts +0 -87
  108. package/src/loaders/wishlist.ts +0 -89
  109. package/src/loaders/wishlistProducts.ts +0 -69
  110. package/src/loaders/workflow/products.ts +0 -62
  111. package/src/loaders/workflow.ts +0 -316
  112. package/src/logo.png +0 -0
  113. package/src/manifest.gen.ts +0 -89
  114. package/src/middleware.cacheHeaders.test.ts +0 -44
  115. package/src/middleware.ts +0 -240
  116. package/src/mod.ts +0 -173
  117. package/src/registry.ts +0 -9
  118. package/src/schemas.gen.ts +0 -3191
  119. package/src/schemas.ts +0 -30
  120. package/src/types.ts +0 -248
  121. package/src/utils/__tests__/cartProjection.test.ts +0 -118
  122. package/src/utils/__tests__/cookieSanitizer.test.ts +0 -162
  123. package/src/utils/__tests__/fetch.test.ts +0 -80
  124. package/src/utils/__tests__/fetchCache.test.ts +0 -155
  125. package/src/utils/__tests__/instrumentedFetch.test.ts +0 -158
  126. package/src/utils/__tests__/intelligentSearch.test.ts +0 -88
  127. package/src/utils/__tests__/minicart.test.ts +0 -184
  128. package/src/utils/__tests__/operationRouter.test.ts +0 -227
  129. package/src/utils/__tests__/resilience.test.ts +0 -205
  130. package/src/utils/__tests__/resourceRange.test.ts +0 -32
  131. package/src/utils/__tests__/simulationCache.test.ts +0 -40
  132. package/src/utils/__tests__/sitemap.test.ts +0 -185
  133. package/src/utils/__tests__/slugify.test.ts +0 -31
  134. package/src/utils/__tests__/storefrontBaseUrl.test.ts +0 -61
  135. package/src/utils/__tests__/transform.test.ts +0 -1111
  136. package/src/utils/accountLoaders.ts +0 -203
  137. package/src/utils/authHelpers.ts +0 -85
  138. package/src/utils/batch.ts +0 -18
  139. package/src/utils/buildOfferShelf.test.ts +0 -59
  140. package/src/utils/cartProjection.ts +0 -96
  141. package/src/utils/cookies.ts +0 -167
  142. package/src/utils/enrichment.ts +0 -556
  143. package/src/utils/fetch.ts +0 -111
  144. package/src/utils/fetchCache.ts +0 -55
  145. package/src/utils/index.ts +0 -19
  146. package/src/utils/instrumentedFetch.ts +0 -98
  147. package/src/utils/intelligentSearch.ts +0 -96
  148. package/src/utils/legacy.ts +0 -139
  149. package/src/utils/minicart.ts +0 -139
  150. package/src/utils/pickAndOmit.ts +0 -25
  151. package/src/utils/proxy.ts +0 -495
  152. package/src/utils/resilience.ts +0 -352
  153. package/src/utils/resourceRange.ts +0 -10
  154. package/src/utils/segment.ts +0 -152
  155. package/src/utils/similars.ts +0 -35
  156. package/src/utils/simulationCache.ts +0 -73
  157. package/src/utils/sitemap.ts +0 -283
  158. package/src/utils/slugCache.ts +0 -28
  159. package/src/utils/slugify.ts +0 -13
  160. package/src/utils/transform.ts +0 -1691
  161. package/src/utils/vtexId.ts +0 -151
  162. package/src/vtexClient.test.ts +0 -204
  163. package/tsconfig.json +0 -7
package/src/mod.ts DELETED
@@ -1,173 +0,0 @@
1
- /**
2
- * VTEX app module — standard autoconfig contract.
3
- *
4
- * Exports `configure` following the AppModContract pattern.
5
- * The framework's `autoconfigApps()` calls these generically.
6
- *
7
- * @example
8
- * ```ts
9
- * import * as vtexApp from "@decocms/apps/vtex/mod";
10
- *
11
- * const app = await vtexApp.configure(blocks.vtex, resolveSecret);
12
- * if (app) {
13
- * // app.manifest, app.state, app.middleware are available
14
- * }
15
- * ```
16
- */
17
-
18
- import type { AppDefinition, AppMiddleware, ResolveSecretFn } from "@decocms/apps-commerce/app-types";
19
- import type { Secret } from "@decocms/apps-website/mod";
20
- import { configureVtex, type VtexConfig } from "./client";
21
- import manifest from "./manifest.gen";
22
- import { extractVtexContext, propagateISCookies, vtexCacheControl } from "./middleware";
23
- import { registerVtexSchemas } from "./schemas";
24
-
25
- // -------------------------------------------------------------------------
26
- // CMS Props (mirrors deco-cx/apps/vtex/mod.ts)
27
- // -------------------------------------------------------------------------
28
-
29
- /** @title VTEX */
30
- export interface Props {
31
- /**
32
- * @description VTEX Account name
33
- */
34
- account: string;
35
-
36
- /**
37
- * @title Public store URL
38
- * @description Domain registered on License Manager (e.g. secure.mystore.com.br)
39
- */
40
- publicUrl: string;
41
-
42
- /** @title App Key */
43
- appKey?: Secret;
44
-
45
- /**
46
- * @title App Token
47
- * @format password
48
- */
49
- appToken?: Secret;
50
-
51
- /**
52
- * @title Default Sales Channel
53
- * @deprecated
54
- */
55
- salesChannel?: string;
56
-
57
- /**
58
- * @title Set Refresh Token
59
- * @default false
60
- */
61
- setRefreshToken?: boolean;
62
-
63
- defaultSegment?: Record<string, unknown>;
64
-
65
- usePortalSitemap?: boolean;
66
-
67
- /**
68
- * @hide true
69
- * @default vtex
70
- */
71
- platform?: "vtex";
72
-
73
- advancedConfigs?: {
74
- doNotFetchVariantsForRelatedProducts?: boolean;
75
- removeUTMFromCacheKey?: boolean;
76
- };
77
-
78
- /** @title Cached Search Terms */
79
- cachedSearchTerms?: {
80
- terms?: unknown;
81
- extraTerms?: string[];
82
- };
83
- }
84
-
85
- export type { Secret };
86
-
87
- // -------------------------------------------------------------------------
88
- // State
89
- // -------------------------------------------------------------------------
90
-
91
- export interface VtexState {
92
- config: VtexConfig;
93
- }
94
-
95
- // -------------------------------------------------------------------------
96
- // Middleware
97
- // -------------------------------------------------------------------------
98
-
99
- export const vtexMiddleware: AppMiddleware = async (request, next) => {
100
- const ctx = extractVtexContext(request);
101
- const response = await next();
102
-
103
- // This middleware wraps the framework's whole edge-cache layer, so it is the
104
- // LAST writer of Cache-Control — including on a cache HIT. It used to
105
- // overwrite unconditionally, which downgraded a home page the cache layer had
106
- // resolved as `s-maxage=900` to vtexCacheControl's generic `s-maxage=60`.
107
- //
108
- // Now it only speaks up for the case it actually knows better about: a
109
- // personalized request, which must not be cached anywhere. And when it does,
110
- // it clears CDN-Cache-Control too — otherwise a response can go out as
111
- // `Cache-Control: private, no-store` alongside `CDN-Cache-Control: public,
112
- // max-age=300`, and Cloudflare gives the CDN header precedence. Same pairing
113
- // the worker's own bypasses use, and utils/proxy.ts's hardenProxyCacheHeaders.
114
- if (ctx.isLoggedIn || ctx.hasCustomPricing) {
115
- response.headers.set("Cache-Control", vtexCacheControl(ctx));
116
- response.headers.delete("CDN-Cache-Control");
117
- }
118
-
119
- propagateISCookies(ctx, response);
120
- return response;
121
- };
122
-
123
- // -------------------------------------------------------------------------
124
- // Configure
125
- // -------------------------------------------------------------------------
126
-
127
- /**
128
- * Configure the VTEX app from CMS block data.
129
- * Returns an AppDefinition or null if required fields are missing.
130
- */
131
- export async function configure(
132
- // biome-ignore lint/suspicious/noExplicitAny: block data comes from CMS with no fixed schema
133
- block: any,
134
- resolveSecret: ResolveSecretFn,
135
- ): Promise<AppDefinition<VtexState> | null> {
136
- if (!block?.account) return null;
137
-
138
- // Real props schemas for the admin meta — must be in place before
139
- // setupApps() auto-registers the __resolveType-only stubs.
140
- registerVtexSchemas();
141
-
142
- const appKey = await resolveSecret(block.appKey, "VTEX_APP_KEY");
143
- const appToken = await resolveSecret(block.appToken, "VTEX_APP_TOKEN");
144
-
145
- const config: VtexConfig = {
146
- account: block.account,
147
- publicUrl: block.publicUrl,
148
- salesChannel: block.salesChannel || "1",
149
- locale: block.locale || block.defaultLocale,
150
- appKey: appKey ?? undefined,
151
- appToken: appToken ?? undefined,
152
- country: block.country,
153
- domain: block.domain,
154
- };
155
-
156
- // Bridge: maintain global singleton for backward compat
157
- configureVtex(config);
158
-
159
- return {
160
- name: "vtex",
161
- manifest,
162
- state: { config },
163
- middleware: vtexMiddleware,
164
- };
165
- }
166
-
167
- /** Placeholder preview for CMS editor — evolves when admin supports it. */
168
- export const preview = undefined;
169
-
170
- /** Default export for schema generation and Deno-style app bridges. */
171
- export default function VTEX(_props: Props) {
172
- return { state: _props };
173
- }
package/src/registry.ts DELETED
@@ -1,9 +0,0 @@
1
- import type { AppRegistryEntry } from "@decocms/apps-commerce/registry";
2
-
3
- export const VTEX_REGISTRY_ENTRY: AppRegistryEntry = {
4
- blockKey: "deco-vtex",
5
- module: () => import("./mod"),
6
- displayName: "VTEX",
7
- category: "commerce",
8
- description: "VTEX IO commerce integration",
9
- };