@scayle/storefront-nuxt 8.32.1 → 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,28 @@
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
+
3
26
  ## 8.32.1
4
27
 
5
28
  ### Patch Changes
@@ -38,23 +61,23 @@
38
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.
39
62
 
40
63
  ```ts
41
- const { data } = useRpc("getFilters", "getFiltersKey", () => ({
64
+ const { data } = useRpc('getFilters', 'getFiltersKey', () => ({
42
65
  where: {
43
66
  minReduction: 10,
44
67
  maxReduction: 20,
45
68
  },
46
- }));
69
+ }))
47
70
 
48
71
  const { data } = useRpc(
49
- "getProductsByCategory",
50
- "getProductsByCategoryKey",
72
+ 'getProductsByCategory',
73
+ 'getProductsByCategoryKey',
51
74
  () => ({
52
75
  where: {
53
76
  minReduction: 10,
54
77
  maxReduction: 20,
55
78
  },
56
79
  }),
57
- );
80
+ )
58
81
  ```
59
82
 
60
83
  ## 8.30.3
@@ -106,28 +129,28 @@
106
129
 
107
130
  ```ts
108
131
  export const existingHandlerWithoutParams = async (_context: RpcContext) => {
109
- return "existing handler";
110
- };
132
+ return 'existing handler'
133
+ }
111
134
 
112
135
  export const existingHandlerWithParams = async (
113
136
  { name }: { name: string },
114
137
  _context: RpcContext,
115
138
  ) => {
116
- return name;
117
- };
139
+ return name
140
+ }
118
141
 
119
142
  // will become
120
143
 
121
144
  export const existingHandlerWithoutParams = defineRpcHandler(
122
145
  async (_context: RpcContext) => {
123
- return "existing handler";
146
+ return 'existing handler'
124
147
  },
125
- );
148
+ )
126
149
  export const existingHandlerWithParams = defineRpcHandler(
127
150
  async ({ name }: { name: string }, _context: RpcContext) => {
128
- return name;
151
+ return name
129
152
  },
130
- );
153
+ )
131
154
  ```
132
155
 
133
156
  - Patch
@@ -149,15 +172,15 @@
149
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.
150
173
 
151
174
  ```ts
152
- import { rpcMethods } from "@scayle/storefront-core";
175
+ import { rpcMethods } from '@scayle/storefront-core'
153
176
 
154
- rpcMethods.getCategoryTree({ hideEmptyCategories: true }, rpcContext);
177
+ rpcMethods.getCategoryTree({ hideEmptyCategories: true }, rpcContext)
155
178
  ```
156
179
 
157
180
  or
158
181
 
159
182
  ```ts
160
- import { useCategoryTree } from "#storefront/composables";
183
+ import { useCategoryTree } from '#storefront/composables'
161
184
 
162
185
  const { data: rootCategories, status } = useCategoryTree(
163
186
  {
@@ -165,8 +188,8 @@
165
188
  hideEmptyCategories: true,
166
189
  },
167
190
  },
168
- "category-navigation-tree",
169
- );
191
+ 'category-navigation-tree',
192
+ )
170
193
  ```
171
194
 
172
195
  ## 8.28.7
@@ -263,9 +286,9 @@
263
286
  params: {
264
287
  children: 10,
265
288
  includeHidden: true,
266
- properties: { withName: ["sale"] },
289
+ properties: { withName: ['sale'] },
267
290
  },
268
- });
291
+ })
269
292
  ```
270
293
 
271
294
  ### Patch Changes
@@ -436,16 +459,16 @@
436
459
  nitro: {
437
460
  storage: {
438
461
  redis: {
439
- driver: "redis",
440
- host: "localhost",
462
+ driver: 'redis',
463
+ host: 'localhost',
441
464
  },
442
465
  db: {
443
- driver: "fs",
444
- base: "./.data/db",
466
+ driver: 'fs',
467
+ base: './.data/db',
445
468
  },
446
469
  },
447
470
  },
448
- });
471
+ })
449
472
  ```
450
473
 
451
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.
@@ -518,9 +541,9 @@
518
541
  ```typescript
519
542
  const idp = useIDP({
520
543
  authUrlParameters: {
521
- theme: "dark",
544
+ theme: 'dark',
522
545
  },
523
- });
546
+ })
524
547
  ```
525
548
 
526
549
  ### Patch Changes
@@ -662,11 +685,11 @@
662
685
  storefront: {
663
686
  redirects: {
664
687
  enabled: true,
665
- strategy: "on-missing",
688
+ strategy: 'on-missing',
666
689
  },
667
690
  },
668
691
  },
669
- });
692
+ })
670
693
  ```
671
694
 
672
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.
@@ -680,7 +703,7 @@
680
703
  If the request handler returns a `Response` object with a `status` of 404, a 404 response will be returned to the client.
681
704
 
682
705
  ```typescript
683
- return new Response(null, { status: 404 });
706
+ return new Response(null, { status: 404 })
684
707
  ```
685
708
 
686
709
  3. Thrown H3Error with 404 status
@@ -688,8 +711,8 @@
688
711
  If the request handler throws an H3Error with a `statusCode` 404, a 404 response will be returned to the client.
689
712
 
690
713
  ```typescript
691
- import { createError } from "h3";
692
- throw createError({ statusCode: 404 });
714
+ import { createError } from 'h3'
715
+ throw createError({ statusCode: 404 })
693
716
  ```
694
717
 
695
718
  ### Patch Changes
@@ -1131,28 +1154,28 @@
1131
1154
  **rpc-methods.ts**
1132
1155
 
1133
1156
  ```typescript
1134
- import type { RpcContext, RpcHandler } from "@scayle/storefront-nuxt";
1157
+ import type { RpcContext, RpcHandler } from '@scayle/storefront-nuxt'
1135
1158
 
1136
1159
  export const foo: RpcHandler<string, number> = function testing(
1137
1160
  param: string,
1138
1161
  _: RpcContext,
1139
1162
  ) {
1140
- return param.length;
1141
- };
1163
+ return param.length
1164
+ }
1142
1165
  ```
1143
1166
 
1144
1167
  **module.ts**
1145
1168
 
1146
1169
  ```typescript
1147
1170
  function setup() {
1148
- const resolver = createResolver(import.meta.url);
1171
+ const resolver = createResolver(import.meta.url)
1149
1172
 
1150
- nuxt.hook("storefront:custom-rpc:extend", (customRpcImports) => {
1173
+ nuxt.hook('storefront:custom-rpc:extend', (customRpcImports) => {
1151
1174
  customRpcImports.push({
1152
- source: resolver.resolve("./rpc-methods.ts"),
1153
- names: ["foo"],
1154
- });
1155
- });
1175
+ source: resolver.resolve('./rpc-methods.ts'),
1176
+ names: ['foo'],
1177
+ })
1178
+ })
1156
1179
  }
1157
1180
  ```
1158
1181
 
@@ -1374,23 +1397,23 @@
1374
1397
  storefront: {
1375
1398
  // ...
1376
1399
  redis: {
1377
- host: "localhost",
1400
+ host: 'localhost',
1378
1401
  port: 6379,
1379
- prefix: "",
1380
- user: "",
1381
- password: "",
1402
+ prefix: '',
1403
+ user: '',
1404
+ password: '',
1382
1405
  sslTransit: false,
1383
1406
  },
1384
1407
  // ...
1385
1408
  session: {
1386
1409
  // ...
1387
- provider: "redis",
1410
+ provider: 'redis',
1388
1411
  },
1389
1412
  },
1390
1413
  // ...
1391
1414
  },
1392
1415
  // ...
1393
- });
1416
+ })
1394
1417
  ```
1395
1418
 
1396
1419
  - _Current Unified Storage Approach (`nuxt.config.ts`):_
@@ -1404,13 +1427,13 @@
1404
1427
  // ...
1405
1428
  storage: {
1406
1429
  cache: {
1407
- driver: "redis",
1408
- host: "localhost",
1430
+ driver: 'redis',
1431
+ host: 'localhost',
1409
1432
  port: 6379,
1410
1433
  },
1411
1434
  session: {
1412
- driver: "redis",
1413
- host: "localhost",
1435
+ driver: 'redis',
1436
+ host: 'localhost',
1414
1437
  port: 6379,
1415
1438
  },
1416
1439
  // ...
@@ -1420,7 +1443,7 @@
1420
1443
  // ...
1421
1444
  },
1422
1445
  // ...
1423
- });
1446
+ })
1424
1447
  ```
1425
1448
 
1426
1449
  - **\[💥 BREAKING\]** The composable `useSearch` has been replaced by `useStorefrontSearch`, consolidating and transitioning to SCAYLE Search v2.
@@ -1487,9 +1510,9 @@
1487
1510
 
1488
1511
  ```ts
1489
1512
  const { activeFilters, applyFilters, resetFilterUrl, productConditions } =
1490
- useQueryFilterState();
1513
+ useQueryFilterState()
1491
1514
 
1492
- applyFilters({ brand: 23, sale: true, maxPrice: 100, minPrice: 0 });
1515
+ applyFilters({ brand: 23, sale: true, maxPrice: 100, minPrice: 0 })
1493
1516
  ```
1494
1517
 
1495
1518
  - _Current Usage of `useFilter` and `useAppliedFilters`:_
@@ -1502,20 +1525,20 @@
1502
1525
  resetFilters,
1503
1526
  resetPriceFilter,
1504
1527
  resetFilter,
1505
- } = useFilter();
1528
+ } = useFilter()
1506
1529
 
1507
- applyPriceFilter([0, 100]);
1508
- applyBooleanFilter("sale", true);
1509
- applyAttributeFilter("brand", 23);
1530
+ applyPriceFilter([0, 100])
1531
+ applyBooleanFilter('sale', true)
1532
+ applyAttributeFilter('brand', 23)
1510
1533
 
1511
- const route = useRoute();
1534
+ const route = useRoute()
1512
1535
  const {
1513
1536
  appliedFilter,
1514
1537
  appliedFiltersCount,
1515
1538
  appliedAttributeValues,
1516
1539
  appliedBooleanValues,
1517
1540
  areFiltersApplied,
1518
- } = useAppliedFilters(route);
1541
+ } = useAppliedFilters(route)
1519
1542
  ```
1520
1543
 
1521
1544
  - **\[💥 BREAKING\]** The `getBadgeLabel` helper function has been removed, giving you more control over badge label display.
@@ -1525,43 +1548,43 @@
1525
1548
 
1526
1549
  ```ts
1527
1550
  const BadgeLabel = {
1528
- NEW: "new",
1529
- SOLD_OUT: "sold_out",
1530
- ONLINE_EXCLUSIVE: "online_exclusive",
1531
- SUSTAINABLE: "sustainable",
1532
- PREMIUM: "premium",
1533
- DEFAULT: "",
1534
- } 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
1535
1558
 
1536
1559
  type BadgeLabelParamsKeys =
1537
- | "isNew"
1538
- | "isSoldOut"
1539
- | "isOnlineOnly"
1540
- | "isSustainable"
1541
- | "isPremium";
1542
- type BadgeLabelParams = Partial<Record<BadgeLabelParamsKeys, boolean>>;
1560
+ | 'isNew'
1561
+ | 'isSoldOut'
1562
+ | 'isOnlineOnly'
1563
+ | 'isSustainable'
1564
+ | 'isPremium'
1565
+ type BadgeLabelParams = Partial<Record<BadgeLabelParamsKeys, boolean>>
1543
1566
 
1544
1567
  const getBadgeLabel = (params: BadgeLabelParams = {}): string => {
1545
1568
  if (!params) {
1546
- return BadgeLabel.DEFAULT;
1569
+ return BadgeLabel.DEFAULT
1547
1570
  }
1548
1571
  const { isNew, isSoldOut, isOnlineOnly, isSustainable, isPremium } =
1549
- params;
1572
+ params
1550
1573
 
1551
1574
  if (isNew) {
1552
- return BadgeLabel.NEW;
1575
+ return BadgeLabel.NEW
1553
1576
  } else if (isSoldOut) {
1554
- return BadgeLabel.SOLD_OUT;
1577
+ return BadgeLabel.SOLD_OUT
1555
1578
  } else if (isOnlineOnly) {
1556
- return BadgeLabel.ONLINE_EXCLUSIVE;
1579
+ return BadgeLabel.ONLINE_EXCLUSIVE
1557
1580
  } else if (isSustainable) {
1558
- return BadgeLabel.SUSTAINABLE;
1581
+ return BadgeLabel.SUSTAINABLE
1559
1582
  } else if (isPremium) {
1560
- return BadgeLabel.PREMIUM;
1583
+ return BadgeLabel.PREMIUM
1561
1584
  } else {
1562
- return BadgeLabel.DEFAULT;
1585
+ return BadgeLabel.DEFAULT
1563
1586
  }
1564
- };
1587
+ }
1565
1588
  ```
1566
1589
 
1567
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.
@@ -1585,7 +1608,7 @@
1585
1608
  // ...
1586
1609
  },
1587
1610
  // ...
1588
- });
1611
+ })
1589
1612
  ```
1590
1613
 
1591
1614
  - _Previous Environment Variables for Store Configuration:_
@@ -1614,7 +1637,7 @@
1614
1637
  // ...
1615
1638
  },
1616
1639
  // ...
1617
- });
1640
+ })
1618
1641
  ```
1619
1642
 
1620
1643
  - _Current Environment Variables for Shops Configuration:_
@@ -1634,8 +1657,8 @@
1634
1657
  ```ts
1635
1658
  useProduct({
1636
1659
  // ...
1637
- key: "productKey",
1638
- });
1660
+ key: 'productKey',
1661
+ })
1639
1662
  ```
1640
1663
 
1641
1664
  - _Current `key` as dedicated composables argument:_
@@ -1645,8 +1668,8 @@
1645
1668
  {
1646
1669
  // ...
1647
1670
  },
1648
- "productKey",
1649
- );
1671
+ 'productKey',
1672
+ )
1650
1673
  ```
1651
1674
 
1652
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.
@@ -1663,27 +1686,27 @@
1663
1686
  - _Previous Usage of `handleIDPLoginCallback`:_
1664
1687
 
1665
1688
  ```ts
1666
- const { handleIDPLoginCallback } = await useIDP();
1689
+ const { handleIDPLoginCallback } = await useIDP()
1667
1690
 
1668
1691
  watch(
1669
1692
  () => route.query,
1670
1693
  async (query) => {
1671
1694
  if (query.code && isString(query.code)) {
1672
- await handleIDPLoginCallback(query.code);
1695
+ await handleIDPLoginCallback(query.code)
1673
1696
  }
1674
1697
  },
1675
1698
  { immediate: true },
1676
- );
1699
+ )
1677
1700
  ```
1678
1701
 
1679
1702
  - _Current Usage of `loginIDP`:_
1680
1703
 
1681
1704
  ```ts
1682
- const { loginIDP } = useAuthentication("login");
1705
+ const { loginIDP } = useAuthentication('login')
1683
1706
 
1684
1707
  onMounted(async () => {
1685
- await loginIDP(props.code);
1686
- });
1708
+ await loginIDP(props.code)
1709
+ })
1687
1710
  ```
1688
1711
 
1689
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.
@@ -1693,17 +1716,17 @@
1693
1716
  - _Previous `useRpc` with `autoFetch`:_
1694
1717
 
1695
1718
  ```ts
1696
- useRpc("rpcMethod", key, params, { autoFetch: true });
1719
+ useRpc('rpcMethod', key, params, { autoFetch: true })
1697
1720
 
1698
- useUser({ autoFetch: true });
1721
+ useUser({ autoFetch: true })
1699
1722
  ```
1700
1723
 
1701
1724
  - _Current `useRpc` with `immediate`:_
1702
1725
 
1703
1726
  ```ts
1704
- useRpc("rpcMethod", key, params, { immediate: true });
1727
+ useRpc('rpcMethod', key, params, { immediate: true })
1705
1728
 
1706
- useUser({ immediate: true });
1729
+ useUser({ immediate: true })
1707
1730
  ```
1708
1731
 
1709
1732
  - **\[💥 BREAKING\]** The attribute `isCmsPreview` has been removed from `RpcContext`.
@@ -1723,18 +1746,18 @@
1723
1746
  getSearchSuggestions,
1724
1747
  fetching,
1725
1748
  ...searchData
1726
- } = useStorefrontSearch(searchQuery, { key });
1749
+ } = useStorefrontSearch(searchQuery, { key })
1727
1750
 
1728
- fetching.value; // true or false
1751
+ fetching.value // true or false
1729
1752
  ```
1730
1753
 
1731
1754
  - _Current `useStorefrontSearch` returning `status`:_
1732
1755
 
1733
1756
  ```ts
1734
1757
  const { data, resolveSearch, getSearchSuggestions, status, ...searchData } =
1735
- useStorefrontSearch(searchQuery, {}, key);
1758
+ useStorefrontSearch(searchQuery, {}, key)
1736
1759
 
1737
- status.value; // 'idle', 'pending', 'error' or 'success'
1760
+ status.value // 'idle', 'pending', 'error' or 'success'
1738
1761
  ```
1739
1762
 
1740
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.
@@ -1759,7 +1782,7 @@
1759
1782
  // ...
1760
1783
  },
1761
1784
  // ...
1762
- });
1785
+ })
1763
1786
  ```
1764
1787
 
1765
1788
  - _Current `enableDefaultGetCachedDataOverride`in `nuxt.config.ts`:_
@@ -1784,7 +1807,7 @@
1784
1807
  // ...
1785
1808
  },
1786
1809
  // ...
1787
- });
1810
+ })
1788
1811
  ```
1789
1812
 
1790
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).
@@ -1806,7 +1829,7 @@
1806
1829
  function myCustomRpc() {
1807
1830
  // ...
1808
1831
 
1809
- throw new BaseError(404);
1832
+ throw new BaseError(404)
1810
1833
  }
1811
1834
  ```
1812
1835
 
@@ -1816,7 +1839,7 @@
1816
1839
  function myCustomRpc() {
1817
1840
  // ...
1818
1841
 
1819
- return new Response(null, { status: 404 });
1842
+ return new Response(null, { status: 404 })
1820
1843
  }
1821
1844
  ```
1822
1845
 
package/dist/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scayle/storefront-nuxt",
3
- "version": "8.32.1",
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.1";
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.1",
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.1",
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.5.0",
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"