@labdigital/commercetools-mock 1.5.0 → 1.6.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/README.md +5 -4
- package/dist/index.cjs +117 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -7
- package/dist/index.d.ts +30 -7
- package/dist/index.js +117 -17
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/constants.ts +2 -2
- package/src/ctMock.ts +176 -176
- package/src/exceptions.ts +10 -10
- package/src/helpers.ts +26 -26
- package/src/index.test.ts +173 -173
- package/src/index.ts +3 -3
- package/src/lib/expandParser.ts +19 -19
- package/src/lib/haversine.test.ts +13 -13
- package/src/lib/haversine.ts +14 -14
- package/src/lib/masking.ts +15 -15
- package/src/lib/parser.ts +2 -2
- package/src/lib/predicateParser.test.ts +204 -204
- package/src/lib/predicateParser.ts +398 -398
- package/src/lib/projectionSearchFilter.test.ts +168 -168
- package/src/lib/projectionSearchFilter.ts +272 -269
- package/src/lib/proxy.ts +8 -8
- package/src/oauth/errors.ts +4 -4
- package/src/oauth/helpers.ts +6 -6
- package/src/oauth/server.ts +103 -101
- package/src/oauth/store.ts +27 -27
- package/src/priceSelector.test.ts +68 -68
- package/src/priceSelector.ts +70 -70
- package/src/product-projection-search.ts +296 -296
- package/src/projectAPI.test.ts +3 -3
- package/src/projectAPI.ts +46 -46
- package/src/repositories/abstract.ts +190 -190
- package/src/repositories/associate-role.ts +10 -7
- package/src/repositories/attribute-group.ts +63 -8
- package/src/repositories/business-unit.ts +10 -7
- package/src/repositories/cart-discount.ts +134 -134
- package/src/repositories/cart.ts +517 -514
- package/src/repositories/category.ts +170 -167
- package/src/repositories/channel.ts +114 -111
- package/src/repositories/custom-object.ts +66 -63
- package/src/repositories/customer-group.ts +72 -69
- package/src/repositories/customer.ts +90 -90
- package/src/repositories/discount-code.ts +171 -168
- package/src/repositories/errors.ts +15 -15
- package/src/repositories/extension.ts +79 -76
- package/src/repositories/helpers.ts +180 -180
- package/src/repositories/index.ts +39 -39
- package/src/repositories/inventory-entry.ts +98 -95
- package/src/repositories/my-order.ts +11 -11
- package/src/repositories/order-edit.ts +29 -29
- package/src/repositories/order.test.ts +191 -191
- package/src/repositories/order.ts +393 -393
- package/src/repositories/payment.ts +155 -155
- package/src/repositories/product-discount.ts +149 -149
- package/src/repositories/product-projection.ts +135 -50
- package/src/repositories/product-selection.ts +31 -31
- package/src/repositories/product-type.ts +156 -156
- package/src/repositories/product.ts +600 -597
- package/src/repositories/project.ts +136 -135
- package/src/repositories/quote-request.ts +19 -19
- package/src/repositories/quote.ts +19 -19
- package/src/repositories/review.ts +24 -24
- package/src/repositories/shipping-method.ts +217 -217
- package/src/repositories/shopping-list.ts +49 -49
- package/src/repositories/staged-quote.ts +20 -20
- package/src/repositories/standalone-price.ts +72 -61
- package/src/repositories/state.ts +84 -84
- package/src/repositories/store.ts +114 -114
- package/src/repositories/subscription.ts +40 -40
- package/src/repositories/tax-category.ts +98 -98
- package/src/repositories/type.ts +157 -157
- package/src/repositories/zone.ts +71 -71
- package/src/server.ts +2 -2
- package/src/services/abstract.ts +173 -173
- package/src/services/attribute-group.ts +16 -0
- package/src/services/cart-discount.ts +8 -8
- package/src/services/cart.test.ts +409 -409
- package/src/services/cart.ts +50 -50
- package/src/services/category.test.ts +25 -25
- package/src/services/category.ts +8 -8
- package/src/services/channel.ts +8 -8
- package/src/services/custom-object.test.ts +184 -184
- package/src/services/custom-object.ts +48 -48
- package/src/services/customer-group.ts +8 -8
- package/src/services/customer.test.ts +151 -151
- package/src/services/customer.ts +27 -27
- package/src/services/discount-code.ts +8 -8
- package/src/services/extension.ts +8 -8
- package/src/services/index.ts +52 -44
- package/src/services/inventory-entry.test.ts +162 -162
- package/src/services/inventory-entry.ts +8 -8
- package/src/services/my-cart.test.ts +78 -78
- package/src/services/my-cart.ts +28 -28
- package/src/services/my-customer.test.ts +44 -44
- package/src/services/my-customer.ts +53 -53
- package/src/services/my-order.ts +20 -20
- package/src/services/my-payment.test.ts +65 -65
- package/src/services/my-payment.ts +8 -8
- package/src/services/order.test.ts +527 -527
- package/src/services/order.ts +31 -31
- package/src/services/payment.test.ts +65 -65
- package/src/services/payment.ts +8 -8
- package/src/services/product-discount.ts +8 -8
- package/src/services/product-projection.test.ts +502 -428
- package/src/services/product-projection.ts +32 -18
- package/src/services/product-type.test.ts +56 -56
- package/src/services/product-type.ts +8 -8
- package/src/services/product.test.ts +510 -510
- package/src/services/product.ts +8 -8
- package/src/services/project.ts +34 -34
- package/src/services/shipping-method.test.ts +81 -81
- package/src/services/shipping-method.ts +12 -12
- package/src/services/shopping-list.ts +8 -8
- package/src/services/standalone-price.test.ts +256 -256
- package/src/services/standalone-price.ts +8 -8
- package/src/services/state.test.ts +42 -42
- package/src/services/state.ts +8 -8
- package/src/services/store.test.ts +57 -57
- package/src/services/store.ts +8 -8
- package/src/services/subscription.ts +8 -8
- package/src/services/tax-category.test.ts +61 -61
- package/src/services/tax-category.ts +8 -8
- package/src/services/type.ts +8 -8
- package/src/services/zone.ts +8 -8
- package/src/storage/abstract.ts +58 -58
- package/src/storage/in-memory.ts +419 -419
- package/src/types.ts +82 -82
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
2
|
+
Address,
|
|
3
|
+
BaseAddress,
|
|
4
|
+
CentPrecisionMoney,
|
|
5
|
+
CustomFields,
|
|
6
|
+
CustomFieldsDraft,
|
|
7
|
+
HighPrecisionMoney,
|
|
8
|
+
HighPrecisionMoneyDraft,
|
|
9
|
+
InvalidJsonInputError,
|
|
10
|
+
Price,
|
|
11
|
+
PriceDraft,
|
|
12
|
+
Reference,
|
|
13
|
+
ReferencedResourceNotFoundError,
|
|
14
|
+
ResourceIdentifier,
|
|
15
|
+
Store,
|
|
16
|
+
StoreKeyReference,
|
|
17
|
+
StoreReference,
|
|
18
|
+
StoreResourceIdentifier,
|
|
19
|
+
Type,
|
|
20
|
+
TypedMoney,
|
|
21
|
+
_Money,
|
|
22
22
|
} from '@commercetools/platform-sdk'
|
|
23
23
|
import type { Request } from 'express'
|
|
24
24
|
import { v4 as uuidv4 } from 'uuid'
|
|
@@ -27,195 +27,195 @@ import { AbstractStorage } from '../storage/index.js'
|
|
|
27
27
|
import { type RepositoryContext } from './abstract.js'
|
|
28
28
|
|
|
29
29
|
export const createAddress = (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
base: BaseAddress | undefined,
|
|
31
|
+
projectKey: string,
|
|
32
|
+
storage: AbstractStorage
|
|
33
33
|
): Address | undefined => {
|
|
34
|
-
|
|
34
|
+
if (!base) return undefined
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
if (!base?.country) {
|
|
37
|
+
throw new Error('Country is required')
|
|
38
|
+
}
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
return {
|
|
41
|
+
...base,
|
|
42
|
+
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export const createCustomFields = (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
draft: CustomFieldsDraft | undefined,
|
|
47
|
+
projectKey: string,
|
|
48
|
+
storage: AbstractStorage
|
|
49
49
|
): CustomFields | undefined => {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
50
|
+
if (!draft) return undefined
|
|
51
|
+
if (!draft.type) return undefined
|
|
52
|
+
if (!draft.type.typeId) return undefined
|
|
53
|
+
if (!draft.fields) return undefined
|
|
54
|
+
const typeResource = storage.getByResourceIdentifier(
|
|
55
|
+
projectKey,
|
|
56
|
+
draft.type
|
|
57
|
+
) as Type
|
|
58
|
+
|
|
59
|
+
if (!typeResource) {
|
|
60
|
+
throw new Error(
|
|
61
|
+
`No type '${draft.type.typeId}' with id=${draft.type.id} or key=${draft.type.key}`
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return {
|
|
66
|
+
type: {
|
|
67
|
+
typeId: draft.type.typeId,
|
|
68
|
+
id: typeResource.id,
|
|
69
|
+
},
|
|
70
|
+
fields: draft.fields,
|
|
71
|
+
}
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
export const createPrice = (draft: PriceDraft): Price => ({
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
id: uuidv4(),
|
|
76
|
+
value: createTypedMoney(draft.value),
|
|
77
77
|
})
|
|
78
78
|
|
|
79
79
|
export const createCentPrecisionMoney = (value: _Money): CentPrecisionMoney => {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
80
|
+
// Taken from https://docs.adyen.com/development-resources/currency-codes
|
|
81
|
+
let fractionDigits = 2
|
|
82
|
+
switch (value.currencyCode.toUpperCase()) {
|
|
83
|
+
case 'BHD':
|
|
84
|
+
case 'IQD':
|
|
85
|
+
case 'JOD':
|
|
86
|
+
case 'KWD':
|
|
87
|
+
case 'LYD':
|
|
88
|
+
case 'OMR':
|
|
89
|
+
case 'TND':
|
|
90
|
+
fractionDigits = 3
|
|
91
|
+
break
|
|
92
|
+
case 'CVE':
|
|
93
|
+
case 'DJF':
|
|
94
|
+
case 'GNF':
|
|
95
|
+
case 'IDR':
|
|
96
|
+
case 'JPY':
|
|
97
|
+
case 'KMF':
|
|
98
|
+
case 'KRW':
|
|
99
|
+
case 'PYG':
|
|
100
|
+
case 'RWF':
|
|
101
|
+
case 'UGX':
|
|
102
|
+
case 'VND':
|
|
103
|
+
case 'VUV':
|
|
104
|
+
case 'XAF':
|
|
105
|
+
case 'XOF':
|
|
106
|
+
case 'XPF':
|
|
107
|
+
fractionDigits = 0
|
|
108
|
+
break
|
|
109
|
+
default:
|
|
110
|
+
fractionDigits = 2
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if ((value as HighPrecisionMoney & HighPrecisionMoneyDraft).preciseAmount) {
|
|
114
|
+
throw new Error('HighPrecisionMoney not supported')
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
type: 'centPrecision',
|
|
119
|
+
// centAmont is only optional on HighPrecisionMoney, so this should never
|
|
120
|
+
// fallback to 0
|
|
121
|
+
centAmount: value.centAmount ?? 0,
|
|
122
|
+
currencyCode: value.currencyCode,
|
|
123
|
+
fractionDigits: fractionDigits,
|
|
124
|
+
}
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
export const createTypedMoney = (value: _Money): TypedMoney => {
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
const result = createCentPrecisionMoney(value)
|
|
129
|
+
return result
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
export const resolveStoreReference = (
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
ref: StoreResourceIdentifier | undefined,
|
|
134
|
+
projectKey: string,
|
|
135
|
+
storage: AbstractStorage
|
|
136
136
|
): StoreKeyReference | undefined => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
137
|
+
if (!ref) return undefined
|
|
138
|
+
const resource = storage.getByResourceIdentifier(projectKey, ref)
|
|
139
|
+
if (!resource) {
|
|
140
|
+
throw new Error('No such store')
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const store = resource as Store
|
|
144
|
+
return {
|
|
145
|
+
typeId: 'store',
|
|
146
|
+
key: store.key,
|
|
147
|
+
}
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
export const getReferenceFromResourceIdentifier = <T extends Reference>(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
resourceIdentifier: ResourceIdentifier,
|
|
152
|
+
projectKey: string,
|
|
153
|
+
storage: AbstractStorage
|
|
154
154
|
): T => {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
155
|
+
if (!resourceIdentifier.id && !resourceIdentifier.key) {
|
|
156
|
+
throw new CommercetoolsError<InvalidJsonInputError>(
|
|
157
|
+
{
|
|
158
|
+
code: 'InvalidJsonInput',
|
|
159
|
+
message: `${resourceIdentifier.typeId}: ResourceIdentifier requires an 'id' xor a 'key'`,
|
|
160
|
+
detailedErrorMessage: `ResourceIdentifier requires an 'id' xor a 'key'`,
|
|
161
|
+
},
|
|
162
|
+
400
|
|
163
|
+
)
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const resource = storage.getByResourceIdentifier(
|
|
167
|
+
projectKey,
|
|
168
|
+
resourceIdentifier
|
|
169
|
+
)
|
|
170
|
+
if (!resource) {
|
|
171
|
+
const errIdentifier = resourceIdentifier.key
|
|
172
|
+
? `key '${resourceIdentifier.key}'`
|
|
173
|
+
: `identifier '${resourceIdentifier.key}'`
|
|
174
|
+
|
|
175
|
+
throw new CommercetoolsError<ReferencedResourceNotFoundError>(
|
|
176
|
+
{
|
|
177
|
+
code: 'ReferencedResourceNotFound',
|
|
178
|
+
// @ts-ignore
|
|
179
|
+
typeId: resourceIdentifier.typeId,
|
|
180
|
+
message: `The referenced object of type '${resourceIdentifier.typeId}' with '${errIdentifier}' was not found. It either doesn't exist, or it can't be accessed from this endpoint (e.g., if the endpoint filters by store or customer account).`,
|
|
181
|
+
},
|
|
182
|
+
400
|
|
183
|
+
)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return {
|
|
187
|
+
typeId: resourceIdentifier.typeId,
|
|
188
|
+
id: resource?.id,
|
|
189
|
+
} as unknown as T
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
export const getStoreKeyReference = (
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
193
|
+
id: StoreResourceIdentifier,
|
|
194
|
+
projectKey: string,
|
|
195
|
+
storage: AbstractStorage
|
|
196
196
|
): StoreKeyReference => {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
197
|
+
if (id.key) {
|
|
198
|
+
return {
|
|
199
|
+
typeId: 'store',
|
|
200
|
+
key: id.key,
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const value = getReferenceFromResourceIdentifier<StoreReference>(
|
|
204
|
+
id,
|
|
205
|
+
projectKey,
|
|
206
|
+
storage
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
if (!value.obj?.key) {
|
|
210
|
+
throw new Error('No store found for reference')
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
typeId: 'store',
|
|
214
|
+
key: value.obj?.key,
|
|
215
|
+
}
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
export const getRepositoryContext = (request: Request): RepositoryContext => ({
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
projectKey: request.params.projectKey,
|
|
220
|
+
storeKey: request.params.storeKey,
|
|
221
221
|
})
|
|
@@ -39,43 +39,43 @@ import { ZoneRepository } from './zone.js'
|
|
|
39
39
|
export type RepositoryMap = ReturnType<typeof createRepositories>
|
|
40
40
|
|
|
41
41
|
export const createRepositories = (storage: AbstractStorage) => ({
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
42
|
+
'associate-role': new AssociateRoleRepository(storage),
|
|
43
|
+
'attribute-group': new AttributeGroupRepository(storage),
|
|
44
|
+
'business-unit': new BusinessUnitRepository(storage),
|
|
45
|
+
category: new CategoryRepository(storage),
|
|
46
|
+
cart: new CartRepository(storage),
|
|
47
|
+
'cart-discount': new CartDiscountRepository(storage),
|
|
48
|
+
customer: new CustomerRepository(storage),
|
|
49
|
+
channel: new ChannelRepository(storage),
|
|
50
|
+
'customer-group': new CustomerGroupRepository(storage),
|
|
51
|
+
'discount-code': new DiscountCodeRepository(storage),
|
|
52
|
+
extension: new ExtensionRepository(storage),
|
|
53
|
+
'inventory-entry': new InventoryEntryRepository(storage),
|
|
54
|
+
'key-value-document': new CustomObjectRepository(storage),
|
|
55
|
+
order: new OrderRepository(storage),
|
|
56
|
+
'order-edit': new OrderEditRepository(storage),
|
|
57
|
+
payment: new PaymentRepository(storage),
|
|
58
|
+
'my-cart': new CartRepository(storage),
|
|
59
|
+
'my-order': new MyOrderRepository(storage),
|
|
60
|
+
'my-customer': new CustomerRepository(storage),
|
|
61
|
+
'my-payment': new PaymentRepository(storage),
|
|
62
|
+
product: new ProductRepository(storage),
|
|
63
|
+
'product-type': new ProductTypeRepository(storage),
|
|
64
|
+
'product-discount': new ProductDiscountRepository(storage),
|
|
65
|
+
'product-projection': new ProductProjectionRepository(storage),
|
|
66
|
+
'product-selection': new ProductSelectionRepository(storage),
|
|
67
|
+
project: new ProjectRepository(storage),
|
|
68
|
+
review: new ReviewRepository(storage),
|
|
69
|
+
quote: new QuoteRepository(storage),
|
|
70
|
+
'quote-request': new QuoteRequestRepository(storage),
|
|
71
|
+
'shipping-method': new ShippingMethodRepository(storage),
|
|
72
|
+
'shopping-list': new ShoppingListRepository(storage),
|
|
73
|
+
'staged-quote': new StagedQuoteRepository(storage),
|
|
74
|
+
'standalone-price': new StandAlonePriceRepository(storage),
|
|
75
|
+
state: new StateRepository(storage),
|
|
76
|
+
store: new StoreRepository(storage),
|
|
77
|
+
subscription: new SubscriptionRepository(storage),
|
|
78
|
+
'tax-category': new TaxCategoryRepository(storage),
|
|
79
|
+
type: new TypeRepository(storage),
|
|
80
|
+
zone: new ZoneRepository(storage),
|
|
81
81
|
})
|