@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 +129 -106
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -1
- package/package.json +22 -22
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(
|
|
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
|
-
|
|
50
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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: [
|
|
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:
|
|
440
|
-
host:
|
|
462
|
+
driver: 'redis',
|
|
463
|
+
host: 'localhost',
|
|
441
464
|
},
|
|
442
465
|
db: {
|
|
443
|
-
driver:
|
|
444
|
-
base:
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
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(
|
|
1173
|
+
nuxt.hook('storefront:custom-rpc:extend', (customRpcImports) => {
|
|
1151
1174
|
customRpcImports.push({
|
|
1152
|
-
source: resolver.resolve(
|
|
1153
|
-
names: [
|
|
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:
|
|
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:
|
|
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:
|
|
1408
|
-
host:
|
|
1430
|
+
driver: 'redis',
|
|
1431
|
+
host: 'localhost',
|
|
1409
1432
|
port: 6379,
|
|
1410
1433
|
},
|
|
1411
1434
|
session: {
|
|
1412
|
-
driver:
|
|
1413
|
-
host:
|
|
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(
|
|
1509
|
-
applyAttributeFilter(
|
|
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:
|
|
1529
|
-
SOLD_OUT:
|
|
1530
|
-
ONLINE_EXCLUSIVE:
|
|
1531
|
-
SUSTAINABLE:
|
|
1532
|
-
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
|
-
|
|
|
1538
|
-
|
|
|
1539
|
-
|
|
|
1540
|
-
|
|
|
1541
|
-
|
|
|
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:
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
package/dist/module.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scayle/storefront-nuxt",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "8.
|
|
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.
|
|
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.
|
|
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
|
-
"@
|
|
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.
|
|
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": "
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"@
|
|
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"
|