medusa-storefront-data 1.0.0 → 2.0.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 (109) hide show
  1. package/dist/cookies.d.ts +2 -2
  2. package/dist/cookies.d.ts.map +1 -1
  3. package/dist/edge.d.ts +3 -0
  4. package/dist/edge.d.ts.map +1 -0
  5. package/dist/edge.js +1 -0
  6. package/dist/middleware.d.ts +3 -0
  7. package/dist/middleware.d.ts.map +1 -0
  8. package/dist/middleware.js +1 -0
  9. package/dist/server/cart.d.ts +9 -5
  10. package/dist/server/cart.d.ts.map +1 -1
  11. package/dist/server/cart.js +164 -194
  12. package/dist/server/categories.d.ts +3 -2
  13. package/dist/server/categories.d.ts.map +1 -1
  14. package/dist/server/categories.js +14 -51
  15. package/dist/server/collections.d.ts.map +1 -1
  16. package/dist/server/collections.js +16 -61
  17. package/dist/server/contact.d.ts +34 -0
  18. package/dist/server/contact.d.ts.map +1 -0
  19. package/dist/server/contact.js +57 -0
  20. package/dist/server/customer.d.ts +7 -7
  21. package/dist/server/customer.d.ts.map +1 -1
  22. package/dist/server/customer.js +95 -145
  23. package/dist/server/dynamic-config.d.ts.map +1 -1
  24. package/dist/server/dynamic-config.js +5 -2
  25. package/dist/server/fulfillment.d.ts +4 -3
  26. package/dist/server/fulfillment.d.ts.map +1 -1
  27. package/dist/server/fulfillment.js +16 -41
  28. package/dist/server/guest.d.ts +35 -63
  29. package/dist/server/guest.d.ts.map +1 -1
  30. package/dist/server/guest.js +81 -202
  31. package/dist/server/home.d.ts +15 -0
  32. package/dist/server/home.d.ts.map +1 -0
  33. package/dist/server/home.js +45 -0
  34. package/dist/server/index.d.ts +2 -0
  35. package/dist/server/index.d.ts.map +1 -1
  36. package/dist/server/index.js +2 -0
  37. package/dist/server/locale-actions.d.ts +1 -1
  38. package/dist/server/locale-actions.d.ts.map +1 -1
  39. package/dist/server/locale-actions.js +8 -13
  40. package/dist/server/locales.d.ts +2 -4
  41. package/dist/server/locales.d.ts.map +1 -1
  42. package/dist/server/locales.js +5 -13
  43. package/dist/server/orders.d.ts +5 -11
  44. package/dist/server/orders.d.ts.map +1 -1
  45. package/dist/server/orders.js +126 -267
  46. package/dist/server/payment-details.d.ts +4 -4
  47. package/dist/server/payment-details.d.ts.map +1 -1
  48. package/dist/server/payment-details.js +17 -42
  49. package/dist/server/payment.d.ts +2 -1
  50. package/dist/server/payment.d.ts.map +1 -1
  51. package/dist/server/payment.js +9 -21
  52. package/dist/server/pincode.d.ts +7 -0
  53. package/dist/server/pincode.d.ts.map +1 -0
  54. package/dist/server/pincode.js +30 -0
  55. package/dist/server/products.d.ts +15 -19
  56. package/dist/server/products.d.ts.map +1 -1
  57. package/dist/server/products.js +47 -178
  58. package/dist/server/regions.d.ts +1 -1
  59. package/dist/server/regions.d.ts.map +1 -1
  60. package/dist/server/regions.js +6 -3
  61. package/dist/server/returns.d.ts +4 -4
  62. package/dist/server/returns.d.ts.map +1 -1
  63. package/dist/server/returns.js +50 -154
  64. package/dist/server/swaps.d.ts +3 -3
  65. package/dist/server/swaps.d.ts.map +1 -1
  66. package/dist/server/swaps.js +22 -56
  67. package/dist/server/variants.d.ts.map +1 -1
  68. package/dist/server/variants.js +11 -22
  69. package/dist/server/wishlist.d.ts +11 -0
  70. package/dist/server/wishlist.d.ts.map +1 -0
  71. package/dist/server/wishlist.js +49 -0
  72. package/dist/util/get-locale-header.d.ts +1 -1
  73. package/dist/util/revalidate-cart.d.ts +2 -0
  74. package/dist/util/revalidate-cart.d.ts.map +1 -0
  75. package/dist/util/revalidate-cart.js +8 -0
  76. package/dist/util/sort-products.d.ts +3 -0
  77. package/dist/util/sort-products.d.ts.map +1 -0
  78. package/dist/util/sort-products.js +1 -0
  79. package/dist/util/store-client.d.ts +13 -0
  80. package/dist/util/store-client.d.ts.map +1 -0
  81. package/dist/util/store-client.js +77 -0
  82. package/package.json +95 -37
  83. package/src/edge.ts +2 -0
  84. package/src/middleware.ts +2 -2
  85. package/src/server/cart.ts +214 -267
  86. package/src/server/categories.ts +19 -72
  87. package/src/server/collections.ts +25 -82
  88. package/src/server/contact.ts +92 -0
  89. package/src/server/customer.ts +140 -189
  90. package/src/server/dynamic-config.ts +6 -2
  91. package/src/server/fulfillment.ts +27 -53
  92. package/src/server/guest.ts +159 -276
  93. package/src/server/home.ts +68 -0
  94. package/src/server/index.ts +1 -0
  95. package/src/server/locale-actions.ts +8 -15
  96. package/src/server/locales.ts +6 -18
  97. package/src/server/orders.ts +167 -337
  98. package/src/server/payment-details.ts +24 -52
  99. package/src/server/payment.ts +8 -28
  100. package/src/server/pincode.ts +49 -0
  101. package/src/server/products.ts +72 -235
  102. package/src/server/regions.ts +10 -6
  103. package/src/server/returns.ts +75 -189
  104. package/src/server/swaps.ts +90 -121
  105. package/src/server/variants.ts +9 -28
  106. package/src/util/revalidate-cart.ts +10 -0
  107. package/src/util/sort-products.ts +2 -47
  108. package/src/util/store-client.ts +93 -0
  109. package/src/services/middleware.ts +0 -54
@@ -0,0 +1,77 @@
1
+ import { getStoreAuthOptions } from "medusa-services/auth";
2
+ import { getAuthHeaders, getGuestAuthHeaders } from "../cookies";
3
+ import { getLocaleHeader } from "./get-locale-header";
4
+ import { cookies as nextCookies } from "next/headers";
5
+ function getBackendUrl() {
6
+ return (process.env.MEDUSA_BACKEND_URL?.replace(/\/$/, "") ||
7
+ process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL?.replace(/\/$/, "") ||
8
+ "http://localhost:9000");
9
+ }
10
+ function getPublishableApiKey() {
11
+ const key = process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY;
12
+ if (!key) {
13
+ throw new Error("NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY is not configured");
14
+ }
15
+ return key;
16
+ }
17
+ /**
18
+ * Builds portable Medusa store client options from Next.js cookies and env.
19
+ */
20
+ export async function getStoreClientOptions() {
21
+ const auth = await getAuthHeaders();
22
+ const localeHeader = await getLocaleHeader().catch(() => ({}));
23
+ return {
24
+ backendUrl: getBackendUrl(),
25
+ publishableApiKey: getPublishableApiKey(),
26
+ authorization: "authorization" in auth ? auth.authorization : undefined,
27
+ headers: localeHeader["x-medusa-locale"]
28
+ ? { "x-medusa-locale": localeHeader["x-medusa-locale"] }
29
+ : undefined,
30
+ };
31
+ }
32
+ /** @deprecated Use getStoreClientOptions */
33
+ export const getStoreCartClientOptions = getStoreClientOptions;
34
+ export function getMedusaBackendUrl() {
35
+ return getBackendUrl();
36
+ }
37
+ export async function getGuestStoreClientOptions() {
38
+ const guestAuth = await getGuestAuthHeaders();
39
+ let authorization = "authorization" in guestAuth ? guestAuth.authorization : undefined;
40
+ if (!authorization) {
41
+ try {
42
+ const cookieStore = await nextCookies();
43
+ const legacyToken = cookieStore.get("_medusa_guest_token")?.value;
44
+ if (legacyToken) {
45
+ authorization = `Bearer ${legacyToken}`;
46
+ }
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ }
52
+ if (!authorization)
53
+ return null;
54
+ return {
55
+ backendUrl: getBackendUrl(),
56
+ publishableApiKey: getPublishableApiKey(),
57
+ authorization,
58
+ };
59
+ }
60
+ export async function getStoreClientOptionsWithToken(token) {
61
+ return {
62
+ backendUrl: getBackendUrl(),
63
+ publishableApiKey: getPublishableApiKey(),
64
+ authorization: token.startsWith("Bearer ") ? token : `Bearer ${token}`,
65
+ };
66
+ }
67
+ export async function getAuthClientOptions(authorization) {
68
+ if (authorization) {
69
+ return getStoreAuthOptions({
70
+ backendUrl: getBackendUrl(),
71
+ publishableApiKey: getPublishableApiKey(),
72
+ authorization,
73
+ });
74
+ }
75
+ const storeOptions = await getStoreClientOptions();
76
+ return getStoreAuthOptions(storeOptions);
77
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "medusa-storefront-data",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "description": "Medusa storefront server data layer extracted from Next.js storefront",
6
6
  "license": "MIT",
@@ -21,7 +21,13 @@
21
21
  "@medusajs/js-sdk": ">=2",
22
22
  "@medusajs/types": ">=2",
23
23
  "medusa-reviews-logic": "*",
24
- "medusa-wishlist-logic": "*"
24
+ "medusa-wishlist-logic": "*",
25
+ "medusa-services": "^1.1.0"
26
+ },
27
+ "peerDependenciesMeta": {
28
+ "medusa-reviews-logic": {
29
+ "optional": true
30
+ }
25
31
  },
26
32
  "dependencies": {
27
33
  "color": "^5.0.3",
@@ -33,120 +39,172 @@
33
39
  "next": "^15.0.0",
34
40
  "@medusajs/js-sdk": "^2.0.0",
35
41
  "@medusajs/types": "^2.0.0",
36
- "@types/node": "^22.0.0"
42
+ "@types/node": "^22.0.0",
43
+ "medusa-services": "workspace:*"
37
44
  },
38
45
  "exports": {
46
+ "./package.json": "./package.json",
39
47
  ".": {
40
- "types": "./src/server/index.ts",
41
- "import": "./src/server/index.ts"
48
+ "types": "./dist/server/index.d.ts",
49
+ "import": "./src/server/index.ts",
50
+ "default": "./src/server/index.ts"
42
51
  },
43
52
  "./cookies": {
44
53
  "types": "./dist/cookies.d.ts",
45
- "import": "./src/cookies.ts"
54
+ "import": "./src/cookies.ts",
55
+ "default": "./src/cookies.ts"
46
56
  },
47
57
  "./config": {
48
58
  "types": "./dist/config.d.ts",
49
- "import": "./src/config.ts"
59
+ "import": "./src/config.ts",
60
+ "default": "./src/config.ts"
50
61
  },
51
62
  "./locale-header": {
52
63
  "types": "./dist/util/get-locale-header.d.ts",
53
- "import": "./src/util/get-locale-header.ts"
64
+ "import": "./src/util/get-locale-header.ts",
65
+ "default": "./src/util/get-locale-header.ts"
54
66
  },
55
67
  "./medusa-error": {
56
68
  "types": "./dist/util/medusa-error.d.ts",
57
- "import": "./src/util/medusa-error.ts"
69
+ "import": "./src/util/medusa-error.ts",
70
+ "default": "./src/util/medusa-error.ts"
58
71
  },
59
72
  "./sort-products": {
60
73
  "types": "./dist/util/sort-products.d.ts",
61
- "import": "./src/util/sort-products.ts"
74
+ "import": "./src/util/sort-products.ts",
75
+ "default": "./src/util/sort-products.ts"
76
+ },
77
+ "./middleware": {
78
+ "types": "./dist/middleware.d.ts",
79
+ "import": "./src/middleware.ts",
80
+ "default": "./src/middleware.ts"
81
+ },
82
+ "./edge": {
83
+ "types": "./dist/edge.d.ts",
84
+ "import": "./src/edge.ts",
85
+ "default": "./src/edge.ts"
62
86
  },
63
87
  "./cart": {
64
88
  "types": "./dist/server/cart.d.ts",
65
- "import": "./src/server/cart.ts"
89
+ "import": "./src/server/cart.ts",
90
+ "default": "./src/server/cart.ts"
66
91
  },
67
92
  "./categories": {
68
93
  "types": "./dist/server/categories.d.ts",
69
- "import": "./src/server/categories.ts"
94
+ "import": "./src/server/categories.ts",
95
+ "default": "./src/server/categories.ts"
70
96
  },
71
97
  "./collections": {
72
98
  "types": "./dist/server/collections.d.ts",
73
- "import": "./src/server/collections.ts"
99
+ "import": "./src/server/collections.ts",
100
+ "default": "./src/server/collections.ts"
101
+ },
102
+ "./contact": {
103
+ "types": "./dist/server/contact.d.ts",
104
+ "import": "./src/server/contact.ts",
105
+ "default": "./src/server/contact.ts"
74
106
  },
75
107
  "./customer": {
76
108
  "types": "./dist/server/customer.d.ts",
77
- "import": "./src/server/customer.ts"
109
+ "import": "./src/server/customer.ts",
110
+ "default": "./src/server/customer.ts"
78
111
  },
79
112
  "./customer-registration": {
80
113
  "types": "./dist/server/customer-registration.d.ts",
81
- "import": "./src/server/customer-registration.ts"
114
+ "import": "./src/server/customer-registration.ts",
115
+ "default": "./src/server/customer-registration.ts"
82
116
  },
83
117
  "./dynamic-config": {
84
118
  "types": "./dist/server/dynamic-config.d.ts",
85
- "import": "./src/server/dynamic-config.ts"
119
+ "import": "./src/server/dynamic-config.ts",
120
+ "default": "./src/server/dynamic-config.ts"
86
121
  },
87
122
  "./fulfillment": {
88
123
  "types": "./dist/server/fulfillment.d.ts",
89
- "import": "./src/server/fulfillment.ts"
124
+ "import": "./src/server/fulfillment.ts",
125
+ "default": "./src/server/fulfillment.ts"
90
126
  },
91
127
  "./guest": {
92
128
  "types": "./dist/server/guest.d.ts",
93
- "import": "./src/server/guest.ts"
129
+ "import": "./src/server/guest.ts",
130
+ "default": "./src/server/guest.ts"
131
+ },
132
+ "./home": {
133
+ "types": "./dist/server/home.d.ts",
134
+ "import": "./src/server/home.ts",
135
+ "default": "./src/server/home.ts"
94
136
  },
95
137
  "./locale-actions": {
96
138
  "types": "./dist/server/locale-actions.d.ts",
97
- "import": "./src/server/locale-actions.ts"
139
+ "import": "./src/server/locale-actions.ts",
140
+ "default": "./src/server/locale-actions.ts"
98
141
  },
99
142
  "./locales": {
100
143
  "types": "./dist/server/locales.d.ts",
101
- "import": "./src/server/locales.ts"
144
+ "import": "./src/server/locales.ts",
145
+ "default": "./src/server/locales.ts"
102
146
  },
103
147
  "./notifications": {
104
148
  "types": "./dist/server/notifications.d.ts",
105
- "import": "./src/server/notifications.ts"
149
+ "import": "./src/server/notifications.ts",
150
+ "default": "./src/server/notifications.ts"
106
151
  },
107
152
  "./onboarding": {
108
153
  "types": "./dist/server/onboarding.d.ts",
109
- "import": "./src/server/onboarding.ts"
154
+ "import": "./src/server/onboarding.ts",
155
+ "default": "./src/server/onboarding.ts"
110
156
  },
111
157
  "./orders": {
112
158
  "types": "./dist/server/orders.d.ts",
113
- "import": "./src/server/orders.ts"
159
+ "import": "./src/server/orders.ts",
160
+ "default": "./src/server/orders.ts"
114
161
  },
115
162
  "./payment": {
116
163
  "types": "./dist/server/payment.d.ts",
117
- "import": "./src/server/payment.ts"
164
+ "import": "./src/server/payment.ts",
165
+ "default": "./src/server/payment.ts"
118
166
  },
119
167
  "./payment-details": {
120
168
  "types": "./dist/server/payment-details.d.ts",
121
- "import": "./src/server/payment-details.ts"
169
+ "import": "./src/server/payment-details.ts",
170
+ "default": "./src/server/payment-details.ts"
171
+ },
172
+ "./pincode": {
173
+ "types": "./dist/server/pincode.d.ts",
174
+ "import": "./src/server/pincode.ts",
175
+ "default": "./src/server/pincode.ts"
122
176
  },
123
177
  "./products": {
124
178
  "types": "./dist/server/products.d.ts",
125
- "import": "./src/server/products.ts"
179
+ "import": "./src/server/products.ts",
180
+ "default": "./src/server/products.ts"
126
181
  },
127
182
  "./regions": {
128
183
  "types": "./dist/server/regions.d.ts",
129
- "import": "./src/server/regions.ts"
184
+ "import": "./src/server/regions.ts",
185
+ "default": "./src/server/regions.ts"
130
186
  },
131
187
  "./returns": {
132
188
  "types": "./dist/server/returns.d.ts",
133
- "import": "./src/server/returns.ts"
189
+ "import": "./src/server/returns.ts",
190
+ "default": "./src/server/returns.ts"
134
191
  },
135
192
  "./swaps": {
136
193
  "types": "./dist/server/swaps.d.ts",
137
- "import": "./src/server/swaps.ts"
194
+ "import": "./src/server/swaps.ts",
195
+ "default": "./src/server/swaps.ts"
138
196
  },
139
197
  "./variants": {
140
198
  "types": "./dist/server/variants.d.ts",
141
- "import": "./src/server/variants.ts"
199
+ "import": "./src/server/variants.ts",
200
+ "default": "./src/server/variants.ts"
142
201
  },
143
202
  "./wishlist": {
144
- "types": "./src/server/wishlist.ts",
145
- "import": "./src/server/wishlist.ts"
146
- },
147
- "./middleware": {
148
- "types": "./src/middleware.ts",
149
- "import": "./src/middleware.ts"
203
+ "types": "./dist/server/wishlist.d.ts",
204
+ "import": "./src/server/wishlist.ts",
205
+ "default": "./src/server/wishlist.ts"
150
206
  }
151
- }
207
+ },
208
+ "main": "./dist/server/index.js",
209
+ "types": "./dist/server/index.d.ts"
152
210
  }
package/src/edge.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { medusaListRegions, medusaMergeCarts } from "medusa-services/middleware";
2
+ export type { MedusaMiddlewareClientOptions } from "medusa-services/middleware";
package/src/middleware.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { medusaListRegions, medusaMergeCarts } from "./services/middleware";
2
- export type { MedusaMiddlewareClientOptions } from "./services/middleware";
1
+ export { medusaListRegions, medusaMergeCarts } from "medusa-services/middleware";
2
+ export type { MedusaMiddlewareClientOptions } from "medusa-services/middleware";