@doswiftly/cli 0.2.5 → 1.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 (33) hide show
  1. package/CHANGELOG.md +899 -0
  2. package/dist/lib/proxy-server.d.ts.map +1 -1
  3. package/dist/lib/proxy-server.js +20 -7
  4. package/dist/lib/proxy-server.js.map +1 -1
  5. package/package.json +4 -2
  6. package/templates/storefront-nextjs-shadcn/app/[locale]/account/addresses/page.tsx +10 -10
  7. package/templates/storefront-nextjs-shadcn/app/[locale]/account/orders/[id]/page.tsx +9 -9
  8. package/templates/storefront-nextjs-shadcn/app/[locale]/account/orders/[id]/tracking/page.tsx +1 -1
  9. package/templates/storefront-nextjs-shadcn/app/[locale]/account/orders/page.tsx +2 -2
  10. package/templates/storefront-nextjs-shadcn/app/[locale]/account/settings/page.tsx +3 -3
  11. package/templates/storefront-nextjs-shadcn/app/[locale]/checkout/page.tsx +41 -41
  12. package/templates/storefront-nextjs-shadcn/app/[locale]/products/[slug]/product-client.tsx +1 -1
  13. package/templates/storefront-nextjs-shadcn/app/api/auth/whoami/route.ts +6 -0
  14. package/templates/storefront-nextjs-shadcn/components/account/address-form.tsx +43 -43
  15. package/templates/storefront-nextjs-shadcn/components/account/address-list.tsx +9 -9
  16. package/templates/storefront-nextjs-shadcn/components/account/customer-info.fragment.graphql +5 -5
  17. package/templates/storefront-nextjs-shadcn/components/account/order-details.tsx +8 -8
  18. package/templates/storefront-nextjs-shadcn/components/account/order-history.tsx +2 -2
  19. package/templates/storefront-nextjs-shadcn/components/account/order-summary.fragment.graphql +15 -13
  20. package/templates/storefront-nextjs-shadcn/components/cart/cart-line.fragment.graphql +6 -6
  21. package/templates/storefront-nextjs-shadcn/components/discount/discount-code-input.tsx +10 -10
  22. package/templates/storefront-nextjs-shadcn/components/gift-card/gift-card-input.tsx +9 -9
  23. package/templates/storefront-nextjs-shadcn/components/order/delivery-estimate.tsx +2 -2
  24. package/templates/storefront-nextjs-shadcn/components/product/product-card.tsx +1 -1
  25. package/templates/storefront-nextjs-shadcn/components/seo/product-json-ld.ts +1 -1
  26. package/templates/storefront-nextjs-shadcn/hooks/use-auth-sync.ts +43 -25
  27. package/templates/storefront-nextjs-shadcn/hooks/use-cart-actions.ts +1 -1
  28. package/templates/storefront-nextjs-shadcn/hooks/use-cart-sync.ts +14 -14
  29. package/templates/storefront-nextjs-shadcn/lib/graphql/hooks.ts +24 -35
  30. package/templates/storefront-nextjs-shadcn/lib/graphql/server.ts +21 -4
  31. package/templates/storefront-nextjs-shadcn/messages/en.json +6 -6
  32. package/templates/storefront-nextjs-shadcn/messages/pl.json +6 -6
  33. package/templates/storefront-nextjs-shadcn/stores/checkout-store.ts +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-server.d.ts","sourceRoot":"","sources":["../../src/lib/proxy-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAkB,MAAM,MAAM,CAAC;AAQrE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+CD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBtE;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,GAAG,EAAE,MAAM,CAAC;gBAEhB,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAMvC;AAoBD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,MAAW,EACxB,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,MAAM,CAAC,CASjB;AAaD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,EAC3C,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBxB;AA+ID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CA2BhG;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,eAAe,EAAE,CAElD"}
1
+ {"version":3,"file":"proxy-server.d.ts","sourceRoot":"","sources":["../../src/lib/proxy-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAkB,MAAM,MAAM,CAAC;AAQrE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+CD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBtE;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,GAAG,EAAE,MAAM,CAAC;gBAEhB,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAMvC;AAqCD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,MAAW,EACxB,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,MAAM,CAAC,CASjB;AAaD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,EAC3C,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBxB;AA+ID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CA2BhG;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,eAAe,EAAE,CAElD"}
@@ -105,21 +105,34 @@ export class PortRangeExhaustedError extends Error {
105
105
  }
106
106
  }
107
107
  /**
108
- * Check whether a specific TCP port is bindable on `host`.
108
+ * Check whether a specific TCP port is bindable on both IPv4 and IPv6.
109
109
  *
110
- * Bind is done explicitly on both IPv4 (0.0.0.0) *and* the supplied host so
111
- * an IPv6-only conflict (as in `EADDRINUSE :::3000`) is detected that was
112
- * the failure mode reported from Windows where Node bound `::` by default.
110
+ * Next.js and most Node.js dev servers call `server.listen(port)` without a
111
+ * host argument Node then binds dual-stack IPv6 (`::`). On Windows that
112
+ * exclusively holds the port, so a single-family probe on `0.0.0.0` would
113
+ * report "free" and the framework would immediately crash with
114
+ * `EADDRINUSE :::<port>`. Require BOTH families free to match what the
115
+ * spawned framework will actually do.
116
+ *
117
+ * Hosts passing an IPv6 address already go through the `::` probe below, so
118
+ * the caller-supplied `host` is only used as the IPv4 target.
113
119
  */
114
120
  function isPortFree(port, host) {
115
- return new Promise((resolve) => {
121
+ const probe = (target) => new Promise((resolve) => {
116
122
  const server = net.createServer();
117
123
  server.unref();
118
- server.once('error', () => resolve(false));
119
- server.listen(port, host, () => {
124
+ server.once('error', (err) => {
125
+ // EADDRNOTAVAIL = address family not available (e.g. IPv6 disabled on
126
+ // the host). Treat as "free" so we don't falsely reject ports on
127
+ // IPv4-only systems. Every other error (EADDRINUSE, EACCES, …) means
128
+ // the port really is busy.
129
+ resolve(err.code === 'EADDRNOTAVAIL');
130
+ });
131
+ server.listen(port, target, () => {
120
132
  server.close(() => resolve(true));
121
133
  });
122
134
  });
135
+ return Promise.all([probe(host), probe('::')]).then(([v4Free, v6Free]) => v4Free && v6Free);
123
136
  }
124
137
  /**
125
138
  * Try `preferred`, then `preferred+1`, `preferred+2`, … up to `maxAttempts`
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-server.js","sourceRoot":"","sources":["../../src/lib/proxy-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy-server.js","sourceRoot":"","sources":["../../src/lib/proxy-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doswiftly/cli",
3
- "version": "0.2.5",
3
+ "version": "1.0.0",
4
4
  "description": "DoSwiftly CLI - Scaffold and deploy e-commerce storefronts",
5
5
  "homepage": "https://doswiftly.pl",
6
6
  "publishConfig": {
@@ -27,7 +27,9 @@
27
27
  "files": [
28
28
  "dist",
29
29
  "bin",
30
- "templates"
30
+ "templates",
31
+ "CHANGELOG.md",
32
+ "README.md"
31
33
  ],
32
34
  "keywords": [
33
35
  "doswiftly",
@@ -34,7 +34,7 @@ export default function AddressesPage() {
34
34
  const t = useTranslations("account");
35
35
  const hydrated = useHydrated();
36
36
  const authHydrated = useAuthHydrated();
37
- const accessToken = useAuthStore((s) => s.accessToken);
37
+ const isAuthenticated = useAuthStore((s) => s.isAuthenticated);
38
38
 
39
39
  const { data: customerData, isPending } = useCustomer();
40
40
 
@@ -84,11 +84,11 @@ export default function AddressesPage() {
84
84
  firstName: addr.firstName || "",
85
85
  lastName: addr.lastName || "",
86
86
  company: addr.company || "",
87
- address1: addr.address1 || "",
88
- address2: addr.address2 || "",
87
+ streetLine1: addr.streetLine1 || "",
88
+ streetLine2: addr.streetLine2 || "",
89
89
  city: addr.city || "",
90
- province: addr.province || "",
91
- zip: addr.zip || "",
90
+ state: addr.state || "",
91
+ postalCode: addr.postalCode || "",
92
92
  country: addr.country || "",
93
93
  phone: addr.phone || "",
94
94
  isDefault: addr.isDefault,
@@ -119,11 +119,11 @@ export default function AddressesPage() {
119
119
  firstName: data.firstName,
120
120
  lastName: data.lastName,
121
121
  company: data.company || null,
122
- address1: data.address1,
123
- address2: data.address2 || null,
122
+ streetLine1: data.streetLine1,
123
+ streetLine2: data.streetLine2 || null,
124
124
  city: data.city,
125
- province: data.province,
126
- zip: data.zip,
125
+ state: data.state,
126
+ postalCode: data.postalCode,
127
127
  country: data.country,
128
128
  phone: data.phone || null,
129
129
  };
@@ -159,7 +159,7 @@ export default function AddressesPage() {
159
159
  );
160
160
  }
161
161
 
162
- if (!accessToken) {
162
+ if (!isAuthenticated) {
163
163
  return (
164
164
  <div className="container mx-auto px-4 py-8">
165
165
  <Breadcrumbs className="mb-6" />
@@ -78,20 +78,20 @@ export default function OrderDetailPage() {
78
78
  date: new Date(order.processedAt).toLocaleDateString(),
79
79
  status: mapFulfillmentStatus(order.fulfillmentStatus),
80
80
  items: [],
81
- subtotal: order.subtotalPrice?.amount || "0",
82
- shipping: order.totalShipping?.amount || "0",
83
- tax: order.totalTax?.amount || "0",
84
- total: order.totalPrice.amount,
85
- currency: order.totalPrice.currencyCode,
81
+ subtotal: order.totals.subtotal?.amount || "0",
82
+ shipping: order.totals.totalShipping?.amount || "0",
83
+ tax: order.totals.totalTax?.amount || "0",
84
+ total: order.totals.total.amount,
85
+ currency: order.totals.total.currencyCode,
86
86
  shippingAddress: order.shippingAddress
87
87
  ? {
88
88
  firstName: order.shippingAddress.firstName || "",
89
89
  lastName: order.shippingAddress.lastName || "",
90
- address1: order.shippingAddress.address1 || "",
91
- address2: order.shippingAddress.address2 || "",
90
+ streetLine1: order.shippingAddress.streetLine1 || "",
91
+ streetLine2: order.shippingAddress.streetLine2 || "",
92
92
  city: order.shippingAddress.city || "",
93
- province: order.shippingAddress.province || "",
94
- zip: order.shippingAddress.zip || "",
93
+ state: order.shippingAddress.state || "",
94
+ postalCode: order.shippingAddress.postalCode || "",
95
95
  country: order.shippingAddress.country || "",
96
96
  phone: order.shippingAddress.phone || "",
97
97
  }
@@ -35,7 +35,7 @@ export default function OrderTrackingPage() {
35
35
  lastUpdate: "2024-01-18T14:30:00Z",
36
36
  deliveryAddress: {
37
37
  city: "Warsaw",
38
- province: "Mazowieckie",
38
+ state: "Mazowieckie",
39
39
  country: "Poland",
40
40
  },
41
41
  };
@@ -13,7 +13,7 @@ export default function OrdersPage() {
13
13
  const t = useTranslations("account");
14
14
  const hydrated = useHydrated();
15
15
  const authHydrated = useAuthHydrated();
16
- const accessToken = useAuthStore((s) => s.accessToken);
16
+ const isAuthenticated = useAuthStore((s) => s.isAuthenticated);
17
17
 
18
18
  const { data, isPending, error } = useCustomer();
19
19
 
@@ -53,7 +53,7 @@ export default function OrdersPage() {
53
53
  );
54
54
  }
55
55
 
56
- if (!accessToken) {
56
+ if (!isAuthenticated) {
57
57
  return (
58
58
  <div className="container mx-auto px-4 py-8">
59
59
  <Breadcrumbs className="mb-6" />
@@ -15,7 +15,7 @@ import { Skeleton } from "@/components/ui/skeleton";
15
15
  export default function SettingsPage() {
16
16
  const hydrated = useHydrated();
17
17
  const authHydrated = useAuthHydrated();
18
- const accessToken = useAuthStore((s) => s.accessToken);
18
+ const isAuthenticated = useAuthStore((s) => s.isAuthenticated);
19
19
  const updateAuthStore = useAuthStore((s) => s.updateCustomer);
20
20
 
21
21
  const [firstName, setFirstName] = useState("");
@@ -58,7 +58,7 @@ export default function SettingsPage() {
58
58
 
59
59
  const handleSave = (e: React.FormEvent) => {
60
60
  e.preventDefault();
61
- if (!accessToken) return;
61
+ if (!isAuthenticated) return;
62
62
  updateMutation.mutate({
63
63
  firstName: firstName || undefined,
64
64
  lastName: lastName || undefined,
@@ -92,7 +92,7 @@ export default function SettingsPage() {
92
92
  );
93
93
  }
94
94
 
95
- if (!accessToken) {
95
+ if (!isAuthenticated) {
96
96
  return (
97
97
  <div className="container mx-auto px-4 py-8">
98
98
  <Breadcrumbs className="mb-6" />
@@ -81,11 +81,11 @@ interface ShippingRate {
81
81
  interface AddressForm {
82
82
  firstName: string;
83
83
  lastName: string;
84
- address1: string;
85
- address2: string;
84
+ streetLine1: string;
85
+ streetLine2: string;
86
86
  city: string;
87
- province: string;
88
- zip: string;
87
+ state: string;
88
+ postalCode: string;
89
89
  country: string;
90
90
  phone: string;
91
91
  company: string;
@@ -109,11 +109,11 @@ interface CheckoutFormState {
109
109
  const emptyAddress: AddressForm = {
110
110
  firstName: "",
111
111
  lastName: "",
112
- address1: "",
113
- address2: "",
112
+ streetLine1: "",
113
+ streetLine2: "",
114
114
  city: "",
115
- province: "",
116
- zip: "",
115
+ state: "",
116
+ postalCode: "",
117
117
  country: "PL",
118
118
  phone: "",
119
119
  company: "",
@@ -179,12 +179,12 @@ function AddressFormFields({ prefix, values, onChange, errors }: AddressFormFiel
179
179
  </div>
180
180
 
181
181
  <div>
182
- <Label htmlFor={`${prefix}_address1`}>{t("address.address1")} *</Label>
182
+ <Label htmlFor={`${prefix}_address1`}>{t("address.streetLine1")} *</Label>
183
183
  <Input
184
184
  id={`${prefix}_address1`}
185
- placeholder={t("address.address1Placeholder")}
186
- value={values.address1}
187
- onChange={(e) => onChange("address1", e.target.value)}
185
+ placeholder={t("address.streetLine1Placeholder")}
186
+ value={values.streetLine1}
187
+ onChange={(e) => onChange("streetLine1", e.target.value)}
188
188
  className={errors[`${prefix}_address1`] ? "border-destructive" : ""}
189
189
  />
190
190
  {errors[`${prefix}_address1`] && (
@@ -193,22 +193,22 @@ function AddressFormFields({ prefix, values, onChange, errors }: AddressFormFiel
193
193
  </div>
194
194
 
195
195
  <div>
196
- <Label htmlFor={`${prefix}_address2`}>{t("address.address2")} ({tc("optional")})</Label>
196
+ <Label htmlFor={`${prefix}_address2`}>{t("address.streetLine2")} ({tc("optional")})</Label>
197
197
  <Input
198
198
  id={`${prefix}_address2`}
199
- value={values.address2}
200
- onChange={(e) => onChange("address2", e.target.value)}
199
+ value={values.streetLine2}
200
+ onChange={(e) => onChange("streetLine2", e.target.value)}
201
201
  />
202
202
  </div>
203
203
 
204
204
  <div className="grid gap-4 sm:grid-cols-2">
205
205
  <div>
206
- <Label htmlFor={`${prefix}_zip`}>{t("address.zip")} *</Label>
206
+ <Label htmlFor={`${prefix}_zip`}>{t("address.postalCode")} *</Label>
207
207
  <Input
208
208
  id={`${prefix}_zip`}
209
- placeholder={t("address.zipPlaceholder")}
210
- value={values.zip}
211
- onChange={(e) => onChange("zip", e.target.value)}
209
+ placeholder={t("address.postalCodePlaceholder")}
210
+ value={values.postalCode}
211
+ onChange={(e) => onChange("postalCode", e.target.value)}
212
212
  className={errors[`${prefix}_zip`] ? "border-destructive" : ""}
213
213
  />
214
214
  {errors[`${prefix}_zip`] && (
@@ -249,11 +249,11 @@ function AddressFormFields({ prefix, values, onChange, errors }: AddressFormFiel
249
249
  )}
250
250
  </div>
251
251
  <div>
252
- <Label htmlFor={`${prefix}_province`}>{t("address.province")} ({tc("optional")})</Label>
252
+ <Label htmlFor={`${prefix}_province`}>{t("address.state")} ({tc("optional")})</Label>
253
253
  <Input
254
254
  id={`${prefix}_province`}
255
- value={values.province}
256
- onChange={(e) => onChange("province", e.target.value)}
255
+ value={values.state}
256
+ onChange={(e) => onChange("state", e.target.value)}
257
257
  />
258
258
  </div>
259
259
  </div>
@@ -290,11 +290,11 @@ export default function CheckoutPage() {
290
290
  const addressSchema = z.object({
291
291
  firstName: z.string().min(1, t("validation.firstNameRequired")),
292
292
  lastName: z.string().min(1, t("validation.lastNameRequired")),
293
- address1: z.string().min(1, t("validation.addressRequired")),
294
- address2: z.string().optional(),
293
+ streetLine1: z.string().min(1, t("validation.addressRequired")),
294
+ streetLine2: z.string().optional(),
295
295
  city: z.string().min(1, t("validation.cityRequired")),
296
- province: z.string().optional(),
297
- zip: z.string().min(1, t("validation.zipRequired")),
296
+ state: z.string().optional(),
297
+ postalCode: z.string().min(1, t("validation.zipRequired")),
298
298
  country: z.string().min(2, t("validation.countryRequired")),
299
299
  phone: z.string().optional(),
300
300
  company: z.string().optional(),
@@ -359,7 +359,7 @@ export default function CheckoutPage() {
359
359
  // Sync discount codes from checkout (transferred from cart) to form state
360
360
  useEffect(() => {
361
361
  if ((checkout?.discountCodes?.length ?? 0) > 0 && !formState.appliedDiscountCode) {
362
- const applicableCode = checkout?.discountCodes?.find((dc) => dc.applicable);
362
+ const applicableCode = checkout?.discountCodes?.find((dc) => dc.isApplicable);
363
363
  if (applicableCode) {
364
364
  setFormState((prev) => ({
365
365
  ...prev,
@@ -1409,15 +1409,15 @@ export default function CheckoutPage() {
1409
1409
  <p className="text-sm text-muted-foreground">
1410
1410
  {checkout.shippingAddress.firstName} {checkout.shippingAddress.lastName}
1411
1411
  <br />
1412
- {checkout.shippingAddress.address1}
1413
- {checkout.shippingAddress.address2 && (
1412
+ {checkout.shippingAddress.streetLine1}
1413
+ {checkout.shippingAddress.streetLine2 && (
1414
1414
  <>
1415
1415
  <br />
1416
- {checkout.shippingAddress.address2}
1416
+ {checkout.shippingAddress.streetLine2}
1417
1417
  </>
1418
1418
  )}
1419
1419
  <br />
1420
- {checkout.shippingAddress.zip} {checkout.shippingAddress.city}
1420
+ {checkout.shippingAddress.postalCode} {checkout.shippingAddress.city}
1421
1421
  <br />
1422
1422
  {countries.find((c) => c.code === checkout.shippingAddress?.country)?.name ||
1423
1423
  checkout.shippingAddress.country}
@@ -1574,7 +1574,7 @@ export default function CheckoutPage() {
1574
1574
  )}
1575
1575
  </div>
1576
1576
  <p className="font-medium">
1577
- {formatPrice(item.totalPrice.amount)}
1577
+ {formatPrice(item.total.amount)}
1578
1578
  </p>
1579
1579
  </div>
1580
1580
  ))
@@ -1740,7 +1740,7 @@ export default function CheckoutPage() {
1740
1740
  <span className="text-muted-foreground">{tCart("products")}</span>
1741
1741
  <span>
1742
1742
  {formatPrice(
1743
- checkout?.subtotalPrice?.amount ||
1743
+ checkout?.cost?.subtotal?.amount ||
1744
1744
  items.reduce(
1745
1745
  (sum, item) => sum + parseFloat(item.price.amount) * item.quantity,
1746
1746
  0
@@ -1753,7 +1753,7 @@ export default function CheckoutPage() {
1753
1753
  {checkout?.shippingLine ? (
1754
1754
  <div className="flex justify-between text-sm">
1755
1755
  <span className="text-muted-foreground">{tCart("shipping")}</span>
1756
- <span>{formatPrice(checkout.totalShippingPrice?.amount || "0")}</span>
1756
+ <span>{formatPrice(checkout?.cost?.totalShipping?.amount || "0")}</span>
1757
1757
  </div>
1758
1758
  ) : (
1759
1759
  <div className="flex justify-between text-sm">
@@ -1763,18 +1763,18 @@ export default function CheckoutPage() {
1763
1763
  )}
1764
1764
 
1765
1765
  {/* Discount */}
1766
- {checkout?.totalDiscounts && parseFloat(checkout.totalDiscounts.amount) > 0 && (
1766
+ {checkout?.totalDiscounts && parseFloat(checkout?.cost?.totalDiscounts.amount) > 0 && (
1767
1767
  <div className="flex justify-between text-sm text-green-600">
1768
1768
  <span>{tCart("discount")}</span>
1769
- <span>-{formatPrice(checkout.totalDiscounts.amount)}</span>
1769
+ <span>-{formatPrice(checkout?.cost?.totalDiscounts.amount)}</span>
1770
1770
  </div>
1771
1771
  )}
1772
1772
 
1773
1773
  {/* Tax */}
1774
- {checkout?.totalTax && parseFloat(checkout.totalTax.amount) > 0 && (
1774
+ {checkout?.totalTax && parseFloat(checkout?.cost?.totalTax.amount) > 0 && (
1775
1775
  <div className="flex justify-between text-sm">
1776
1776
  <span className="text-muted-foreground">{tCart("tax")}</span>
1777
- <span>{formatPrice(checkout.totalTax.amount)}</span>
1777
+ <span>{formatPrice(checkout?.cost?.totalTax.amount)}</span>
1778
1778
  </div>
1779
1779
  )}
1780
1780
 
@@ -1791,7 +1791,7 @@ export default function CheckoutPage() {
1791
1791
  <span>{tCart("total")}</span>
1792
1792
  <span>
1793
1793
  {formatPrice(
1794
- checkout?.totalPrice?.amount ||
1794
+ checkout?.cost?.total?.amount ||
1795
1795
  items.reduce(
1796
1796
  (sum, item) => sum + parseFloat(item.price.amount) * item.quantity,
1797
1797
  0
@@ -1802,8 +1802,8 @@ export default function CheckoutPage() {
1802
1802
 
1803
1803
  {/* Payment Due (if different from total due to gift cards) */}
1804
1804
  {checkout?.paymentDue &&
1805
- checkout?.totalPrice &&
1806
- parseFloat(checkout.paymentDue.amount) !== parseFloat(checkout.totalPrice.amount) && (
1805
+ checkout?.cost?.total &&
1806
+ parseFloat(checkout.paymentDue.amount) !== parseFloat(checkout.cost.total.amount) && (
1807
1807
  <div className="flex justify-between border-t pt-2 text-lg font-bold text-primary">
1808
1808
  <span>{tCart("paymentDue")}</span>
1809
1809
  <span>{formatPrice(checkout.paymentDue.amount)}</span>
@@ -129,7 +129,7 @@ export function ProductClient({ product: initialProduct, similarProducts = [] }:
129
129
  [showConfigValidation],
130
130
  );
131
131
 
132
- // Live surcharge preview — doliczane do ceny wariantu na przycisku (jak Shopify Dynamic Checkout).
132
+ // Live surcharge preview — doliczane do ceny wariantu na przycisku (industry-standard dynamic checkout).
133
133
  const surcharge = useMemo(
134
134
  () => computeConfiguratorSurcharge(configuratorAttributes, configuratorSelections),
135
135
  [configuratorAttributes, configuratorSelections],
@@ -0,0 +1,6 @@
1
+ import { createWhoamiHandler } from '@doswiftly/storefront-sdk';
2
+
3
+ export const GET = createWhoamiHandler({
4
+ apiUrl: process.env.NEXT_PUBLIC_API_URL,
5
+ shopSlug: process.env.NEXT_PUBLIC_SHOP_SLUG,
6
+ });