@reactionary/source 0.3.0 → 0.3.2
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/core/src/client/client-builder.ts +3 -7
- package/core/src/client/client.ts +2 -3
- package/core/src/decorators/reactionary.decorator.ts +2 -2
- package/core/src/initialization.ts +11 -3
- package/core/src/providers/analytics.provider.ts +75 -0
- package/core/src/providers/cart.provider.ts +3 -0
- package/core/src/providers/category.provider.ts +1 -0
- package/core/src/providers/identity.provider.ts +5 -0
- package/core/src/schemas/errors/invalid-input.error.ts +1 -1
- package/core/src/schemas/errors/invalid-output.error.ts +1 -1
- package/core/src/schemas/models/identifiers.model.ts +3 -0
- package/core/src/schemas/models/order.model.ts +2 -2
- package/core/src/schemas/mutations/analytics/index.ts +23 -0
- package/core/src/schemas/mutations/analytics/product-add-to-cart.mutation.ts +25 -0
- package/core/src/schemas/mutations/analytics/product-details-view.mutation.ts +14 -0
- package/core/src/schemas/mutations/analytics/product-summary-click.mutation.ts +26 -0
- package/core/src/schemas/mutations/analytics/product-summary-view.mutation.ts +25 -0
- package/core/src/schemas/mutations/analytics/purchase.mutation.ts +14 -0
- package/core/src/schemas/mutations/index.ts +1 -1
- package/core/src/schemas/queries/order-search.query.ts +3 -0
- package/core/src/schemas/session.schema.ts +21 -9
- package/core/src/test/client-builder.spec.ts +60 -0
- package/core/src/zod-utils.ts +3 -1
- package/documentation/{1-purpose.md → docs/1-purpose.md} +4 -0
- package/documentation/docs/8-tracking.md +9 -0
- package/documentation/docs/providers/analytics.provider.md +297 -0
- package/documentation/docs/providers/base.provider.md +118 -0
- package/documentation/docs/providers/cart.provider.md +305 -0
- package/documentation/docs/providers/category.provider.md +244 -0
- package/documentation/docs/providers/checkout.provider.md +315 -0
- package/documentation/docs/providers/identity.provider.md +194 -0
- package/documentation/docs/providers/inventory.provider.md +162 -0
- package/documentation/docs/providers/order-search.provider.md +155 -0
- package/documentation/docs/providers/order.provider.md +160 -0
- package/documentation/docs/providers/price.provider.md +197 -0
- package/documentation/docs/providers/product-search.provider.md +265 -0
- package/documentation/docs/providers/product.provider.md +204 -0
- package/documentation/docs/providers/profile.provider.md +283 -0
- package/documentation/docs/providers/store.provider.md +146 -0
- package/documentation/docs/schemas/schemas.md +1862 -0
- package/documentation/docusaurus.config.js +33 -0
- package/documentation/scripts/generate.ts +52 -0
- package/documentation/sidebars.js +8 -0
- package/documentation/src/css/custom.css +3 -0
- package/documentation/src/pages/index.js +12 -0
- package/eslint.config.mjs +1 -1
- package/examples/node/package.json +6 -6
- package/examples/node/src/basic/basic-node-provider-model-extension.spec.ts +0 -2
- package/examples/node/src/basic/client-creation.spec.ts +2 -2
- package/package.json +19 -5
- package/providers/algolia/README.md +12 -4
- package/providers/algolia/project.json +1 -1
- package/providers/algolia/src/core/initialize.ts +7 -2
- package/providers/algolia/src/providers/analytics.provider.ts +114 -0
- package/providers/algolia/src/providers/index.ts +1 -0
- package/providers/algolia/src/providers/product-search.provider.ts +5 -4
- package/providers/algolia/src/test/analytics.spec.ts +138 -0
- package/providers/commercetools/project.json +1 -1
- package/providers/commercetools/src/providers/identity.provider.ts +8 -1
- package/providers/commercetools/src/providers/profile.provider.ts +1 -4
- package/providers/commercetools/src/test/caching.spec.ts +3 -3
- package/providers/commercetools/src/test/identity.spec.ts +2 -2
- package/providers/fake/project.json +1 -1
- package/providers/fake/src/providers/analytics.provider.ts +5 -0
- package/providers/fake/src/providers/checkout.provider.ts +5 -2
- package/providers/fake/src/providers/product.provider.ts +18 -8
- package/providers/fake/src/test/cart.provider.spec.ts +0 -2
- package/providers/fake/src/test/category.provider.spec.ts +3 -3
- package/providers/fake/src/test/checkout.provider.spec.ts +3 -7
- package/providers/google-analytics/README.md +11 -0
- package/providers/google-analytics/eslint.config.mjs +25 -0
- package/providers/google-analytics/package.json +12 -0
- package/providers/google-analytics/project.json +33 -0
- package/providers/google-analytics/src/core/initialize.ts +16 -0
- package/providers/google-analytics/src/index.ts +4 -0
- package/providers/google-analytics/src/providers/analytics.provider.ts +162 -0
- package/providers/google-analytics/src/schema/capabilities.schema.ts +10 -0
- package/providers/google-analytics/src/schema/configuration.schema.ts +9 -0
- package/providers/google-analytics/src/test/analytics.provider.spec.ts +93 -0
- package/providers/google-analytics/tsconfig.json +24 -0
- package/providers/google-analytics/tsconfig.lib.json +23 -0
- package/providers/google-analytics/tsconfig.spec.json +28 -0
- package/providers/google-analytics/vite.config.ts +26 -0
- package/providers/google-analytics/vitest.config.mts +21 -0
- package/providers/medusa/package.json +3 -10
- package/providers/medusa/project.json +1 -1
- package/providers/medusa/src/providers/identity.provider.ts +34 -10
- package/providers/medusa/src/providers/profile.provider.ts +5 -15
- package/providers/medusa/src/test/test-utils.ts +0 -1
- package/providers/medusa/tsconfig.json +3 -0
- package/providers/medusa/tsconfig.lib.json +16 -1
- package/providers/meilisearch/project.json +1 -1
- package/providers/posthog/project.json +1 -1
- package/tsconfig.base.json +4 -1
- package/.claude/settings.local.json +0 -28
- package/core/src/schemas/mutations/analytics.mutation.ts +0 -23
- package/providers/algolia/src/test/test-utils.ts +0 -31
- /package/documentation/{2-getting-started.md → docs/2-getting-started.md} +0 -0
- /package/documentation/{3-querying-and-changing-data.md → docs/3-querying-and-changing-data.md} +0 -0
- /package/documentation/{4-product-data.md → docs/4-product-data.md} +0 -0
- /package/documentation/{5-cart-and-checkout.md → docs/5-cart-and-checkout.md} +0 -0
- /package/documentation/{6-product-search.md → docs/6-product-search.md} +0 -0
- /package/documentation/{7-marketing.md → docs/7-marketing.md} +0 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
[**@reactionary/core**](README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@reactionary/core](README.md) / analytics.provider
|
|
6
|
+
|
|
7
|
+
# analytics.provider
|
|
8
|
+
|
|
9
|
+
## Providers
|
|
10
|
+
|
|
11
|
+
### `abstract` AnalyticsProvider
|
|
12
|
+
|
|
13
|
+
Defined in: [analytics.provider.ts:10](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/analytics.provider.ts#L10)
|
|
14
|
+
|
|
15
|
+
#### Extends
|
|
16
|
+
|
|
17
|
+
- [`BaseProvider`](base.provider.md#baseprovider)
|
|
18
|
+
|
|
19
|
+
#### Extended by
|
|
20
|
+
|
|
21
|
+
- [`MulticastAnalyticsProvider`](#multicastanalyticsprovider)
|
|
22
|
+
|
|
23
|
+
#### Constructors
|
|
24
|
+
|
|
25
|
+
##### Constructor
|
|
26
|
+
|
|
27
|
+
> **new AnalyticsProvider**(`cache`, `context`): [`AnalyticsProvider`](#analyticsprovider)
|
|
28
|
+
|
|
29
|
+
Defined in: [base.provider.ts:13](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L13)
|
|
30
|
+
|
|
31
|
+
###### Parameters
|
|
32
|
+
|
|
33
|
+
###### cache
|
|
34
|
+
|
|
35
|
+
`Cache`
|
|
36
|
+
|
|
37
|
+
###### context
|
|
38
|
+
|
|
39
|
+
`RequestContext`
|
|
40
|
+
|
|
41
|
+
###### Returns
|
|
42
|
+
|
|
43
|
+
[`AnalyticsProvider`](#analyticsprovider)
|
|
44
|
+
|
|
45
|
+
###### Inherited from
|
|
46
|
+
|
|
47
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`constructor`](base.provider.md#constructor)
|
|
48
|
+
|
|
49
|
+
#### Properties
|
|
50
|
+
|
|
51
|
+
##### cache
|
|
52
|
+
|
|
53
|
+
> `protected` **cache**: `Cache`
|
|
54
|
+
|
|
55
|
+
Defined in: [base.provider.ts:10](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L10)
|
|
56
|
+
|
|
57
|
+
###### Inherited from
|
|
58
|
+
|
|
59
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`cache`](base.provider.md#cache)
|
|
60
|
+
|
|
61
|
+
##### context
|
|
62
|
+
|
|
63
|
+
> `protected` **context**: `RequestContext`
|
|
64
|
+
|
|
65
|
+
Defined in: [base.provider.ts:11](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L11)
|
|
66
|
+
|
|
67
|
+
###### Inherited from
|
|
68
|
+
|
|
69
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`context`](base.provider.md#context)
|
|
70
|
+
|
|
71
|
+
#### Methods
|
|
72
|
+
|
|
73
|
+
##### generateCacheKeyForQuery()
|
|
74
|
+
|
|
75
|
+
> `protected` **generateCacheKeyForQuery**(`scope`, `query`): `string`
|
|
76
|
+
|
|
77
|
+
Defined in: [base.provider.ts:32](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L32)
|
|
78
|
+
|
|
79
|
+
###### Parameters
|
|
80
|
+
|
|
81
|
+
###### scope
|
|
82
|
+
|
|
83
|
+
`string`
|
|
84
|
+
|
|
85
|
+
###### query
|
|
86
|
+
|
|
87
|
+
`object`
|
|
88
|
+
|
|
89
|
+
###### Returns
|
|
90
|
+
|
|
91
|
+
`string`
|
|
92
|
+
|
|
93
|
+
###### Inherited from
|
|
94
|
+
|
|
95
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`generateCacheKeyForQuery`](base.provider.md#generatecachekeyforquery)
|
|
96
|
+
|
|
97
|
+
##### generateDependencyIdsForModel()
|
|
98
|
+
|
|
99
|
+
> **generateDependencyIdsForModel**(`model`): `string`[]
|
|
100
|
+
|
|
101
|
+
Defined in: [base.provider.ts:18](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L18)
|
|
102
|
+
|
|
103
|
+
###### Parameters
|
|
104
|
+
|
|
105
|
+
###### model
|
|
106
|
+
|
|
107
|
+
`unknown`
|
|
108
|
+
|
|
109
|
+
###### Returns
|
|
110
|
+
|
|
111
|
+
`string`[]
|
|
112
|
+
|
|
113
|
+
###### Inherited from
|
|
114
|
+
|
|
115
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`generateDependencyIdsForModel`](base.provider.md#generatedependencyidsformodel)
|
|
116
|
+
|
|
117
|
+
##### getResourceName()
|
|
118
|
+
|
|
119
|
+
> `protected` **getResourceName**(): `string`
|
|
120
|
+
|
|
121
|
+
Defined in: [analytics.provider.ts:11](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/analytics.provider.ts#L11)
|
|
122
|
+
|
|
123
|
+
Returns the abstract resource name provided by the remote system.
|
|
124
|
+
|
|
125
|
+
###### Returns
|
|
126
|
+
|
|
127
|
+
`string`
|
|
128
|
+
|
|
129
|
+
###### Overrides
|
|
130
|
+
|
|
131
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`getResourceName`](base.provider.md#getresourcename)
|
|
132
|
+
|
|
133
|
+
##### track()
|
|
134
|
+
|
|
135
|
+
> `abstract` **track**(`event`): `Promise`\<`void`\>
|
|
136
|
+
|
|
137
|
+
Defined in: [analytics.provider.ts:15](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/analytics.provider.ts#L15)
|
|
138
|
+
|
|
139
|
+
###### Parameters
|
|
140
|
+
|
|
141
|
+
###### event
|
|
142
|
+
|
|
143
|
+
`AnalyticsMutation`
|
|
144
|
+
|
|
145
|
+
###### Returns
|
|
146
|
+
|
|
147
|
+
`Promise`\<`void`\>
|
|
148
|
+
|
|
149
|
+
***
|
|
150
|
+
|
|
151
|
+
### MulticastAnalyticsProvider
|
|
152
|
+
|
|
153
|
+
Defined in: [analytics.provider.ts:18](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/analytics.provider.ts#L18)
|
|
154
|
+
|
|
155
|
+
#### Extends
|
|
156
|
+
|
|
157
|
+
- [`AnalyticsProvider`](#analyticsprovider)
|
|
158
|
+
|
|
159
|
+
#### Constructors
|
|
160
|
+
|
|
161
|
+
##### Constructor
|
|
162
|
+
|
|
163
|
+
> **new MulticastAnalyticsProvider**(`cache`, `requestContext`, `providers`): [`MulticastAnalyticsProvider`](#multicastanalyticsprovider)
|
|
164
|
+
|
|
165
|
+
Defined in: [analytics.provider.ts:21](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/analytics.provider.ts#L21)
|
|
166
|
+
|
|
167
|
+
###### Parameters
|
|
168
|
+
|
|
169
|
+
###### cache
|
|
170
|
+
|
|
171
|
+
`Cache`
|
|
172
|
+
|
|
173
|
+
###### requestContext
|
|
174
|
+
|
|
175
|
+
`RequestContext`
|
|
176
|
+
|
|
177
|
+
###### providers
|
|
178
|
+
|
|
179
|
+
[`AnalyticsProvider`](#analyticsprovider)[]
|
|
180
|
+
|
|
181
|
+
###### Returns
|
|
182
|
+
|
|
183
|
+
[`MulticastAnalyticsProvider`](#multicastanalyticsprovider)
|
|
184
|
+
|
|
185
|
+
###### Overrides
|
|
186
|
+
|
|
187
|
+
[`AnalyticsProvider`](#analyticsprovider).[`constructor`](#constructor)
|
|
188
|
+
|
|
189
|
+
#### Properties
|
|
190
|
+
|
|
191
|
+
##### cache
|
|
192
|
+
|
|
193
|
+
> `protected` **cache**: `Cache`
|
|
194
|
+
|
|
195
|
+
Defined in: [base.provider.ts:10](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L10)
|
|
196
|
+
|
|
197
|
+
###### Inherited from
|
|
198
|
+
|
|
199
|
+
[`AnalyticsProvider`](#analyticsprovider).[`cache`](#cache)
|
|
200
|
+
|
|
201
|
+
##### context
|
|
202
|
+
|
|
203
|
+
> `protected` **context**: `RequestContext`
|
|
204
|
+
|
|
205
|
+
Defined in: [base.provider.ts:11](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L11)
|
|
206
|
+
|
|
207
|
+
###### Inherited from
|
|
208
|
+
|
|
209
|
+
[`AnalyticsProvider`](#analyticsprovider).[`context`](#context)
|
|
210
|
+
|
|
211
|
+
##### providers
|
|
212
|
+
|
|
213
|
+
> `protected` **providers**: [`AnalyticsProvider`](#analyticsprovider)[]
|
|
214
|
+
|
|
215
|
+
Defined in: [analytics.provider.ts:19](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/analytics.provider.ts#L19)
|
|
216
|
+
|
|
217
|
+
#### Methods
|
|
218
|
+
|
|
219
|
+
##### generateCacheKeyForQuery()
|
|
220
|
+
|
|
221
|
+
> `protected` **generateCacheKeyForQuery**(`scope`, `query`): `string`
|
|
222
|
+
|
|
223
|
+
Defined in: [base.provider.ts:32](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L32)
|
|
224
|
+
|
|
225
|
+
###### Parameters
|
|
226
|
+
|
|
227
|
+
###### scope
|
|
228
|
+
|
|
229
|
+
`string`
|
|
230
|
+
|
|
231
|
+
###### query
|
|
232
|
+
|
|
233
|
+
`object`
|
|
234
|
+
|
|
235
|
+
###### Returns
|
|
236
|
+
|
|
237
|
+
`string`
|
|
238
|
+
|
|
239
|
+
###### Inherited from
|
|
240
|
+
|
|
241
|
+
[`AnalyticsProvider`](#analyticsprovider).[`generateCacheKeyForQuery`](#generatecachekeyforquery)
|
|
242
|
+
|
|
243
|
+
##### generateDependencyIdsForModel()
|
|
244
|
+
|
|
245
|
+
> **generateDependencyIdsForModel**(`model`): `string`[]
|
|
246
|
+
|
|
247
|
+
Defined in: [base.provider.ts:18](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L18)
|
|
248
|
+
|
|
249
|
+
###### Parameters
|
|
250
|
+
|
|
251
|
+
###### model
|
|
252
|
+
|
|
253
|
+
`unknown`
|
|
254
|
+
|
|
255
|
+
###### Returns
|
|
256
|
+
|
|
257
|
+
`string`[]
|
|
258
|
+
|
|
259
|
+
###### Inherited from
|
|
260
|
+
|
|
261
|
+
[`AnalyticsProvider`](#analyticsprovider).[`generateDependencyIdsForModel`](#generatedependencyidsformodel)
|
|
262
|
+
|
|
263
|
+
##### getResourceName()
|
|
264
|
+
|
|
265
|
+
> `protected` **getResourceName**(): `string`
|
|
266
|
+
|
|
267
|
+
Defined in: [analytics.provider.ts:11](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/analytics.provider.ts#L11)
|
|
268
|
+
|
|
269
|
+
Returns the abstract resource name provided by the remote system.
|
|
270
|
+
|
|
271
|
+
###### Returns
|
|
272
|
+
|
|
273
|
+
`string`
|
|
274
|
+
|
|
275
|
+
###### Inherited from
|
|
276
|
+
|
|
277
|
+
[`AnalyticsProvider`](#analyticsprovider).[`getResourceName`](#getresourcename)
|
|
278
|
+
|
|
279
|
+
##### track()
|
|
280
|
+
|
|
281
|
+
> **track**(`event`): `Promise`\<`void`\>
|
|
282
|
+
|
|
283
|
+
Defined in: [analytics.provider.ts:30](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/analytics.provider.ts#L30)
|
|
284
|
+
|
|
285
|
+
###### Parameters
|
|
286
|
+
|
|
287
|
+
###### event
|
|
288
|
+
|
|
289
|
+
`AnalyticsMutation`
|
|
290
|
+
|
|
291
|
+
###### Returns
|
|
292
|
+
|
|
293
|
+
`Promise`\<`void`\>
|
|
294
|
+
|
|
295
|
+
###### Overrides
|
|
296
|
+
|
|
297
|
+
[`AnalyticsProvider`](#analyticsprovider).[`track`](#track)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
[**@reactionary/core**](README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@reactionary/core](README.md) / base.provider
|
|
6
|
+
|
|
7
|
+
# base.provider
|
|
8
|
+
|
|
9
|
+
## Classes
|
|
10
|
+
|
|
11
|
+
### `abstract` BaseProvider
|
|
12
|
+
|
|
13
|
+
Defined in: [base.provider.ts:9](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L9)
|
|
14
|
+
|
|
15
|
+
Base capability provider, responsible for mutations (changes) and queries (fetches)
|
|
16
|
+
for a given business object domain.
|
|
17
|
+
|
|
18
|
+
#### Extended by
|
|
19
|
+
|
|
20
|
+
- [`AnalyticsProvider`](analytics.provider.md#analyticsprovider)
|
|
21
|
+
- [`CartProvider`](cart.provider.md#cartprovider)
|
|
22
|
+
- [`CategoryProvider`](category.provider.md#categoryprovider)
|
|
23
|
+
- [`CheckoutProvider`](checkout.provider.md#checkoutprovider)
|
|
24
|
+
- [`IdentityProvider`](identity.provider.md#identityprovider)
|
|
25
|
+
- [`InventoryProvider`](inventory.provider.md#inventoryprovider)
|
|
26
|
+
- [`OrderSearchProvider`](order-search.provider.md#ordersearchprovider)
|
|
27
|
+
- [`OrderProvider`](order.provider.md#orderprovider)
|
|
28
|
+
- [`PriceProvider`](price.provider.md#priceprovider)
|
|
29
|
+
- [`ProductSearchProvider`](product-search.provider.md#productsearchprovider)
|
|
30
|
+
- [`ProductProvider`](product.provider.md#productprovider)
|
|
31
|
+
- [`ProfileProvider`](profile.provider.md#profileprovider)
|
|
32
|
+
- [`StoreProvider`](store.provider.md#storeprovider)
|
|
33
|
+
|
|
34
|
+
#### Constructors
|
|
35
|
+
|
|
36
|
+
##### Constructor
|
|
37
|
+
|
|
38
|
+
> **new BaseProvider**(`cache`, `context`): [`BaseProvider`](#baseprovider)
|
|
39
|
+
|
|
40
|
+
Defined in: [base.provider.ts:13](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L13)
|
|
41
|
+
|
|
42
|
+
###### Parameters
|
|
43
|
+
|
|
44
|
+
###### cache
|
|
45
|
+
|
|
46
|
+
`Cache`
|
|
47
|
+
|
|
48
|
+
###### context
|
|
49
|
+
|
|
50
|
+
`RequestContext`
|
|
51
|
+
|
|
52
|
+
###### Returns
|
|
53
|
+
|
|
54
|
+
[`BaseProvider`](#baseprovider)
|
|
55
|
+
|
|
56
|
+
#### Properties
|
|
57
|
+
|
|
58
|
+
##### cache
|
|
59
|
+
|
|
60
|
+
> `protected` **cache**: `Cache`
|
|
61
|
+
|
|
62
|
+
Defined in: [base.provider.ts:10](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L10)
|
|
63
|
+
|
|
64
|
+
##### context
|
|
65
|
+
|
|
66
|
+
> `protected` **context**: `RequestContext`
|
|
67
|
+
|
|
68
|
+
Defined in: [base.provider.ts:11](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L11)
|
|
69
|
+
|
|
70
|
+
#### Methods
|
|
71
|
+
|
|
72
|
+
##### generateCacheKeyForQuery()
|
|
73
|
+
|
|
74
|
+
> `protected` **generateCacheKeyForQuery**(`scope`, `query`): `string`
|
|
75
|
+
|
|
76
|
+
Defined in: [base.provider.ts:32](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L32)
|
|
77
|
+
|
|
78
|
+
###### Parameters
|
|
79
|
+
|
|
80
|
+
###### scope
|
|
81
|
+
|
|
82
|
+
`string`
|
|
83
|
+
|
|
84
|
+
###### query
|
|
85
|
+
|
|
86
|
+
`object`
|
|
87
|
+
|
|
88
|
+
###### Returns
|
|
89
|
+
|
|
90
|
+
`string`
|
|
91
|
+
|
|
92
|
+
##### generateDependencyIdsForModel()
|
|
93
|
+
|
|
94
|
+
> **generateDependencyIdsForModel**(`model`): `string`[]
|
|
95
|
+
|
|
96
|
+
Defined in: [base.provider.ts:18](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L18)
|
|
97
|
+
|
|
98
|
+
###### Parameters
|
|
99
|
+
|
|
100
|
+
###### model
|
|
101
|
+
|
|
102
|
+
`unknown`
|
|
103
|
+
|
|
104
|
+
###### Returns
|
|
105
|
+
|
|
106
|
+
`string`[]
|
|
107
|
+
|
|
108
|
+
##### getResourceName()
|
|
109
|
+
|
|
110
|
+
> `abstract` `protected` **getResourceName**(): `string`
|
|
111
|
+
|
|
112
|
+
Defined in: [base.provider.ts:46](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L46)
|
|
113
|
+
|
|
114
|
+
Returns the abstract resource name provided by the remote system.
|
|
115
|
+
|
|
116
|
+
###### Returns
|
|
117
|
+
|
|
118
|
+
`string`
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
[**@reactionary/core**](README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@reactionary/core](README.md) / cart.provider
|
|
6
|
+
|
|
7
|
+
# cart.provider
|
|
8
|
+
|
|
9
|
+
## Providers
|
|
10
|
+
|
|
11
|
+
### `abstract` CartProvider
|
|
12
|
+
|
|
13
|
+
Defined in: [cart.provider.ts:12](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L12)
|
|
14
|
+
|
|
15
|
+
#### Extends
|
|
16
|
+
|
|
17
|
+
- [`BaseProvider`](base.provider.md#baseprovider)
|
|
18
|
+
|
|
19
|
+
#### Constructors
|
|
20
|
+
|
|
21
|
+
##### Constructor
|
|
22
|
+
|
|
23
|
+
> **new CartProvider**(`cache`, `context`): [`CartProvider`](#cartprovider)
|
|
24
|
+
|
|
25
|
+
Defined in: [base.provider.ts:13](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L13)
|
|
26
|
+
|
|
27
|
+
###### Parameters
|
|
28
|
+
|
|
29
|
+
###### cache
|
|
30
|
+
|
|
31
|
+
`Cache`
|
|
32
|
+
|
|
33
|
+
###### context
|
|
34
|
+
|
|
35
|
+
`RequestContext`
|
|
36
|
+
|
|
37
|
+
###### Returns
|
|
38
|
+
|
|
39
|
+
[`CartProvider`](#cartprovider)
|
|
40
|
+
|
|
41
|
+
###### Inherited from
|
|
42
|
+
|
|
43
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`constructor`](base.provider.md#constructor)
|
|
44
|
+
|
|
45
|
+
#### Properties
|
|
46
|
+
|
|
47
|
+
##### cache
|
|
48
|
+
|
|
49
|
+
> `protected` **cache**: `Cache`
|
|
50
|
+
|
|
51
|
+
Defined in: [base.provider.ts:10](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L10)
|
|
52
|
+
|
|
53
|
+
###### Inherited from
|
|
54
|
+
|
|
55
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`cache`](base.provider.md#cache)
|
|
56
|
+
|
|
57
|
+
##### context
|
|
58
|
+
|
|
59
|
+
> `protected` **context**: `RequestContext`
|
|
60
|
+
|
|
61
|
+
Defined in: [base.provider.ts:11](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L11)
|
|
62
|
+
|
|
63
|
+
###### Inherited from
|
|
64
|
+
|
|
65
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`context`](base.provider.md#context)
|
|
66
|
+
|
|
67
|
+
#### Methods
|
|
68
|
+
|
|
69
|
+
##### add()
|
|
70
|
+
|
|
71
|
+
> `abstract` **add**(`payload`): `Promise`\<`Result`\<`Cart`\>\>
|
|
72
|
+
|
|
73
|
+
Defined in: [cart.provider.ts:42](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L42)
|
|
74
|
+
|
|
75
|
+
Add item to cart. If no cart exists, create a new one. Returns the updated and recalculated cart.
|
|
76
|
+
Does not automatically consolidate items, so if you want to have second add of same item to increase quantity,
|
|
77
|
+
you need to handle that in your logic or on the server.
|
|
78
|
+
|
|
79
|
+
Usecase: Add item to cart, create cart if none exists.
|
|
80
|
+
|
|
81
|
+
###### Parameters
|
|
82
|
+
|
|
83
|
+
###### payload
|
|
84
|
+
|
|
85
|
+
`CartMutationItemAdd`
|
|
86
|
+
|
|
87
|
+
###### Returns
|
|
88
|
+
|
|
89
|
+
`Promise`\<`Result`\<`Cart`\>\>
|
|
90
|
+
|
|
91
|
+
##### applyCouponCode()
|
|
92
|
+
|
|
93
|
+
> `abstract` **applyCouponCode**(`payload`): `Promise`\<`Result`\<`Cart`\>\>
|
|
94
|
+
|
|
95
|
+
Defined in: [cart.provider.ts:81](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L81)
|
|
96
|
+
|
|
97
|
+
Applies a coupon code to the cart. Returns the updated and recalculated cart.
|
|
98
|
+
|
|
99
|
+
Usecase: User applies a coupon code during checkout.
|
|
100
|
+
|
|
101
|
+
###### Parameters
|
|
102
|
+
|
|
103
|
+
###### payload
|
|
104
|
+
|
|
105
|
+
`CartMutationApplyCoupon`
|
|
106
|
+
|
|
107
|
+
###### Returns
|
|
108
|
+
|
|
109
|
+
`Promise`\<`Result`\<`Cart`\>\>
|
|
110
|
+
|
|
111
|
+
##### changeCurrency()
|
|
112
|
+
|
|
113
|
+
> `abstract` **changeCurrency**(`payload`): `Promise`\<`Result`\<`Cart`\>\>
|
|
114
|
+
|
|
115
|
+
Defined in: [cart.provider.ts:100](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L100)
|
|
116
|
+
|
|
117
|
+
Changes the currency of the cart.
|
|
118
|
+
|
|
119
|
+
Usecase: User wants to change the currency for his session. This will change the currency of the cart, and recalculate prices.
|
|
120
|
+
|
|
121
|
+
###### Parameters
|
|
122
|
+
|
|
123
|
+
###### payload
|
|
124
|
+
|
|
125
|
+
`CartMutationChangeCurrency`
|
|
126
|
+
|
|
127
|
+
###### Returns
|
|
128
|
+
|
|
129
|
+
`Promise`\<`Result`\<`Cart`\>\>
|
|
130
|
+
|
|
131
|
+
##### changeQuantity()
|
|
132
|
+
|
|
133
|
+
> `abstract` **changeQuantity**(`payload`): `Promise`\<`Result`\<`Cart`\>\>
|
|
134
|
+
|
|
135
|
+
Defined in: [cart.provider.ts:62](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L62)
|
|
136
|
+
|
|
137
|
+
Change quantity of item in cart. If the cart is empty after change, delete the cart. Returns the updated and recalculated cart.
|
|
138
|
+
Changing quantity to 0 is not allowed. Use the remove call instead. This is done to avoid accidental removal of item.
|
|
139
|
+
Calls with quantity 0 will just be ignored.
|
|
140
|
+
|
|
141
|
+
Usecase: Change quantity of item in cart, like in a minicart, or in the full cart view.
|
|
142
|
+
|
|
143
|
+
###### Parameters
|
|
144
|
+
|
|
145
|
+
###### payload
|
|
146
|
+
|
|
147
|
+
`CartMutationItemQuantityChange`
|
|
148
|
+
|
|
149
|
+
###### Returns
|
|
150
|
+
|
|
151
|
+
`Promise`\<`Result`\<`Cart`\>\>
|
|
152
|
+
|
|
153
|
+
##### deleteCart()
|
|
154
|
+
|
|
155
|
+
> `abstract` **deleteCart**(`payload`): `Promise`\<`Result`\<`void`\>\>
|
|
156
|
+
|
|
157
|
+
Defined in: [cart.provider.ts:72](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L72)
|
|
158
|
+
|
|
159
|
+
Deletes the entire cart.
|
|
160
|
+
|
|
161
|
+
Usecase: User wants to empty the cart or something is wrong with the current cart, and you want to clear it out and start fresh.
|
|
162
|
+
|
|
163
|
+
###### Parameters
|
|
164
|
+
|
|
165
|
+
###### payload
|
|
166
|
+
|
|
167
|
+
`CartMutationDeleteCart`
|
|
168
|
+
|
|
169
|
+
###### Returns
|
|
170
|
+
|
|
171
|
+
`Promise`\<`Result`\<`void`\>\>
|
|
172
|
+
|
|
173
|
+
##### generateCacheKeyForQuery()
|
|
174
|
+
|
|
175
|
+
> `protected` **generateCacheKeyForQuery**(`scope`, `query`): `string`
|
|
176
|
+
|
|
177
|
+
Defined in: [base.provider.ts:32](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L32)
|
|
178
|
+
|
|
179
|
+
###### Parameters
|
|
180
|
+
|
|
181
|
+
###### scope
|
|
182
|
+
|
|
183
|
+
`string`
|
|
184
|
+
|
|
185
|
+
###### query
|
|
186
|
+
|
|
187
|
+
`object`
|
|
188
|
+
|
|
189
|
+
###### Returns
|
|
190
|
+
|
|
191
|
+
`string`
|
|
192
|
+
|
|
193
|
+
###### Inherited from
|
|
194
|
+
|
|
195
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`generateCacheKeyForQuery`](base.provider.md#generatecachekeyforquery)
|
|
196
|
+
|
|
197
|
+
##### generateDependencyIdsForModel()
|
|
198
|
+
|
|
199
|
+
> **generateDependencyIdsForModel**(`model`): `string`[]
|
|
200
|
+
|
|
201
|
+
Defined in: [base.provider.ts:18](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/base.provider.ts#L18)
|
|
202
|
+
|
|
203
|
+
###### Parameters
|
|
204
|
+
|
|
205
|
+
###### model
|
|
206
|
+
|
|
207
|
+
`unknown`
|
|
208
|
+
|
|
209
|
+
###### Returns
|
|
210
|
+
|
|
211
|
+
`string`[]
|
|
212
|
+
|
|
213
|
+
###### Inherited from
|
|
214
|
+
|
|
215
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`generateDependencyIdsForModel`](base.provider.md#generatedependencyidsformodel)
|
|
216
|
+
|
|
217
|
+
##### getActiveCartId()
|
|
218
|
+
|
|
219
|
+
> `abstract` **getActiveCartId**(): `Promise`\<`Result`\<`CartIdentifier`, `NotFoundError`\>\>
|
|
220
|
+
|
|
221
|
+
Defined in: [cart.provider.ts:30](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L30)
|
|
222
|
+
|
|
223
|
+
Get the active cart id for the user.
|
|
224
|
+
|
|
225
|
+
Usecase: Most common usecase during site load, or after login. You want to get the active cart for the user, so you can display it in the minicart.
|
|
226
|
+
|
|
227
|
+
###### Returns
|
|
228
|
+
|
|
229
|
+
`Promise`\<`Result`\<`CartIdentifier`, `NotFoundError`\>\>
|
|
230
|
+
|
|
231
|
+
##### getById()
|
|
232
|
+
|
|
233
|
+
> `abstract` **getById**(`payload`): `Promise`\<`Result`\<`Cart`, `NotFoundError`\>\>
|
|
234
|
+
|
|
235
|
+
Defined in: [cart.provider.ts:21](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L21)
|
|
236
|
+
|
|
237
|
+
Get cart by ID.
|
|
238
|
+
|
|
239
|
+
Usecase: Unclear, until we support multiple carts per user.
|
|
240
|
+
|
|
241
|
+
###### Parameters
|
|
242
|
+
|
|
243
|
+
###### payload
|
|
244
|
+
|
|
245
|
+
`CartQueryById`
|
|
246
|
+
|
|
247
|
+
###### Returns
|
|
248
|
+
|
|
249
|
+
`Promise`\<`Result`\<`Cart`, `NotFoundError`\>\>
|
|
250
|
+
|
|
251
|
+
##### getResourceName()
|
|
252
|
+
|
|
253
|
+
> `protected` **getResourceName**(): `string`
|
|
254
|
+
|
|
255
|
+
Defined in: [cart.provider.ts:102](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L102)
|
|
256
|
+
|
|
257
|
+
Returns the abstract resource name provided by the remote system.
|
|
258
|
+
|
|
259
|
+
###### Returns
|
|
260
|
+
|
|
261
|
+
`string`
|
|
262
|
+
|
|
263
|
+
###### Overrides
|
|
264
|
+
|
|
265
|
+
[`BaseProvider`](base.provider.md#baseprovider).[`getResourceName`](base.provider.md#getresourcename)
|
|
266
|
+
|
|
267
|
+
##### remove()
|
|
268
|
+
|
|
269
|
+
> `abstract` **remove**(`payload`): `Promise`\<`Result`\<`Cart`\>\>
|
|
270
|
+
|
|
271
|
+
Defined in: [cart.provider.ts:51](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L51)
|
|
272
|
+
|
|
273
|
+
Remove item from cart. If the cart is empty after removal, delete the cart. Returns the updated and recalculated cart.
|
|
274
|
+
|
|
275
|
+
Usecase: Remove item from cart, delete cart if empty.
|
|
276
|
+
|
|
277
|
+
###### Parameters
|
|
278
|
+
|
|
279
|
+
###### payload
|
|
280
|
+
|
|
281
|
+
`CartMutationItemRemove`
|
|
282
|
+
|
|
283
|
+
###### Returns
|
|
284
|
+
|
|
285
|
+
`Promise`\<`Result`\<`Cart`\>\>
|
|
286
|
+
|
|
287
|
+
##### removeCouponCode()
|
|
288
|
+
|
|
289
|
+
> `abstract` **removeCouponCode**(`payload`): `Promise`\<`Result`\<`Cart`\>\>
|
|
290
|
+
|
|
291
|
+
Defined in: [cart.provider.ts:91](https://github.com/Solteq/reactionary/blob/ca9304f3dfc56eb7283e5bdf90b26f13d42dce7d/core/src/providers/cart.provider.ts#L91)
|
|
292
|
+
|
|
293
|
+
Removes a coupon code from the cart. Returns the updated and recalculated cart.
|
|
294
|
+
|
|
295
|
+
Usecase: User removes a coupon code during checkout.
|
|
296
|
+
|
|
297
|
+
###### Parameters
|
|
298
|
+
|
|
299
|
+
###### payload
|
|
300
|
+
|
|
301
|
+
`CartMutationRemoveCoupon`
|
|
302
|
+
|
|
303
|
+
###### Returns
|
|
304
|
+
|
|
305
|
+
`Promise`\<`Result`\<`Cart`\>\>
|