@scayle/storefront-nuxt 8.32.1 → 8.33.1
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 +137 -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,36 @@
|
|
|
1
1
|
# @scayle/storefront-nuxt
|
|
2
2
|
|
|
3
|
+
## 8.33.1
|
|
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.1**
|
|
14
|
+
|
|
15
|
+
- Patch
|
|
16
|
+
- Updated dependency `@scayle/storefront-api@18.9.0` to `@scayle/storefront-api@workspace:*`
|
|
17
|
+
- Updated dependency `@scayle/unstorage-scayle-kv-driver@1.0.2` to `@scayle/unstorage-scayle-kv-driver@workspace:*`
|
|
18
|
+
|
|
19
|
+
## 8.33.0
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
**Dependencies**
|
|
24
|
+
|
|
25
|
+
**@scayle/storefront-core v8.33.0**
|
|
26
|
+
|
|
27
|
+
- Minor
|
|
28
|
+
|
|
29
|
+
- Added test factories for order and all related types.
|
|
30
|
+
|
|
31
|
+
It is now possible to build orders with factory functions for testing purposes.
|
|
32
|
+
This will reduce the amount of boilerplate code needed to create test data.
|
|
33
|
+
|
|
3
34
|
## 8.32.1
|
|
4
35
|
|
|
5
36
|
### Patch Changes
|
|
@@ -38,23 +69,23 @@
|
|
|
38
69
|
- 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
70
|
|
|
40
71
|
```ts
|
|
41
|
-
const { data } = useRpc(
|
|
72
|
+
const { data } = useRpc('getFilters', 'getFiltersKey', () => ({
|
|
42
73
|
where: {
|
|
43
74
|
minReduction: 10,
|
|
44
75
|
maxReduction: 20,
|
|
45
76
|
},
|
|
46
|
-
}))
|
|
77
|
+
}))
|
|
47
78
|
|
|
48
79
|
const { data } = useRpc(
|
|
49
|
-
|
|
50
|
-
|
|
80
|
+
'getProductsByCategory',
|
|
81
|
+
'getProductsByCategoryKey',
|
|
51
82
|
() => ({
|
|
52
83
|
where: {
|
|
53
84
|
minReduction: 10,
|
|
54
85
|
maxReduction: 20,
|
|
55
86
|
},
|
|
56
87
|
}),
|
|
57
|
-
)
|
|
88
|
+
)
|
|
58
89
|
```
|
|
59
90
|
|
|
60
91
|
## 8.30.3
|
|
@@ -106,28 +137,28 @@
|
|
|
106
137
|
|
|
107
138
|
```ts
|
|
108
139
|
export const existingHandlerWithoutParams = async (_context: RpcContext) => {
|
|
109
|
-
return
|
|
110
|
-
}
|
|
140
|
+
return 'existing handler'
|
|
141
|
+
}
|
|
111
142
|
|
|
112
143
|
export const existingHandlerWithParams = async (
|
|
113
144
|
{ name }: { name: string },
|
|
114
145
|
_context: RpcContext,
|
|
115
146
|
) => {
|
|
116
|
-
return name
|
|
117
|
-
}
|
|
147
|
+
return name
|
|
148
|
+
}
|
|
118
149
|
|
|
119
150
|
// will become
|
|
120
151
|
|
|
121
152
|
export const existingHandlerWithoutParams = defineRpcHandler(
|
|
122
153
|
async (_context: RpcContext) => {
|
|
123
|
-
return
|
|
154
|
+
return 'existing handler'
|
|
124
155
|
},
|
|
125
|
-
)
|
|
156
|
+
)
|
|
126
157
|
export const existingHandlerWithParams = defineRpcHandler(
|
|
127
158
|
async ({ name }: { name: string }, _context: RpcContext) => {
|
|
128
|
-
return name
|
|
159
|
+
return name
|
|
129
160
|
},
|
|
130
|
-
)
|
|
161
|
+
)
|
|
131
162
|
```
|
|
132
163
|
|
|
133
164
|
- Patch
|
|
@@ -149,15 +180,15 @@
|
|
|
149
180
|
- 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
181
|
|
|
151
182
|
```ts
|
|
152
|
-
import { rpcMethods } from
|
|
183
|
+
import { rpcMethods } from '@scayle/storefront-core'
|
|
153
184
|
|
|
154
|
-
rpcMethods.getCategoryTree({ hideEmptyCategories: true }, rpcContext)
|
|
185
|
+
rpcMethods.getCategoryTree({ hideEmptyCategories: true }, rpcContext)
|
|
155
186
|
```
|
|
156
187
|
|
|
157
188
|
or
|
|
158
189
|
|
|
159
190
|
```ts
|
|
160
|
-
import { useCategoryTree } from
|
|
191
|
+
import { useCategoryTree } from '#storefront/composables'
|
|
161
192
|
|
|
162
193
|
const { data: rootCategories, status } = useCategoryTree(
|
|
163
194
|
{
|
|
@@ -165,8 +196,8 @@
|
|
|
165
196
|
hideEmptyCategories: true,
|
|
166
197
|
},
|
|
167
198
|
},
|
|
168
|
-
|
|
169
|
-
)
|
|
199
|
+
'category-navigation-tree',
|
|
200
|
+
)
|
|
170
201
|
```
|
|
171
202
|
|
|
172
203
|
## 8.28.7
|
|
@@ -263,9 +294,9 @@
|
|
|
263
294
|
params: {
|
|
264
295
|
children: 10,
|
|
265
296
|
includeHidden: true,
|
|
266
|
-
properties: { withName: [
|
|
297
|
+
properties: { withName: ['sale'] },
|
|
267
298
|
},
|
|
268
|
-
})
|
|
299
|
+
})
|
|
269
300
|
```
|
|
270
301
|
|
|
271
302
|
### Patch Changes
|
|
@@ -436,16 +467,16 @@
|
|
|
436
467
|
nitro: {
|
|
437
468
|
storage: {
|
|
438
469
|
redis: {
|
|
439
|
-
driver:
|
|
440
|
-
host:
|
|
470
|
+
driver: 'redis',
|
|
471
|
+
host: 'localhost',
|
|
441
472
|
},
|
|
442
473
|
db: {
|
|
443
|
-
driver:
|
|
444
|
-
base:
|
|
474
|
+
driver: 'fs',
|
|
475
|
+
base: './.data/db',
|
|
445
476
|
},
|
|
446
477
|
},
|
|
447
478
|
},
|
|
448
|
-
})
|
|
479
|
+
})
|
|
449
480
|
```
|
|
450
481
|
|
|
451
482
|
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 +549,9 @@
|
|
|
518
549
|
```typescript
|
|
519
550
|
const idp = useIDP({
|
|
520
551
|
authUrlParameters: {
|
|
521
|
-
theme:
|
|
552
|
+
theme: 'dark',
|
|
522
553
|
},
|
|
523
|
-
})
|
|
554
|
+
})
|
|
524
555
|
```
|
|
525
556
|
|
|
526
557
|
### Patch Changes
|
|
@@ -662,11 +693,11 @@
|
|
|
662
693
|
storefront: {
|
|
663
694
|
redirects: {
|
|
664
695
|
enabled: true,
|
|
665
|
-
strategy:
|
|
696
|
+
strategy: 'on-missing',
|
|
666
697
|
},
|
|
667
698
|
},
|
|
668
699
|
},
|
|
669
|
-
})
|
|
700
|
+
})
|
|
670
701
|
```
|
|
671
702
|
|
|
672
703
|
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 +711,7 @@
|
|
|
680
711
|
If the request handler returns a `Response` object with a `status` of 404, a 404 response will be returned to the client.
|
|
681
712
|
|
|
682
713
|
```typescript
|
|
683
|
-
return new Response(null, { status: 404 })
|
|
714
|
+
return new Response(null, { status: 404 })
|
|
684
715
|
```
|
|
685
716
|
|
|
686
717
|
3. Thrown H3Error with 404 status
|
|
@@ -688,8 +719,8 @@
|
|
|
688
719
|
If the request handler throws an H3Error with a `statusCode` 404, a 404 response will be returned to the client.
|
|
689
720
|
|
|
690
721
|
```typescript
|
|
691
|
-
import { createError } from
|
|
692
|
-
throw createError({ statusCode: 404 })
|
|
722
|
+
import { createError } from 'h3'
|
|
723
|
+
throw createError({ statusCode: 404 })
|
|
693
724
|
```
|
|
694
725
|
|
|
695
726
|
### Patch Changes
|
|
@@ -1131,28 +1162,28 @@
|
|
|
1131
1162
|
**rpc-methods.ts**
|
|
1132
1163
|
|
|
1133
1164
|
```typescript
|
|
1134
|
-
import type { RpcContext, RpcHandler } from
|
|
1165
|
+
import type { RpcContext, RpcHandler } from '@scayle/storefront-nuxt'
|
|
1135
1166
|
|
|
1136
1167
|
export const foo: RpcHandler<string, number> = function testing(
|
|
1137
1168
|
param: string,
|
|
1138
1169
|
_: RpcContext,
|
|
1139
1170
|
) {
|
|
1140
|
-
return param.length
|
|
1141
|
-
}
|
|
1171
|
+
return param.length
|
|
1172
|
+
}
|
|
1142
1173
|
```
|
|
1143
1174
|
|
|
1144
1175
|
**module.ts**
|
|
1145
1176
|
|
|
1146
1177
|
```typescript
|
|
1147
1178
|
function setup() {
|
|
1148
|
-
const resolver = createResolver(import.meta.url)
|
|
1179
|
+
const resolver = createResolver(import.meta.url)
|
|
1149
1180
|
|
|
1150
|
-
nuxt.hook(
|
|
1181
|
+
nuxt.hook('storefront:custom-rpc:extend', (customRpcImports) => {
|
|
1151
1182
|
customRpcImports.push({
|
|
1152
|
-
source: resolver.resolve(
|
|
1153
|
-
names: [
|
|
1154
|
-
})
|
|
1155
|
-
})
|
|
1183
|
+
source: resolver.resolve('./rpc-methods.ts'),
|
|
1184
|
+
names: ['foo'],
|
|
1185
|
+
})
|
|
1186
|
+
})
|
|
1156
1187
|
}
|
|
1157
1188
|
```
|
|
1158
1189
|
|
|
@@ -1374,23 +1405,23 @@
|
|
|
1374
1405
|
storefront: {
|
|
1375
1406
|
// ...
|
|
1376
1407
|
redis: {
|
|
1377
|
-
host:
|
|
1408
|
+
host: 'localhost',
|
|
1378
1409
|
port: 6379,
|
|
1379
|
-
prefix:
|
|
1380
|
-
user:
|
|
1381
|
-
password:
|
|
1410
|
+
prefix: '',
|
|
1411
|
+
user: '',
|
|
1412
|
+
password: '',
|
|
1382
1413
|
sslTransit: false,
|
|
1383
1414
|
},
|
|
1384
1415
|
// ...
|
|
1385
1416
|
session: {
|
|
1386
1417
|
// ...
|
|
1387
|
-
provider:
|
|
1418
|
+
provider: 'redis',
|
|
1388
1419
|
},
|
|
1389
1420
|
},
|
|
1390
1421
|
// ...
|
|
1391
1422
|
},
|
|
1392
1423
|
// ...
|
|
1393
|
-
})
|
|
1424
|
+
})
|
|
1394
1425
|
```
|
|
1395
1426
|
|
|
1396
1427
|
- _Current Unified Storage Approach (`nuxt.config.ts`):_
|
|
@@ -1404,13 +1435,13 @@
|
|
|
1404
1435
|
// ...
|
|
1405
1436
|
storage: {
|
|
1406
1437
|
cache: {
|
|
1407
|
-
driver:
|
|
1408
|
-
host:
|
|
1438
|
+
driver: 'redis',
|
|
1439
|
+
host: 'localhost',
|
|
1409
1440
|
port: 6379,
|
|
1410
1441
|
},
|
|
1411
1442
|
session: {
|
|
1412
|
-
driver:
|
|
1413
|
-
host:
|
|
1443
|
+
driver: 'redis',
|
|
1444
|
+
host: 'localhost',
|
|
1414
1445
|
port: 6379,
|
|
1415
1446
|
},
|
|
1416
1447
|
// ...
|
|
@@ -1420,7 +1451,7 @@
|
|
|
1420
1451
|
// ...
|
|
1421
1452
|
},
|
|
1422
1453
|
// ...
|
|
1423
|
-
})
|
|
1454
|
+
})
|
|
1424
1455
|
```
|
|
1425
1456
|
|
|
1426
1457
|
- **\[💥 BREAKING\]** The composable `useSearch` has been replaced by `useStorefrontSearch`, consolidating and transitioning to SCAYLE Search v2.
|
|
@@ -1487,9 +1518,9 @@
|
|
|
1487
1518
|
|
|
1488
1519
|
```ts
|
|
1489
1520
|
const { activeFilters, applyFilters, resetFilterUrl, productConditions } =
|
|
1490
|
-
useQueryFilterState()
|
|
1521
|
+
useQueryFilterState()
|
|
1491
1522
|
|
|
1492
|
-
applyFilters({ brand: 23, sale: true, maxPrice: 100, minPrice: 0 })
|
|
1523
|
+
applyFilters({ brand: 23, sale: true, maxPrice: 100, minPrice: 0 })
|
|
1493
1524
|
```
|
|
1494
1525
|
|
|
1495
1526
|
- _Current Usage of `useFilter` and `useAppliedFilters`:_
|
|
@@ -1502,20 +1533,20 @@
|
|
|
1502
1533
|
resetFilters,
|
|
1503
1534
|
resetPriceFilter,
|
|
1504
1535
|
resetFilter,
|
|
1505
|
-
} = useFilter()
|
|
1536
|
+
} = useFilter()
|
|
1506
1537
|
|
|
1507
|
-
applyPriceFilter([0, 100])
|
|
1508
|
-
applyBooleanFilter(
|
|
1509
|
-
applyAttributeFilter(
|
|
1538
|
+
applyPriceFilter([0, 100])
|
|
1539
|
+
applyBooleanFilter('sale', true)
|
|
1540
|
+
applyAttributeFilter('brand', 23)
|
|
1510
1541
|
|
|
1511
|
-
const route = useRoute()
|
|
1542
|
+
const route = useRoute()
|
|
1512
1543
|
const {
|
|
1513
1544
|
appliedFilter,
|
|
1514
1545
|
appliedFiltersCount,
|
|
1515
1546
|
appliedAttributeValues,
|
|
1516
1547
|
appliedBooleanValues,
|
|
1517
1548
|
areFiltersApplied,
|
|
1518
|
-
} = useAppliedFilters(route)
|
|
1549
|
+
} = useAppliedFilters(route)
|
|
1519
1550
|
```
|
|
1520
1551
|
|
|
1521
1552
|
- **\[💥 BREAKING\]** The `getBadgeLabel` helper function has been removed, giving you more control over badge label display.
|
|
@@ -1525,43 +1556,43 @@
|
|
|
1525
1556
|
|
|
1526
1557
|
```ts
|
|
1527
1558
|
const BadgeLabel = {
|
|
1528
|
-
NEW:
|
|
1529
|
-
SOLD_OUT:
|
|
1530
|
-
ONLINE_EXCLUSIVE:
|
|
1531
|
-
SUSTAINABLE:
|
|
1532
|
-
PREMIUM:
|
|
1533
|
-
DEFAULT:
|
|
1534
|
-
} as const
|
|
1559
|
+
NEW: 'new',
|
|
1560
|
+
SOLD_OUT: 'sold_out',
|
|
1561
|
+
ONLINE_EXCLUSIVE: 'online_exclusive',
|
|
1562
|
+
SUSTAINABLE: 'sustainable',
|
|
1563
|
+
PREMIUM: 'premium',
|
|
1564
|
+
DEFAULT: '',
|
|
1565
|
+
} as const
|
|
1535
1566
|
|
|
1536
1567
|
type BadgeLabelParamsKeys =
|
|
1537
|
-
|
|
|
1538
|
-
|
|
|
1539
|
-
|
|
|
1540
|
-
|
|
|
1541
|
-
|
|
|
1542
|
-
type BadgeLabelParams = Partial<Record<BadgeLabelParamsKeys, boolean
|
|
1568
|
+
| 'isNew'
|
|
1569
|
+
| 'isSoldOut'
|
|
1570
|
+
| 'isOnlineOnly'
|
|
1571
|
+
| 'isSustainable'
|
|
1572
|
+
| 'isPremium'
|
|
1573
|
+
type BadgeLabelParams = Partial<Record<BadgeLabelParamsKeys, boolean>>
|
|
1543
1574
|
|
|
1544
1575
|
const getBadgeLabel = (params: BadgeLabelParams = {}): string => {
|
|
1545
1576
|
if (!params) {
|
|
1546
|
-
return BadgeLabel.DEFAULT
|
|
1577
|
+
return BadgeLabel.DEFAULT
|
|
1547
1578
|
}
|
|
1548
1579
|
const { isNew, isSoldOut, isOnlineOnly, isSustainable, isPremium } =
|
|
1549
|
-
params
|
|
1580
|
+
params
|
|
1550
1581
|
|
|
1551
1582
|
if (isNew) {
|
|
1552
|
-
return BadgeLabel.NEW
|
|
1583
|
+
return BadgeLabel.NEW
|
|
1553
1584
|
} else if (isSoldOut) {
|
|
1554
|
-
return BadgeLabel.SOLD_OUT
|
|
1585
|
+
return BadgeLabel.SOLD_OUT
|
|
1555
1586
|
} else if (isOnlineOnly) {
|
|
1556
|
-
return BadgeLabel.ONLINE_EXCLUSIVE
|
|
1587
|
+
return BadgeLabel.ONLINE_EXCLUSIVE
|
|
1557
1588
|
} else if (isSustainable) {
|
|
1558
|
-
return BadgeLabel.SUSTAINABLE
|
|
1589
|
+
return BadgeLabel.SUSTAINABLE
|
|
1559
1590
|
} else if (isPremium) {
|
|
1560
|
-
return BadgeLabel.PREMIUM
|
|
1591
|
+
return BadgeLabel.PREMIUM
|
|
1561
1592
|
} else {
|
|
1562
|
-
return BadgeLabel.DEFAULT
|
|
1593
|
+
return BadgeLabel.DEFAULT
|
|
1563
1594
|
}
|
|
1564
|
-
}
|
|
1595
|
+
}
|
|
1565
1596
|
```
|
|
1566
1597
|
|
|
1567
1598
|
- **\[💥 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 +1616,7 @@
|
|
|
1585
1616
|
// ...
|
|
1586
1617
|
},
|
|
1587
1618
|
// ...
|
|
1588
|
-
})
|
|
1619
|
+
})
|
|
1589
1620
|
```
|
|
1590
1621
|
|
|
1591
1622
|
- _Previous Environment Variables for Store Configuration:_
|
|
@@ -1614,7 +1645,7 @@
|
|
|
1614
1645
|
// ...
|
|
1615
1646
|
},
|
|
1616
1647
|
// ...
|
|
1617
|
-
})
|
|
1648
|
+
})
|
|
1618
1649
|
```
|
|
1619
1650
|
|
|
1620
1651
|
- _Current Environment Variables for Shops Configuration:_
|
|
@@ -1634,8 +1665,8 @@
|
|
|
1634
1665
|
```ts
|
|
1635
1666
|
useProduct({
|
|
1636
1667
|
// ...
|
|
1637
|
-
key:
|
|
1638
|
-
})
|
|
1668
|
+
key: 'productKey',
|
|
1669
|
+
})
|
|
1639
1670
|
```
|
|
1640
1671
|
|
|
1641
1672
|
- _Current `key` as dedicated composables argument:_
|
|
@@ -1645,8 +1676,8 @@
|
|
|
1645
1676
|
{
|
|
1646
1677
|
// ...
|
|
1647
1678
|
},
|
|
1648
|
-
|
|
1649
|
-
)
|
|
1679
|
+
'productKey',
|
|
1680
|
+
)
|
|
1650
1681
|
```
|
|
1651
1682
|
|
|
1652
1683
|
- **\[💥 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 +1694,27 @@
|
|
|
1663
1694
|
- _Previous Usage of `handleIDPLoginCallback`:_
|
|
1664
1695
|
|
|
1665
1696
|
```ts
|
|
1666
|
-
const { handleIDPLoginCallback } = await useIDP()
|
|
1697
|
+
const { handleIDPLoginCallback } = await useIDP()
|
|
1667
1698
|
|
|
1668
1699
|
watch(
|
|
1669
1700
|
() => route.query,
|
|
1670
1701
|
async (query) => {
|
|
1671
1702
|
if (query.code && isString(query.code)) {
|
|
1672
|
-
await handleIDPLoginCallback(query.code)
|
|
1703
|
+
await handleIDPLoginCallback(query.code)
|
|
1673
1704
|
}
|
|
1674
1705
|
},
|
|
1675
1706
|
{ immediate: true },
|
|
1676
|
-
)
|
|
1707
|
+
)
|
|
1677
1708
|
```
|
|
1678
1709
|
|
|
1679
1710
|
- _Current Usage of `loginIDP`:_
|
|
1680
1711
|
|
|
1681
1712
|
```ts
|
|
1682
|
-
const { loginIDP } = useAuthentication(
|
|
1713
|
+
const { loginIDP } = useAuthentication('login')
|
|
1683
1714
|
|
|
1684
1715
|
onMounted(async () => {
|
|
1685
|
-
await loginIDP(props.code)
|
|
1686
|
-
})
|
|
1716
|
+
await loginIDP(props.code)
|
|
1717
|
+
})
|
|
1687
1718
|
```
|
|
1688
1719
|
|
|
1689
1720
|
- **\[🧹 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 +1724,17 @@
|
|
|
1693
1724
|
- _Previous `useRpc` with `autoFetch`:_
|
|
1694
1725
|
|
|
1695
1726
|
```ts
|
|
1696
|
-
useRpc(
|
|
1727
|
+
useRpc('rpcMethod', key, params, { autoFetch: true })
|
|
1697
1728
|
|
|
1698
|
-
useUser({ autoFetch: true })
|
|
1729
|
+
useUser({ autoFetch: true })
|
|
1699
1730
|
```
|
|
1700
1731
|
|
|
1701
1732
|
- _Current `useRpc` with `immediate`:_
|
|
1702
1733
|
|
|
1703
1734
|
```ts
|
|
1704
|
-
useRpc(
|
|
1735
|
+
useRpc('rpcMethod', key, params, { immediate: true })
|
|
1705
1736
|
|
|
1706
|
-
useUser({ immediate: true })
|
|
1737
|
+
useUser({ immediate: true })
|
|
1707
1738
|
```
|
|
1708
1739
|
|
|
1709
1740
|
- **\[💥 BREAKING\]** The attribute `isCmsPreview` has been removed from `RpcContext`.
|
|
@@ -1723,18 +1754,18 @@
|
|
|
1723
1754
|
getSearchSuggestions,
|
|
1724
1755
|
fetching,
|
|
1725
1756
|
...searchData
|
|
1726
|
-
} = useStorefrontSearch(searchQuery, { key })
|
|
1757
|
+
} = useStorefrontSearch(searchQuery, { key })
|
|
1727
1758
|
|
|
1728
|
-
fetching.value
|
|
1759
|
+
fetching.value // true or false
|
|
1729
1760
|
```
|
|
1730
1761
|
|
|
1731
1762
|
- _Current `useStorefrontSearch` returning `status`:_
|
|
1732
1763
|
|
|
1733
1764
|
```ts
|
|
1734
1765
|
const { data, resolveSearch, getSearchSuggestions, status, ...searchData } =
|
|
1735
|
-
useStorefrontSearch(searchQuery, {}, key)
|
|
1766
|
+
useStorefrontSearch(searchQuery, {}, key)
|
|
1736
1767
|
|
|
1737
|
-
status.value
|
|
1768
|
+
status.value // 'idle', 'pending', 'error' or 'success'
|
|
1738
1769
|
```
|
|
1739
1770
|
|
|
1740
1771
|
- **\[💥 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 +1790,7 @@
|
|
|
1759
1790
|
// ...
|
|
1760
1791
|
},
|
|
1761
1792
|
// ...
|
|
1762
|
-
})
|
|
1793
|
+
})
|
|
1763
1794
|
```
|
|
1764
1795
|
|
|
1765
1796
|
- _Current `enableDefaultGetCachedDataOverride`in `nuxt.config.ts`:_
|
|
@@ -1784,7 +1815,7 @@
|
|
|
1784
1815
|
// ...
|
|
1785
1816
|
},
|
|
1786
1817
|
// ...
|
|
1787
|
-
})
|
|
1818
|
+
})
|
|
1788
1819
|
```
|
|
1789
1820
|
|
|
1790
1821
|
- **\[💥 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 +1837,7 @@
|
|
|
1806
1837
|
function myCustomRpc() {
|
|
1807
1838
|
// ...
|
|
1808
1839
|
|
|
1809
|
-
throw new BaseError(404)
|
|
1840
|
+
throw new BaseError(404)
|
|
1810
1841
|
}
|
|
1811
1842
|
```
|
|
1812
1843
|
|
|
@@ -1816,7 +1847,7 @@
|
|
|
1816
1847
|
function myCustomRpc() {
|
|
1817
1848
|
// ...
|
|
1818
1849
|
|
|
1819
|
-
return new Response(null, { status: 404 })
|
|
1850
|
+
return new Response(null, { status: 404 })
|
|
1820
1851
|
}
|
|
1821
1852
|
```
|
|
1822
1853
|
|
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.1",
|
|
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.1",
|
|
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"
|