@spscommerce/asst-api 0.0.1-beta.7 → 0.0.1-beta.9

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.
@@ -0,0 +1,328 @@
1
+ import {
2
+ attrProdTypeSchema,
3
+ attributeDefinitionSchema,
4
+ attributeMetaDataSchema,
5
+ attributeValidValuesSchema,
6
+ attributesByCompanySchema,
7
+ importErrorsSchema,
8
+ importSchema,
9
+ importsStatusSchema,
10
+ itemCategoriesSearchSchema,
11
+ itemDetailViewSchema,
12
+ itemErrorDetailsResultSchema,
13
+ itemSearchViewSchema,
14
+ localeSchema,
15
+ spreadsheetTemplateSchema,
16
+ tradingPartnerAccessByCompanyIdSchema,
17
+ userAccountSchema,
18
+ vendorPartnerAttGroupsSchema,
19
+ z
20
+ } from "./chunk-IHIEBLQV.js";
21
+
22
+ // lib/imports/index.ts
23
+ var BASE_URL = "imports";
24
+ function createImportsApi(client) {
25
+ async function getImportErrors(importId, params, signal) {
26
+ const data = await client.get(`${BASE_URL}/${importId}/errors`, { searchParams: params, signal }).json();
27
+ return importErrorsSchema.parse(data);
28
+ }
29
+ async function getImports(params, signal) {
30
+ const data = await client.get(`${BASE_URL}`, {
31
+ searchParams: params,
32
+ signal
33
+ }).json();
34
+ return importSchema.parse(data);
35
+ }
36
+ async function getImportsStatus(signal) {
37
+ const data = await client.get(`${BASE_URL}/status`, { signal }).json();
38
+ return z.array(importsStatusSchema).parse(data);
39
+ }
40
+ async function uploadImport(file) {
41
+ await client.post(`${BASE_URL}`, { body: file });
42
+ }
43
+ async function getVendorPartnerGroups(signal) {
44
+ const data = await client.get(`${BASE_URL}/template/vendor-partner-groups`, { signal }).json();
45
+ return z.array(vendorPartnerAttGroupsSchema).parse(data);
46
+ }
47
+ async function generateImportTemplate(params) {
48
+ const response = await client.get(`${BASE_URL}/template/generate`, {
49
+ searchParams: params,
50
+ headers: {
51
+ Accept: "application/octet-stream"
52
+ },
53
+ timeout: false
54
+ });
55
+ const disposition = response.headers.get("content-disposition") || "";
56
+ const filename = disposition.match(/filename="(.+)"/)?.[1];
57
+ const downloadUrl = window.URL.createObjectURL(
58
+ new Blob([await response.blob()])
59
+ );
60
+ const link = document.createElement("a");
61
+ link.href = downloadUrl;
62
+ if (filename) {
63
+ link.download = filename;
64
+ }
65
+ document.body.appendChild(link);
66
+ link.click();
67
+ link.remove();
68
+ }
69
+ return {
70
+ getImportErrors,
71
+ getImports,
72
+ getImportsStatus,
73
+ uploadImport,
74
+ getVendorPartnerGroups,
75
+ generateImportTemplate
76
+ };
77
+ }
78
+
79
+ // lib/exports/index.ts
80
+ var BASE_URL2 = "exports";
81
+ var BASE_URL_V2 = "v2/exports";
82
+ function createExportsApi(client) {
83
+ async function createExport(data) {
84
+ await client.post(`${BASE_URL_V2}/add`, { json: data });
85
+ }
86
+ async function downloadItems(params) {
87
+ const searchParams = { ...params, ids: params.ids.join(",") };
88
+ const response = await client.get(`${BASE_URL2}/spreadsheet/by-item`, {
89
+ searchParams,
90
+ headers: {
91
+ Accept: "application/octet-stream"
92
+ },
93
+ timeout: false
94
+ });
95
+ const disposition = response.headers.get("content-disposition") || "";
96
+ const filename = disposition.match(/filename="(.+)"/)?.[1];
97
+ const downloadUrl = window.URL.createObjectURL(
98
+ new Blob([await response.blob()])
99
+ );
100
+ const link = document.createElement("a");
101
+ link.href = downloadUrl;
102
+ if (filename) {
103
+ link.download = filename;
104
+ }
105
+ document.body.appendChild(link);
106
+ link.click();
107
+ link.remove();
108
+ }
109
+ return {
110
+ createExport,
111
+ downloadItems
112
+ };
113
+ }
114
+
115
+ // lib/productTypes/index.ts
116
+ var BASE_URL3 = "product-types";
117
+ function createProductTypesApi(client) {
118
+ async function getProductTypes(params, signal) {
119
+ const searchParams = params ? { retailerIds: params.retailerIds.join(",") } : void 0;
120
+ const data = await client.get(`${BASE_URL3}/all`, {
121
+ searchParams,
122
+ signal
123
+ }).json();
124
+ return z.array(attrProdTypeSchema).parse(data.results);
125
+ }
126
+ return {
127
+ getProductTypes
128
+ };
129
+ }
130
+
131
+ // lib/tradingPartners/index.ts
132
+ var BASE_URL4 = "trading-partner-access";
133
+ function createTradingPartnerAccessApi(client) {
134
+ async function getAllTradingPartners(signal) {
135
+ const data = await client.get(`${BASE_URL4}/connections`, {
136
+ signal
137
+ }).json();
138
+ return tradingPartnerAccessByCompanyIdSchema.parse(data);
139
+ }
140
+ return {
141
+ getAllTradingPartners
142
+ };
143
+ }
144
+
145
+ // lib/categories/index.ts
146
+ var BASE_URL5 = "categories";
147
+ function createCategoriesApi(client) {
148
+ async function getCatalogs(params, signal) {
149
+ const data = await client.get(`${BASE_URL5}/search-category`, {
150
+ searchParams: { ...params, type: "CATALOG" },
151
+ signal
152
+ }).json();
153
+ return itemCategoriesSearchSchema.parse(data);
154
+ }
155
+ async function getProductCodes(params, signal) {
156
+ const data = await client.get(`${BASE_URL5}/search-category`, {
157
+ searchParams: { ...params, type: "PRODUCT_CODE" },
158
+ signal
159
+ }).json();
160
+ return itemCategoriesSearchSchema.parse(data);
161
+ }
162
+ async function getSelectionCodes(params, signal) {
163
+ const data = await client.get(`${BASE_URL5}/search-category`, {
164
+ searchParams: { ...params, type: "SELECTION_CODE" },
165
+ signal
166
+ }).json();
167
+ return itemCategoriesSearchSchema.parse(data);
168
+ }
169
+ return { getCatalogs, getProductCodes, getSelectionCodes };
170
+ }
171
+
172
+ // lib/attributes/index.ts
173
+ var BASE_URL6 = "attributes";
174
+ function createAttributesApi(client) {
175
+ async function getAllAttributes(signal) {
176
+ const data = await client.get(`${BASE_URL6}`, { signal }).json();
177
+ return z.array(attributeMetaDataSchema).parse(data);
178
+ }
179
+ async function getAllAttributesByCompany(params, signal) {
180
+ const data = await client.get(`${BASE_URL6}/company`, {
181
+ searchParams: params,
182
+ signal
183
+ }).json();
184
+ return attributesByCompanySchema.parse(data);
185
+ }
186
+ async function getAttributesExtensiveInfo(signal) {
187
+ const data = await client.get(`${BASE_URL6}/registry/editui`, { signal }).json();
188
+ return z.array(attributeDefinitionSchema).parse(data);
189
+ }
190
+ async function getAttributeValidValues(attributeDbName, signal) {
191
+ const data = await client.get(`${BASE_URL6}/registry/attribute/${attributeDbName}/values`, {
192
+ signal
193
+ }).json();
194
+ return z.array(attributeValidValuesSchema).parse(data);
195
+ }
196
+ return {
197
+ getAllAttributes,
198
+ getAllAttributesByCompany,
199
+ getAttributesExtensiveInfo,
200
+ getAttributeValidValues
201
+ };
202
+ }
203
+
204
+ // lib/locale/index.ts
205
+ var BASE_URL7 = "locale";
206
+ function createLocaleApi(client) {
207
+ async function getLocale(signal) {
208
+ const data = await client.get(`${BASE_URL7}`, { signal }).json();
209
+ return z.array(localeSchema).parse(data);
210
+ }
211
+ return {
212
+ getLocale
213
+ };
214
+ }
215
+
216
+ // lib/spreadsheetTemplate/index.ts
217
+ var BASE_URL8 = "templates";
218
+ function createSpreadsheetTemplateApi(client) {
219
+ async function getTemplates(signal) {
220
+ const data = await client.get(`${BASE_URL8}`, { signal }).json();
221
+ return z.array(spreadsheetTemplateSchema).parse(data);
222
+ }
223
+ return {
224
+ getTemplates
225
+ };
226
+ }
227
+
228
+ // lib/whoami/index.ts
229
+ var BASE_URL9 = "whoami";
230
+ function createWhoAmIApi(client) {
231
+ async function whoAmI(signal) {
232
+ const data = await client.get(`${BASE_URL9}`, { signal }).json();
233
+ return userAccountSchema.parse(data);
234
+ }
235
+ return {
236
+ whoAmI
237
+ };
238
+ }
239
+
240
+ // lib/companyFeatures/index.ts
241
+ var BASE_URL10 = "feature";
242
+ function createCompanyFeaturesApi(client) {
243
+ async function checkIfStageItemSetupIsEnabled(signal) {
244
+ const data = await client.get(`${BASE_URL10}/isphaseditemsetupenabled`, {
245
+ signal
246
+ }).json();
247
+ return z.boolean().parse(data);
248
+ }
249
+ return {
250
+ checkIfStageItemSetupIsEnabled
251
+ };
252
+ }
253
+
254
+ // lib/items/index.ts
255
+ var BASE_URL11 = "items";
256
+ function createItemsApi(client) {
257
+ async function searchItems(params, signal) {
258
+ const searchParams = params ? `limit=${params.limit}&offset=${params.offset}` + (params.url ? `&${params.url}` : "") : void 0;
259
+ const data = await client.get(`${BASE_URL11}`, { searchParams, signal }).json();
260
+ return itemSearchViewSchema.parse(data);
261
+ }
262
+ async function getItem(itemId, locale = "en-US", signal) {
263
+ const data = await client.get(`${BASE_URL11}/${itemId}`, { searchParams: { locale }, signal }).json();
264
+ return itemDetailViewSchema.parse(data);
265
+ }
266
+ async function updateItem(itemId, item) {
267
+ await client.put(`${BASE_URL11}/details/${itemId}`, { json: { ...item } }).json();
268
+ }
269
+ async function deleteItem(itemId) {
270
+ await client.delete(`${BASE_URL11}/${itemId}`);
271
+ }
272
+ async function deleteItems(itemIds) {
273
+ const params = new URLSearchParams();
274
+ itemIds.forEach((id) => {
275
+ params.append("items", id);
276
+ });
277
+ await client.delete(`${BASE_URL11}`, { searchParams: params });
278
+ }
279
+ return {
280
+ searchItems,
281
+ getItem,
282
+ updateItem,
283
+ deleteItem,
284
+ deleteItems
285
+ };
286
+ }
287
+
288
+ // lib/errors/index.ts
289
+ var BASE_URL12 = "errors";
290
+ function createErrorsApi(client) {
291
+ async function getInvalidItemErrorDetails(itemInfoId, signal) {
292
+ const data = await client.get(`${BASE_URL12}/items/${itemInfoId}`, {
293
+ signal
294
+ }).json();
295
+ return itemErrorDetailsResultSchema.parse(data);
296
+ }
297
+ return {
298
+ getInvalidItemErrorDetails
299
+ };
300
+ }
301
+
302
+ export {
303
+ BASE_URL,
304
+ createImportsApi,
305
+ BASE_URL2,
306
+ BASE_URL_V2,
307
+ createExportsApi,
308
+ BASE_URL3,
309
+ createProductTypesApi,
310
+ BASE_URL4,
311
+ createTradingPartnerAccessApi,
312
+ BASE_URL5,
313
+ createCategoriesApi,
314
+ BASE_URL6,
315
+ createAttributesApi,
316
+ BASE_URL7,
317
+ createLocaleApi,
318
+ BASE_URL8,
319
+ createSpreadsheetTemplateApi,
320
+ BASE_URL9,
321
+ createWhoAmIApi,
322
+ BASE_URL10,
323
+ createCompanyFeaturesApi,
324
+ BASE_URL11,
325
+ createItemsApi,
326
+ BASE_URL12,
327
+ createErrorsApi
328
+ };
@@ -0,0 +1,326 @@
1
+ import {
2
+ attrProdTypeSchema,
3
+ attributeDefinitionSchema,
4
+ attributeMetaDataSchema,
5
+ attributeValidValuesSchema,
6
+ attributesByCompanySchema,
7
+ importErrorsSchema,
8
+ importSchema,
9
+ importsStatusSchema,
10
+ itemCategoriesSearchSchema,
11
+ itemDetailViewSchema,
12
+ itemErrorDetailsResultSchema,
13
+ itemSearchViewSchema,
14
+ localeSchema,
15
+ spreadsheetTemplateSchema,
16
+ tradingPartnerAccessByCompanyIdSchema,
17
+ userAccountSchema,
18
+ vendorPartnerAttGroupsSchema,
19
+ z
20
+ } from "./chunk-3JRE7YYE.js";
21
+
22
+ // lib/imports/index.ts
23
+ var BASE_URL = "imports";
24
+ function createImportsApi(client) {
25
+ async function getImportErrors(importId, params, signal) {
26
+ const data = await client.get(`${BASE_URL}/${importId}/errors`, { searchParams: params, signal }).json();
27
+ return importErrorsSchema.parse(data);
28
+ }
29
+ async function getImports(params, signal) {
30
+ const data = await client.get(`${BASE_URL}`, {
31
+ searchParams: params,
32
+ signal
33
+ }).json();
34
+ return importSchema.parse(data);
35
+ }
36
+ async function getImportsStatus(signal) {
37
+ const data = await client.get(`${BASE_URL}/status`, { signal }).json();
38
+ return z.array(importsStatusSchema).parse(data);
39
+ }
40
+ async function uploadImport(file) {
41
+ await client.post(`${BASE_URL}`, { body: file });
42
+ }
43
+ async function getVendorPartnerGroups(signal) {
44
+ const data = await client.get(`${BASE_URL}/template/vendor-partner-groups`, { signal }).json();
45
+ return z.array(vendorPartnerAttGroupsSchema).parse(data);
46
+ }
47
+ async function generateImportTemplate(params) {
48
+ const response = await client.get(`${BASE_URL}/template/generate`, {
49
+ searchParams: params,
50
+ headers: {
51
+ Accept: "application/octet-stream"
52
+ }
53
+ });
54
+ const disposition = response.headers.get("content-disposition") || "";
55
+ const filename = disposition.match(/filename="(.+)"/)?.[1];
56
+ const downloadUrl = window.URL.createObjectURL(
57
+ new Blob([await response.blob()])
58
+ );
59
+ const link = document.createElement("a");
60
+ link.href = downloadUrl;
61
+ if (filename) {
62
+ link.download = filename;
63
+ }
64
+ document.body.appendChild(link);
65
+ link.click();
66
+ link.remove();
67
+ }
68
+ return {
69
+ getImportErrors,
70
+ getImports,
71
+ getImportsStatus,
72
+ uploadImport,
73
+ getVendorPartnerGroups,
74
+ generateImportTemplate
75
+ };
76
+ }
77
+
78
+ // lib/exports/index.ts
79
+ var BASE_URL2 = "exports";
80
+ var BASE_URL_V2 = "v2/exports";
81
+ function createExportsApi(client) {
82
+ async function createExport(data) {
83
+ await client.post(`${BASE_URL_V2}/add`, { json: data });
84
+ }
85
+ async function downloadItems(params) {
86
+ const searchParams = { ...params, ids: params.ids.join(",") };
87
+ const response = await client.get(`${BASE_URL2}/spreadsheet/by-item`, {
88
+ searchParams,
89
+ headers: {
90
+ Accept: "application/octet-stream"
91
+ }
92
+ });
93
+ const disposition = response.headers.get("content-disposition") || "";
94
+ const filename = disposition.match(/filename="(.+)"/)?.[1];
95
+ const downloadUrl = window.URL.createObjectURL(
96
+ new Blob([await response.blob()])
97
+ );
98
+ const link = document.createElement("a");
99
+ link.href = downloadUrl;
100
+ if (filename) {
101
+ link.download = filename;
102
+ }
103
+ document.body.appendChild(link);
104
+ link.click();
105
+ link.remove();
106
+ }
107
+ return {
108
+ createExport,
109
+ downloadItems
110
+ };
111
+ }
112
+
113
+ // lib/productTypes/index.ts
114
+ var BASE_URL3 = "product-types";
115
+ function createProductTypesApi(client) {
116
+ async function getProductTypes(params, signal) {
117
+ const searchParams = params ? { retailerIds: params.retailerIds.join(",") } : void 0;
118
+ const data = await client.get(`${BASE_URL3}/all`, {
119
+ searchParams,
120
+ signal
121
+ }).json();
122
+ return z.array(attrProdTypeSchema).parse(data.results);
123
+ }
124
+ return {
125
+ getProductTypes
126
+ };
127
+ }
128
+
129
+ // lib/tradingPartners/index.ts
130
+ var BASE_URL4 = "trading-partner-access";
131
+ function createTradingPartnerAccessApi(client) {
132
+ async function getAllTradingPartners(signal) {
133
+ const data = await client.get(`${BASE_URL4}/connections`, {
134
+ signal
135
+ }).json();
136
+ return tradingPartnerAccessByCompanyIdSchema.parse(data);
137
+ }
138
+ return {
139
+ getAllTradingPartners
140
+ };
141
+ }
142
+
143
+ // lib/categories/index.ts
144
+ var BASE_URL5 = "categories";
145
+ function createCategoriesApi(client) {
146
+ async function getCatalogs(params, signal) {
147
+ const data = await client.get(`${BASE_URL5}/search-category`, {
148
+ searchParams: { ...params, type: "CATALOG" },
149
+ signal
150
+ }).json();
151
+ return itemCategoriesSearchSchema.parse(data);
152
+ }
153
+ async function getProductCodes(params, signal) {
154
+ const data = await client.get(`${BASE_URL5}/search-category`, {
155
+ searchParams: { ...params, type: "PRODUCT_CODE" },
156
+ signal
157
+ }).json();
158
+ return itemCategoriesSearchSchema.parse(data);
159
+ }
160
+ async function getSelectionCodes(params, signal) {
161
+ const data = await client.get(`${BASE_URL5}/search-category`, {
162
+ searchParams: { ...params, type: "SELECTION_CODE" },
163
+ signal
164
+ }).json();
165
+ return itemCategoriesSearchSchema.parse(data);
166
+ }
167
+ return { getCatalogs, getProductCodes, getSelectionCodes };
168
+ }
169
+
170
+ // lib/attributes/index.ts
171
+ var BASE_URL6 = "attributes";
172
+ function createAttributesApi(client) {
173
+ async function getAllAttributes(signal) {
174
+ const data = await client.get(`${BASE_URL6}`, { signal }).json();
175
+ return z.array(attributeMetaDataSchema).parse(data);
176
+ }
177
+ async function getAllAttributesByCompany(params, signal) {
178
+ const data = await client.get(`${BASE_URL6}/company`, {
179
+ searchParams: params,
180
+ signal
181
+ }).json();
182
+ return attributesByCompanySchema.parse(data);
183
+ }
184
+ async function getAttributesExtensiveInfo(signal) {
185
+ const data = await client.get(`${BASE_URL6}/registry/editui`, { signal }).json();
186
+ return z.array(attributeDefinitionSchema).parse(data);
187
+ }
188
+ async function getAttributeValidValues(attributeDbName, signal) {
189
+ const data = await client.get(`${BASE_URL6}/registry/attribute/${attributeDbName}/values`, {
190
+ signal
191
+ }).json();
192
+ return z.array(attributeValidValuesSchema).parse(data);
193
+ }
194
+ return {
195
+ getAllAttributes,
196
+ getAllAttributesByCompany,
197
+ getAttributesExtensiveInfo,
198
+ getAttributeValidValues
199
+ };
200
+ }
201
+
202
+ // lib/locale/index.ts
203
+ var BASE_URL7 = "locale";
204
+ function createLocaleApi(client) {
205
+ async function getLocale(signal) {
206
+ const data = await client.get(`${BASE_URL7}`, { signal }).json();
207
+ return z.array(localeSchema).parse(data);
208
+ }
209
+ return {
210
+ getLocale
211
+ };
212
+ }
213
+
214
+ // lib/spreadsheetTemplate/index.ts
215
+ var BASE_URL8 = "templates";
216
+ function createSpreadsheetTemplateApi(client) {
217
+ async function getTemplates(signal) {
218
+ const data = await client.get(`${BASE_URL8}`, { signal }).json();
219
+ return z.array(spreadsheetTemplateSchema).parse(data);
220
+ }
221
+ return {
222
+ getTemplates
223
+ };
224
+ }
225
+
226
+ // lib/whoami/index.ts
227
+ var BASE_URL9 = "whoami";
228
+ function createWhoAmIApi(client) {
229
+ async function whoAmI(signal) {
230
+ const data = await client.get(`${BASE_URL9}`, { signal }).json();
231
+ return userAccountSchema.parse(data);
232
+ }
233
+ return {
234
+ whoAmI
235
+ };
236
+ }
237
+
238
+ // lib/companyFeatures/index.ts
239
+ var BASE_URL10 = "feature";
240
+ function createCompanyFeaturesApi(client) {
241
+ async function checkIfStageItemSetupIsEnabled(signal) {
242
+ const data = await client.get(`${BASE_URL10}/isphaseditemsetupenabled`, {
243
+ signal
244
+ }).json();
245
+ return z.boolean().parse(data);
246
+ }
247
+ return {
248
+ checkIfStageItemSetupIsEnabled
249
+ };
250
+ }
251
+
252
+ // lib/items/index.ts
253
+ var BASE_URL11 = "items";
254
+ function createItemsApi(client) {
255
+ async function searchItems(params, signal) {
256
+ const searchParams = params ? `limit=${params.limit}&offset=${params.offset}` + (params.url ? `&${params.url}` : "") : void 0;
257
+ const data = await client.get(`${BASE_URL11}`, { searchParams, signal }).json();
258
+ return itemSearchViewSchema.parse(data);
259
+ }
260
+ async function getItem(itemId, locale = "en-US", signal) {
261
+ const data = await client.get(`${BASE_URL11}/${itemId}`, { searchParams: { locale }, signal }).json();
262
+ return itemDetailViewSchema.parse(data);
263
+ }
264
+ async function updateItem(itemId, item) {
265
+ client.put(`${BASE_URL11}/details/${itemId}`, { json: { item } }).json();
266
+ }
267
+ async function deleteItem(itemId) {
268
+ await client.delete(`${BASE_URL11}/${itemId}`);
269
+ }
270
+ async function deleteItems(itemIds) {
271
+ const params = new URLSearchParams();
272
+ itemIds.forEach((id) => {
273
+ params.append("items", id);
274
+ });
275
+ await client.delete(`${BASE_URL11}/items`, { searchParams: params });
276
+ }
277
+ return {
278
+ searchItems,
279
+ getItem,
280
+ updateItem,
281
+ deleteItem,
282
+ deleteItems
283
+ };
284
+ }
285
+
286
+ // lib/errors/index.ts
287
+ var BASE_URL12 = "errors";
288
+ function createErrorsApi(client) {
289
+ async function getInvalidItemErrorDetails(itemInfoId, signal) {
290
+ const data = await client.get(`${BASE_URL12}/items/${itemInfoId}`, {
291
+ signal
292
+ }).json();
293
+ return itemErrorDetailsResultSchema.parse(data);
294
+ }
295
+ return {
296
+ getInvalidItemErrorDetails
297
+ };
298
+ }
299
+
300
+ export {
301
+ BASE_URL,
302
+ createImportsApi,
303
+ BASE_URL2,
304
+ BASE_URL_V2,
305
+ createExportsApi,
306
+ BASE_URL3,
307
+ createProductTypesApi,
308
+ BASE_URL4,
309
+ createTradingPartnerAccessApi,
310
+ BASE_URL5,
311
+ createCategoriesApi,
312
+ BASE_URL6,
313
+ createAttributesApi,
314
+ BASE_URL7,
315
+ createLocaleApi,
316
+ BASE_URL8,
317
+ createSpreadsheetTemplateApi,
318
+ BASE_URL9,
319
+ createWhoAmIApi,
320
+ BASE_URL10,
321
+ createCompanyFeaturesApi,
322
+ BASE_URL11,
323
+ createItemsApi,
324
+ BASE_URL12,
325
+ createErrorsApi
326
+ };