@scayle/storefront-nuxt 8.32.0 → 8.33.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # @scayle/storefront-nuxt
2
2
 
3
+ ## 8.33.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependency `@scayle/storefront-core@8.32.0` to `@scayle/storefront-core@workspace:*`
8
+ - Updated dependency `@scayle/unstorage-compression-driver@^1.0.0` to `@scayle/unstorage-compression-driver@workspace:*`
9
+ - Updated dependency `@vueuse/core@13.4.0` to `@vueuse/core@13.5.0`
10
+
11
+ **Dependencies**
12
+
13
+ **@scayle/storefront-core v8.33.0**
14
+
15
+ - Minor
16
+
17
+ - Added test factories for order and all related types.
18
+
19
+ It is now possible to build orders with factory functions for testing purposes.
20
+ This will reduce the amount of boilerplate code needed to create test data.
21
+
22
+ - Patch
23
+ - Updated dependency `@scayle/storefront-api@18.9.0` to `@scayle/storefront-api@workspace:*`
24
+ - Updated dependency `@scayle/unstorage-scayle-kv-driver@1.0.2` to `@scayle/unstorage-scayle-kv-driver@workspace:*`
25
+
26
+ ## 8.32.1
27
+
28
+ ### Patch Changes
29
+
30
+ - Updated dependency `@scayle/storefront-core@8.31.0` to `@scayle/storefront-core@8.32.0`
31
+
32
+ **Dependencies**
33
+
34
+ **@scayle/storefront-core v8.32.1**
35
+
36
+ - No changes in this release.
37
+
3
38
  ## 8.32.0
4
39
 
5
40
  ### Patch Changes
@@ -26,23 +61,23 @@
26
61
  - Added `minReduction` and `maxReduction` filter parameters to `FetchProductsByCategoryParams.where` and `FetchFiltersParams.where` types, and updated the `getProductsByCategory` and `getFilters` RPC methods to accept and handle these new reduction-based filtering conditions.
27
62
 
28
63
  ```ts
29
- const { data } = useRpc("getFilters", "getFiltersKey", () => ({
64
+ const { data } = useRpc('getFilters', 'getFiltersKey', () => ({
30
65
  where: {
31
66
  minReduction: 10,
32
67
  maxReduction: 20,
33
68
  },
34
- }));
69
+ }))
35
70
 
36
71
  const { data } = useRpc(
37
- "getProductsByCategory",
38
- "getProductsByCategoryKey",
72
+ 'getProductsByCategory',
73
+ 'getProductsByCategoryKey',
39
74
  () => ({
40
75
  where: {
41
76
  minReduction: 10,
42
77
  maxReduction: 20,
43
78
  },
44
79
  }),
45
- );
80
+ )
46
81
  ```
47
82
 
48
83
  ## 8.30.3
@@ -94,28 +129,28 @@
94
129
 
95
130
  ```ts
96
131
  export const existingHandlerWithoutParams = async (_context: RpcContext) => {
97
- return "existing handler";
98
- };
132
+ return 'existing handler'
133
+ }
99
134
 
100
135
  export const existingHandlerWithParams = async (
101
136
  { name }: { name: string },
102
137
  _context: RpcContext,
103
138
  ) => {
104
- return name;
105
- };
139
+ return name
140
+ }
106
141
 
107
142
  // will become
108
143
 
109
144
  export const existingHandlerWithoutParams = defineRpcHandler(
110
145
  async (_context: RpcContext) => {
111
- return "existing handler";
146
+ return 'existing handler'
112
147
  },
113
- );
148
+ )
114
149
  export const existingHandlerWithParams = defineRpcHandler(
115
150
  async ({ name }: { name: string }, _context: RpcContext) => {
116
- return name;
151
+ return name
117
152
  },
118
- );
153
+ )
119
154
  ```
120
155
 
121
156
  - Patch
@@ -137,15 +172,15 @@
137
172
  - Added an optional `hideEmptyCategories` parameter to `getCategoryTree`. When enabled, the product count for each category is retrieved, and categories (including their children) without any products are removed. Enabling this option may increase response times, especially for large category trees.
138
173
 
139
174
  ```ts
140
- import { rpcMethods } from "@scayle/storefront-core";
175
+ import { rpcMethods } from '@scayle/storefront-core'
141
176
 
142
- rpcMethods.getCategoryTree({ hideEmptyCategories: true }, rpcContext);
177
+ rpcMethods.getCategoryTree({ hideEmptyCategories: true }, rpcContext)
143
178
  ```
144
179
 
145
180
  or
146
181
 
147
182
  ```ts
148
- import { useCategoryTree } from "#storefront/composables";
183
+ import { useCategoryTree } from '#storefront/composables'
149
184
 
150
185
  const { data: rootCategories, status } = useCategoryTree(
151
186
  {
@@ -153,8 +188,8 @@
153
188
  hideEmptyCategories: true,
154
189
  },
155
190
  },
156
- "category-navigation-tree",
157
- );
191
+ 'category-navigation-tree',
192
+ )
158
193
  ```
159
194
 
160
195
  ## 8.28.7
@@ -251,9 +286,9 @@
251
286
  params: {
252
287
  children: 10,
253
288
  includeHidden: true,
254
- properties: { withName: ["sale"] },
289
+ properties: { withName: ['sale'] },
255
290
  },
256
- });
291
+ })
257
292
  ```
258
293
 
259
294
  ### Patch Changes
@@ -424,16 +459,16 @@
424
459
  nitro: {
425
460
  storage: {
426
461
  redis: {
427
- driver: "redis",
428
- host: "localhost",
462
+ driver: 'redis',
463
+ host: 'localhost',
429
464
  },
430
465
  db: {
431
- driver: "fs",
432
- base: "./.data/db",
466
+ driver: 'fs',
467
+ base: './.data/db',
433
468
  },
434
469
  },
435
470
  },
436
- });
471
+ })
437
472
  ```
438
473
 
439
474
  With the introduction of the new approach for configuring storefront storage mounts, the global and shop-specific `storage` option within the `@scayle/storefront-nuxt` runtime configuration has been deprecated.
@@ -506,9 +541,9 @@
506
541
  ```typescript
507
542
  const idp = useIDP({
508
543
  authUrlParameters: {
509
- theme: "dark",
544
+ theme: 'dark',
510
545
  },
511
- });
546
+ })
512
547
  ```
513
548
 
514
549
  ### Patch Changes
@@ -650,11 +685,11 @@
650
685
  storefront: {
651
686
  redirects: {
652
687
  enabled: true,
653
- strategy: "on-missing",
688
+ strategy: 'on-missing',
654
689
  },
655
690
  },
656
691
  },
657
- });
692
+ })
658
693
  ```
659
694
 
660
695
  Also, keep in mind that when this option is enabled, the redirect logic will only be executed when the request would otherwise result in a 404. There are three ways in which a 404 can occur.
@@ -668,7 +703,7 @@
668
703
  If the request handler returns a `Response` object with a `status` of 404, a 404 response will be returned to the client.
669
704
 
670
705
  ```typescript
671
- return new Response(null, { status: 404 });
706
+ return new Response(null, { status: 404 })
672
707
  ```
673
708
 
674
709
  3. Thrown H3Error with 404 status
@@ -676,8 +711,8 @@
676
711
  If the request handler throws an H3Error with a `statusCode` 404, a 404 response will be returned to the client.
677
712
 
678
713
  ```typescript
679
- import { createError } from "h3";
680
- throw createError({ statusCode: 404 });
714
+ import { createError } from 'h3'
715
+ throw createError({ statusCode: 404 })
681
716
  ```
682
717
 
683
718
  ### Patch Changes
@@ -1119,28 +1154,28 @@
1119
1154
  **rpc-methods.ts**
1120
1155
 
1121
1156
  ```typescript
1122
- import type { RpcContext, RpcHandler } from "@scayle/storefront-nuxt";
1157
+ import type { RpcContext, RpcHandler } from '@scayle/storefront-nuxt'
1123
1158
 
1124
1159
  export const foo: RpcHandler<string, number> = function testing(
1125
1160
  param: string,
1126
1161
  _: RpcContext,
1127
1162
  ) {
1128
- return param.length;
1129
- };
1163
+ return param.length
1164
+ }
1130
1165
  ```
1131
1166
 
1132
1167
  **module.ts**
1133
1168
 
1134
1169
  ```typescript
1135
1170
  function setup() {
1136
- const resolver = createResolver(import.meta.url);
1171
+ const resolver = createResolver(import.meta.url)
1137
1172
 
1138
- nuxt.hook("storefront:custom-rpc:extend", (customRpcImports) => {
1173
+ nuxt.hook('storefront:custom-rpc:extend', (customRpcImports) => {
1139
1174
  customRpcImports.push({
1140
- source: resolver.resolve("./rpc-methods.ts"),
1141
- names: ["foo"],
1142
- });
1143
- });
1175
+ source: resolver.resolve('./rpc-methods.ts'),
1176
+ names: ['foo'],
1177
+ })
1178
+ })
1144
1179
  }
1145
1180
  ```
1146
1181
 
@@ -1362,23 +1397,23 @@
1362
1397
  storefront: {
1363
1398
  // ...
1364
1399
  redis: {
1365
- host: "localhost",
1400
+ host: 'localhost',
1366
1401
  port: 6379,
1367
- prefix: "",
1368
- user: "",
1369
- password: "",
1402
+ prefix: '',
1403
+ user: '',
1404
+ password: '',
1370
1405
  sslTransit: false,
1371
1406
  },
1372
1407
  // ...
1373
1408
  session: {
1374
1409
  // ...
1375
- provider: "redis",
1410
+ provider: 'redis',
1376
1411
  },
1377
1412
  },
1378
1413
  // ...
1379
1414
  },
1380
1415
  // ...
1381
- });
1416
+ })
1382
1417
  ```
1383
1418
 
1384
1419
  - _Current Unified Storage Approach (`nuxt.config.ts`):_
@@ -1392,13 +1427,13 @@
1392
1427
  // ...
1393
1428
  storage: {
1394
1429
  cache: {
1395
- driver: "redis",
1396
- host: "localhost",
1430
+ driver: 'redis',
1431
+ host: 'localhost',
1397
1432
  port: 6379,
1398
1433
  },
1399
1434
  session: {
1400
- driver: "redis",
1401
- host: "localhost",
1435
+ driver: 'redis',
1436
+ host: 'localhost',
1402
1437
  port: 6379,
1403
1438
  },
1404
1439
  // ...
@@ -1408,7 +1443,7 @@
1408
1443
  // ...
1409
1444
  },
1410
1445
  // ...
1411
- });
1446
+ })
1412
1447
  ```
1413
1448
 
1414
1449
  - **\[💥 BREAKING\]** The composable `useSearch` has been replaced by `useStorefrontSearch`, consolidating and transitioning to SCAYLE Search v2.
@@ -1475,9 +1510,9 @@
1475
1510
 
1476
1511
  ```ts
1477
1512
  const { activeFilters, applyFilters, resetFilterUrl, productConditions } =
1478
- useQueryFilterState();
1513
+ useQueryFilterState()
1479
1514
 
1480
- applyFilters({ brand: 23, sale: true, maxPrice: 100, minPrice: 0 });
1515
+ applyFilters({ brand: 23, sale: true, maxPrice: 100, minPrice: 0 })
1481
1516
  ```
1482
1517
 
1483
1518
  - _Current Usage of `useFilter` and `useAppliedFilters`:_
@@ -1490,20 +1525,20 @@
1490
1525
  resetFilters,
1491
1526
  resetPriceFilter,
1492
1527
  resetFilter,
1493
- } = useFilter();
1528
+ } = useFilter()
1494
1529
 
1495
- applyPriceFilter([0, 100]);
1496
- applyBooleanFilter("sale", true);
1497
- applyAttributeFilter("brand", 23);
1530
+ applyPriceFilter([0, 100])
1531
+ applyBooleanFilter('sale', true)
1532
+ applyAttributeFilter('brand', 23)
1498
1533
 
1499
- const route = useRoute();
1534
+ const route = useRoute()
1500
1535
  const {
1501
1536
  appliedFilter,
1502
1537
  appliedFiltersCount,
1503
1538
  appliedAttributeValues,
1504
1539
  appliedBooleanValues,
1505
1540
  areFiltersApplied,
1506
- } = useAppliedFilters(route);
1541
+ } = useAppliedFilters(route)
1507
1542
  ```
1508
1543
 
1509
1544
  - **\[💥 BREAKING\]** The `getBadgeLabel` helper function has been removed, giving you more control over badge label display.
@@ -1513,43 +1548,43 @@
1513
1548
 
1514
1549
  ```ts
1515
1550
  const BadgeLabel = {
1516
- NEW: "new",
1517
- SOLD_OUT: "sold_out",
1518
- ONLINE_EXCLUSIVE: "online_exclusive",
1519
- SUSTAINABLE: "sustainable",
1520
- PREMIUM: "premium",
1521
- DEFAULT: "",
1522
- } as const;
1551
+ NEW: 'new',
1552
+ SOLD_OUT: 'sold_out',
1553
+ ONLINE_EXCLUSIVE: 'online_exclusive',
1554
+ SUSTAINABLE: 'sustainable',
1555
+ PREMIUM: 'premium',
1556
+ DEFAULT: '',
1557
+ } as const
1523
1558
 
1524
1559
  type BadgeLabelParamsKeys =
1525
- | "isNew"
1526
- | "isSoldOut"
1527
- | "isOnlineOnly"
1528
- | "isSustainable"
1529
- | "isPremium";
1530
- type BadgeLabelParams = Partial<Record<BadgeLabelParamsKeys, boolean>>;
1560
+ | 'isNew'
1561
+ | 'isSoldOut'
1562
+ | 'isOnlineOnly'
1563
+ | 'isSustainable'
1564
+ | 'isPremium'
1565
+ type BadgeLabelParams = Partial<Record<BadgeLabelParamsKeys, boolean>>
1531
1566
 
1532
1567
  const getBadgeLabel = (params: BadgeLabelParams = {}): string => {
1533
1568
  if (!params) {
1534
- return BadgeLabel.DEFAULT;
1569
+ return BadgeLabel.DEFAULT
1535
1570
  }
1536
1571
  const { isNew, isSoldOut, isOnlineOnly, isSustainable, isPremium } =
1537
- params;
1572
+ params
1538
1573
 
1539
1574
  if (isNew) {
1540
- return BadgeLabel.NEW;
1575
+ return BadgeLabel.NEW
1541
1576
  } else if (isSoldOut) {
1542
- return BadgeLabel.SOLD_OUT;
1577
+ return BadgeLabel.SOLD_OUT
1543
1578
  } else if (isOnlineOnly) {
1544
- return BadgeLabel.ONLINE_EXCLUSIVE;
1579
+ return BadgeLabel.ONLINE_EXCLUSIVE
1545
1580
  } else if (isSustainable) {
1546
- return BadgeLabel.SUSTAINABLE;
1581
+ return BadgeLabel.SUSTAINABLE
1547
1582
  } else if (isPremium) {
1548
- return BadgeLabel.PREMIUM;
1583
+ return BadgeLabel.PREMIUM
1549
1584
  } else {
1550
- return BadgeLabel.DEFAULT;
1585
+ return BadgeLabel.DEFAULT
1551
1586
  }
1552
- };
1587
+ }
1553
1588
  ```
1554
1589
 
1555
1590
  - **\[💥 BREAKING\]** The `store` option in the module configuration has been removed. `œscayle/storefront-nuxt@7.84.0` introduced the `shops` option as a replacement, but maintained backward compatibility with the `store` option. Going forward, configuring shops must be done using the `shops` keyword.
@@ -1573,7 +1608,7 @@
1573
1608
  // ...
1574
1609
  },
1575
1610
  // ...
1576
- });
1611
+ })
1577
1612
  ```
1578
1613
 
1579
1614
  - _Previous Environment Variables for Store Configuration:_
@@ -1602,7 +1637,7 @@
1602
1637
  // ...
1603
1638
  },
1604
1639
  // ...
1605
- });
1640
+ })
1606
1641
  ```
1607
1642
 
1608
1643
  - _Current Environment Variables for Shops Configuration:_
@@ -1622,8 +1657,8 @@
1622
1657
  ```ts
1623
1658
  useProduct({
1624
1659
  // ...
1625
- key: "productKey",
1626
- });
1660
+ key: 'productKey',
1661
+ })
1627
1662
  ```
1628
1663
 
1629
1664
  - _Current `key` as dedicated composables argument:_
@@ -1633,8 +1668,8 @@
1633
1668
  {
1634
1669
  // ...
1635
1670
  },
1636
- "productKey",
1637
- );
1671
+ 'productKey',
1672
+ )
1638
1673
  ```
1639
1674
 
1640
1675
  - **\[💥 BREAKING\]** Introducing a new feature flag `storefront.legacy.enableSessionMigration` to control the automatic migration of legacy session data, set to `false` by default. Starting with `@scayle/storefront-nuxt@7.68.0` Storefront uses unique session cookie names for each shop, simplifying implementation and enhancing stability.
@@ -1651,27 +1686,27 @@
1651
1686
  - _Previous Usage of `handleIDPLoginCallback`:_
1652
1687
 
1653
1688
  ```ts
1654
- const { handleIDPLoginCallback } = await useIDP();
1689
+ const { handleIDPLoginCallback } = await useIDP()
1655
1690
 
1656
1691
  watch(
1657
1692
  () => route.query,
1658
1693
  async (query) => {
1659
1694
  if (query.code && isString(query.code)) {
1660
- await handleIDPLoginCallback(query.code);
1695
+ await handleIDPLoginCallback(query.code)
1661
1696
  }
1662
1697
  },
1663
1698
  { immediate: true },
1664
- );
1699
+ )
1665
1700
  ```
1666
1701
 
1667
1702
  - _Current Usage of `loginIDP`:_
1668
1703
 
1669
1704
  ```ts
1670
- const { loginIDP } = useAuthentication("login");
1705
+ const { loginIDP } = useAuthentication('login')
1671
1706
 
1672
1707
  onMounted(async () => {
1673
- await loginIDP(props.code);
1674
- });
1708
+ await loginIDP(props.code)
1709
+ })
1675
1710
  ```
1676
1711
 
1677
1712
  - **\[🧹 NON-BREAKING\]** Addressed various type resolution errors that were present when using the `@scayle/storefront-nuxt` package with different Node.js versions and module systems. These errors manifested as internal resolution errors or ESM dynamic import only warnings. With this fix, the package now more consistently resolves types correctly across Node.js 16 (CJS and ESM), and bundlers, ensuring a smoother developer experience.
@@ -1681,17 +1716,17 @@
1681
1716
  - _Previous `useRpc` with `autoFetch`:_
1682
1717
 
1683
1718
  ```ts
1684
- useRpc("rpcMethod", key, params, { autoFetch: true });
1719
+ useRpc('rpcMethod', key, params, { autoFetch: true })
1685
1720
 
1686
- useUser({ autoFetch: true });
1721
+ useUser({ autoFetch: true })
1687
1722
  ```
1688
1723
 
1689
1724
  - _Current `useRpc` with `immediate`:_
1690
1725
 
1691
1726
  ```ts
1692
- useRpc("rpcMethod", key, params, { immediate: true });
1727
+ useRpc('rpcMethod', key, params, { immediate: true })
1693
1728
 
1694
- useUser({ immediate: true });
1729
+ useUser({ immediate: true })
1695
1730
  ```
1696
1731
 
1697
1732
  - **\[💥 BREAKING\]** The attribute `isCmsPreview` has been removed from `RpcContext`.
@@ -1711,18 +1746,18 @@
1711
1746
  getSearchSuggestions,
1712
1747
  fetching,
1713
1748
  ...searchData
1714
- } = useStorefrontSearch(searchQuery, { key });
1749
+ } = useStorefrontSearch(searchQuery, { key })
1715
1750
 
1716
- fetching.value; // true or false
1751
+ fetching.value // true or false
1717
1752
  ```
1718
1753
 
1719
1754
  - _Current `useStorefrontSearch` returning `status`:_
1720
1755
 
1721
1756
  ```ts
1722
1757
  const { data, resolveSearch, getSearchSuggestions, status, ...searchData } =
1723
- useStorefrontSearch(searchQuery, {}, key);
1758
+ useStorefrontSearch(searchQuery, {}, key)
1724
1759
 
1725
- status.value; // 'idle', 'pending', 'error' or 'success'
1760
+ status.value // 'idle', 'pending', 'error' or 'success'
1726
1761
  ```
1727
1762
 
1728
1763
  - **\[💥 BREAKING\]** We've simplified composable caching and clarified the control you have over shared state behavior. The configuration option `disableDefaultGetCachedDataOverride` has been replaced with `legacy.enableDefaultGetCachedDataOverride`, and its logic has been reversed. Now, when `legacy.enableDefaultGetCachedDataOverride` is not set or set to `false`, the default behavior maintains the shared state functionality of `useRpc`, where multiple calls with the same key use the same cached data. Setting the option to `true` bypasses this shared caching, providing data isolation between calls. To maintain your existing caching behavior, simply change the value of `disableDefaultGetCachedDataOverride` to its opposite in your `nuxt.config.ts` file.
@@ -1747,7 +1782,7 @@
1747
1782
  // ...
1748
1783
  },
1749
1784
  // ...
1750
- });
1785
+ })
1751
1786
  ```
1752
1787
 
1753
1788
  - _Current `enableDefaultGetCachedDataOverride`in `nuxt.config.ts`:_
@@ -1772,7 +1807,7 @@
1772
1807
  // ...
1773
1808
  },
1774
1809
  // ...
1775
- });
1810
+ })
1776
1811
  ```
1777
1812
 
1778
1813
  - **\[💥 BREAKING\]** The `useRpc` composable has been updated to provide a more modern and robust data fetching experience, aligning its interface with the current and underlying [Nuxt 3 `useAsyncData`.](https://nuxt.com/docs/api/composables/use-async-data#return-values).
@@ -1794,7 +1829,7 @@
1794
1829
  function myCustomRpc() {
1795
1830
  // ...
1796
1831
 
1797
- throw new BaseError(404);
1832
+ throw new BaseError(404)
1798
1833
  }
1799
1834
  ```
1800
1835
 
@@ -1804,7 +1839,7 @@
1804
1839
  function myCustomRpc() {
1805
1840
  // ...
1806
1841
 
1807
- return new Response(null, { status: 404 });
1842
+ return new Response(null, { status: 404 })
1808
1843
  }
1809
1844
  ```
1810
1845
 
package/dist/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scayle/storefront-nuxt",
3
- "version": "8.32.0",
3
+ "version": "8.33.0",
4
4
  "configKey": "storefront",
5
5
  "compatibility": {
6
6
  "nuxt": "^3.9.0"
package/dist/module.mjs CHANGED
@@ -54,7 +54,7 @@ export default {
54
54
  }`;
55
55
  }
56
56
  const PACKAGE_NAME = "@scayle/storefront-nuxt";
57
- const PACKAGE_VERSION = "8.32.0";
57
+ const PACKAGE_VERSION = "8.33.0";
58
58
  const logger = createConsola({
59
59
  fancy: true,
60
60
  formatOptions: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@scayle/storefront-nuxt",
3
3
  "type": "module",
4
- "version": "8.32.0",
4
+ "version": "8.33.0",
5
5
  "description": "Nuxt integration for the SCAYLE Commerce Engine and Storefront API",
6
6
  "author": "SCAYLE Commerce Engine",
7
7
  "license": "MIT",
@@ -61,13 +61,21 @@
61
61
  "engines": {
62
62
  "node": ">= 20.7.0"
63
63
  },
64
+ "peerDependencies": {
65
+ "@nuxt/kit": ">=3.12.2",
66
+ "@scayle/storefront-api": "^18.1.0",
67
+ "fishery": "^2.2.2",
68
+ "h3": "^1.10.0",
69
+ "nitropack": "^2.9.7",
70
+ "nuxt": ">=3.10.0",
71
+ "unstorage": "^1.10.1",
72
+ "vue": "^3.4.0"
73
+ },
64
74
  "dependencies": {
65
75
  "@opentelemetry/api": "^1.9.0",
66
76
  "@scayle/h3-session": "0.6.1",
67
- "@scayle/storefront-core": "8.32.0",
68
- "@scayle/unstorage-compression-driver": "^1.0.0",
69
77
  "@vercel/nft": "0.29.4",
70
- "@vueuse/core": "13.4.0",
78
+ "@vueuse/core": "13.5.0",
71
79
  "consola": "^3.2.3",
72
80
  "core-js": "^3.37.1",
73
81
  "defu": "^6.1.4",
@@ -81,24 +89,23 @@
81
89
  "unstorage": "^1.10.2",
82
90
  "utility-types": "^3.11.0",
83
91
  "vue-router": "^4.4.0",
84
- "zod": "^3.23.8"
92
+ "zod": "^3.23.8",
93
+ "@scayle/storefront-core": "8.33.0",
94
+ "@scayle/unstorage-compression-driver": "1.0.0"
85
95
  },
86
96
  "devDependencies": {
87
97
  "@arethetypeswrong/cli": "0.18.2",
88
98
  "@eslint/eslintrc": "3.3.1",
89
- "@nuxt/eslint": "1.4.1",
99
+ "@nuxt/eslint": "1.5.2",
90
100
  "@nuxt/kit": "3.16.2",
91
101
  "@nuxt/module-builder": "1.0.1",
92
102
  "@nuxt/schema": "3.16.2",
93
103
  "@nuxt/test-utils": "3.19.2",
94
- "@scayle/eslint-config-storefront": "4.5.12",
95
- "@scayle/eslint-plugin-vue-composable": "0.2.1",
96
- "@scayle/unstorage-scayle-kv-driver": "1.0.2",
97
- "@types/node": "22.15.34",
104
+ "@types/node": "22.16.0",
98
105
  "@vitest/coverage-v8": "3.2.4",
99
106
  "dprint": "0.50.1",
100
107
  "eslint-formatter-gitlab": "6.0.1",
101
- "eslint": "9.30.0",
108
+ "eslint": "9.30.1",
102
109
  "fishery": "2.3.1",
103
110
  "h3": "1.15.3",
104
111
  "nitro-test-utils": "0.9.2",
@@ -109,17 +116,10 @@
109
116
  "typescript": "5.8.3",
110
117
  "unbuild": "3.5.0",
111
118
  "vitest": "3.2.4",
112
- "vue-tsc": "2.2.10"
113
- },
114
- "peerDependencies": {
115
- "@nuxt/kit": ">=3.12.2",
116
- "@scayle/storefront-api": "^18.1.0",
117
- "fishery": "^2.2.2",
118
- "h3": "^1.10.0",
119
- "nitropack": "^2.9.7",
120
- "nuxt": ">=3.10.0",
121
- "unstorage": "^1.10.1",
122
- "vue": "^3.4.0"
119
+ "vue-tsc": "3.0.1",
120
+ "@scayle/eslint-config-storefront": "4.5.12",
121
+ "@scayle/eslint-plugin-vue-composable": "0.2.1",
122
+ "@scayle/unstorage-scayle-kv-driver": "1.0.2"
123
123
  },
124
124
  "volta": {
125
125
  "node": "22.17.0"