@spscommerce/asst-api 0.0.1-beta.1 → 0.0.1-beta.11

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.
Files changed (65) hide show
  1. package/dist/ItemCategoriesSearch-44b87663.d.ts +318 -0
  2. package/dist/ItemCategoriesSearch-e0870a34.d.ts +318 -0
  3. package/dist/ItemCategoriesSearch-e3298650.d.ts +319 -0
  4. package/dist/ItemCategoriesSearch-ec43591f.d.ts +319 -0
  5. package/dist/ItemCategory-14816deb.d.ts +99 -0
  6. package/dist/ItemErrorDetails-0eed9761.d.ts +3200 -0
  7. package/dist/ItemErrorDetails-1614b511.d.ts +3137 -0
  8. package/dist/ItemErrorDetails-1bd2821e.d.ts +3137 -0
  9. package/dist/ItemErrorDetails-b2c79d10.d.ts +3197 -0
  10. package/dist/ItemErrorDetails-ba155b70.d.ts +3269 -0
  11. package/dist/ItemErrorDetails-bc465036.d.ts +3200 -0
  12. package/dist/ItemErrorDetails-e6e400aa.d.ts +3197 -0
  13. package/dist/ItemErrorDetailsResult-0b4a628c.d.ts +3032 -0
  14. package/dist/ItemErrorDetailsResult-8317ab6e.d.ts +3092 -0
  15. package/dist/ItemErrorDetailsResult-859368da.d.ts +3032 -0
  16. package/dist/ItemErrorDetailsResult-9ac97c24.d.ts +3032 -0
  17. package/dist/ItemErrorDetailsResult-ae90f329.d.ts +3097 -0
  18. package/dist/ItemErrorDetailsResult-c12c4eac.d.ts +3032 -0
  19. package/dist/ItemErrorDetailsResult-c62caeae.d.ts +3092 -0
  20. package/dist/ItemErrorDetailsResult-fbc33a43.d.ts +3097 -0
  21. package/dist/ItemStatusResponse-7f871d5a.d.ts +91 -0
  22. package/dist/TradingPartnerAccessByCompanyId-29866586.d.ts +97 -0
  23. package/dist/TradingPartnerAccessByCompanyId-43f83fb6.d.ts +130 -0
  24. package/dist/TradingPartnerAccessByCompanyId-53b868a8.d.ts +125 -0
  25. package/dist/TradingPartnerAccessByCompanyId-b227f0c5.d.ts +125 -0
  26. package/dist/TradingPartnerAccessByCompanyId-e7a1d443.d.ts +129 -0
  27. package/dist/chunk-3CJG5LDN.js +360 -0
  28. package/dist/chunk-3FMMM7IS.js +80 -0
  29. package/dist/chunk-3JRE7YYE.js +4576 -0
  30. package/dist/chunk-4HWZ3JEH.js +328 -0
  31. package/dist/chunk-4WER3ZLX.js +4576 -0
  32. package/dist/chunk-5YWAQNT6.js +4634 -0
  33. package/dist/chunk-6ZNFOWTV.js +78 -0
  34. package/dist/chunk-CB3PVPHS.js +344 -0
  35. package/dist/chunk-ETURPA7W.js +326 -0
  36. package/dist/chunk-F3KCLICG.js +77 -0
  37. package/dist/chunk-FS6LHGAR.js +87 -0
  38. package/dist/chunk-G36FM5OA.js +327 -0
  39. package/dist/chunk-GDFX3WTX.js +78 -0
  40. package/dist/chunk-GSUSBCHT.js +4576 -0
  41. package/dist/chunk-IHIEBLQV.js +4576 -0
  42. package/dist/chunk-ITWMRXLD.js +328 -0
  43. package/dist/chunk-J3A66IGS.js +389 -0
  44. package/dist/chunk-LYMGZWSR.js +80 -0
  45. package/dist/chunk-N2OYWNHF.js +80 -0
  46. package/dist/chunk-OA6PO3QG.js +78 -0
  47. package/dist/chunk-OBXZRDPY.js +77 -0
  48. package/dist/chunk-OI47EFQH.js +82 -0
  49. package/dist/chunk-OVOZIZA2.js +326 -0
  50. package/dist/chunk-RRGAJ4ZS.js +4576 -0
  51. package/dist/chunk-T3UCSW2B.js +81 -0
  52. package/dist/chunk-VNFU2PUV.js +4577 -0
  53. package/dist/chunk-WN2FPUF3.js +4577 -0
  54. package/dist/chunk-XMNYZGXF.js +84 -0
  55. package/dist/chunk-YCQUK6KV.js +85 -0
  56. package/dist/index.cjs +1001 -84
  57. package/dist/index.d.ts +197 -46
  58. package/dist/index.js +23 -56
  59. package/dist/msw.cjs +1056 -65
  60. package/dist/msw.d.ts +638 -76
  61. package/dist/msw.js +317 -54
  62. package/dist/zod.cjs +812 -17
  63. package/dist/zod.d.ts +4 -2
  64. package/dist/zod.js +112 -52
  65. package/package.json +2 -3
@@ -0,0 +1,360 @@
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-WN2FPUF3.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/featureFlags/index.ts
255
+ var BASE_URL11 = "feature-flag";
256
+ function createFeatureFlagsApi(client) {
257
+ async function checkEnableItemsApiEndpointsForImports(signal) {
258
+ const data = await client.get(`${BASE_URL11}/enable-items-api-endpoints-for-imports/`, {
259
+ signal
260
+ }).json();
261
+ return z.boolean().parse(data);
262
+ }
263
+ return {
264
+ checkEnableItemsApiEndpointsForImports
265
+ };
266
+ }
267
+
268
+ // lib/items/models/SPSItemIdView.ts
269
+ var SpsItemIdViewSchema = z.object({
270
+ id: z.string(),
271
+ ref: z.string()
272
+ });
273
+
274
+ // lib/items/index.ts
275
+ var BASE_URL12 = "items";
276
+ function createItemsApi(client) {
277
+ async function searchItems(params, signal) {
278
+ const searchParams = params ? `limit=${params.limit}&offset=${params.offset}` + (params.url ? `&${params.url}` : "") : void 0;
279
+ const data = await client.get(`${BASE_URL12}`, { searchParams, signal }).json();
280
+ return itemSearchViewSchema.parse(data);
281
+ }
282
+ async function getItem(itemId, locale = "en-US", signal) {
283
+ const data = await client.get(`${BASE_URL12}/${itemId}`, { searchParams: { locale }, signal }).json();
284
+ return itemDetailViewSchema.parse(data);
285
+ }
286
+ async function updateItem(itemId, item) {
287
+ await client.put(`${BASE_URL12}/details/${itemId}`, { json: { ...item } }).json();
288
+ }
289
+ async function deleteItem(itemId) {
290
+ await client.delete(`${BASE_URL12}/${itemId}`);
291
+ }
292
+ async function deleteItems(itemIds) {
293
+ const params = new URLSearchParams();
294
+ itemIds.forEach((id) => {
295
+ params.append("items", id);
296
+ });
297
+ await client.delete(`${BASE_URL12}`, { searchParams: params });
298
+ }
299
+ async function getItemInfoId(spsItemId, signal) {
300
+ const data = await client.get(`${BASE_URL12}/${spsItemId}/itemInfoId`, { signal }).json();
301
+ return z.number().parse(data);
302
+ }
303
+ async function getSpsItemId(itemInfoId, signal) {
304
+ const data = await client.get(`${BASE_URL12}/${itemInfoId}/spsItemId`, { signal }).json();
305
+ return SpsItemIdViewSchema.parse(data);
306
+ }
307
+ return {
308
+ searchItems,
309
+ getItem,
310
+ updateItem,
311
+ deleteItem,
312
+ deleteItems,
313
+ getItemInfoId,
314
+ getSpsItemId
315
+ };
316
+ }
317
+
318
+ // lib/errors/index.ts
319
+ var BASE_URL13 = "errors";
320
+ function createErrorsApi(client) {
321
+ async function getInvalidItemErrorDetails(itemInfoId, signal) {
322
+ const data = await client.get(`${BASE_URL13}/items/${itemInfoId}`, {
323
+ signal
324
+ }).json();
325
+ return itemErrorDetailsResultSchema.parse(data);
326
+ }
327
+ return {
328
+ getInvalidItemErrorDetails
329
+ };
330
+ }
331
+
332
+ export {
333
+ BASE_URL,
334
+ createImportsApi,
335
+ BASE_URL2,
336
+ BASE_URL_V2,
337
+ createExportsApi,
338
+ BASE_URL3,
339
+ createProductTypesApi,
340
+ BASE_URL4,
341
+ createTradingPartnerAccessApi,
342
+ BASE_URL5,
343
+ createCategoriesApi,
344
+ BASE_URL6,
345
+ createAttributesApi,
346
+ BASE_URL7,
347
+ createLocaleApi,
348
+ BASE_URL8,
349
+ createSpreadsheetTemplateApi,
350
+ BASE_URL9,
351
+ createWhoAmIApi,
352
+ BASE_URL10,
353
+ createCompanyFeaturesApi,
354
+ BASE_URL11,
355
+ createFeatureFlagsApi,
356
+ BASE_URL12,
357
+ createItemsApi,
358
+ BASE_URL13,
359
+ createErrorsApi
360
+ };
@@ -0,0 +1,80 @@
1
+ import {
2
+ z
3
+ } from "./chunk-D3ML6E4G.js";
4
+
5
+ // lib/asstClient.ts
6
+ import ky from "ky-universal";
7
+ var baseUrlsSchema = z.object({
8
+ local: z.literal("https://localhost:8443"),
9
+ test: z.literal("https://integration.api.spscommerce.com/assortment/gateway"),
10
+ prod: z.literal("https://api.spscommerce.com/assortment/gateway")
11
+ });
12
+ var BASE_URLS = {
13
+ local: "https://localhost:8443",
14
+ test: "https://integration.api.spscommerce.com/assortment/gateway",
15
+ prod: "https://api.spscommerce.com/assortment/gateway"
16
+ };
17
+ var envSchema = baseUrlsSchema.keyof();
18
+ var AsstClient = class {
19
+ #client = ky.create({
20
+ prefixUrl: BASE_URLS["test"],
21
+ retry: 0
22
+ });
23
+ #baseUrl = BASE_URLS["test"];
24
+ #subscriptionCallback;
25
+ #currentConfig = {};
26
+ constructor(options) {
27
+ console.log(`AsstClient created! Config: ${JSON.stringify(options)}`);
28
+ if (options) {
29
+ this.updateConfig(options);
30
+ }
31
+ }
32
+ updateConfig(options) {
33
+ this.#client = this.#client.extend(options);
34
+ this.#currentConfig = options;
35
+ if (options.prefixUrl) {
36
+ this.#baseUrl = options.prefixUrl;
37
+ }
38
+ if (this.#subscriptionCallback) {
39
+ this.#subscriptionCallback(options);
40
+ }
41
+ }
42
+ getBaseUrl() {
43
+ return this.#baseUrl;
44
+ }
45
+ /**
46
+ * Subscribe to config changes. The callback will be immediately invoked with the current config.
47
+ * @param subscriptionCallback Function that will be called with the new config every time it is changed
48
+ */
49
+ subscribeToConfigChange(subscriptionCallback) {
50
+ this.#subscriptionCallback = subscriptionCallback;
51
+ subscriptionCallback(this.#currentConfig);
52
+ }
53
+ unsubscribeToConfigChange() {
54
+ this.#subscriptionCallback = void 0;
55
+ }
56
+ get(url, options) {
57
+ return this.#client.get(url, options);
58
+ }
59
+ post(url, options) {
60
+ return this.#client.post(url, options);
61
+ }
62
+ put(url, options) {
63
+ return this.#client.put(url, options);
64
+ }
65
+ patch(url, options) {
66
+ return this.#client.patch(url, options);
67
+ }
68
+ head(url, options) {
69
+ return this.#client.head(url, options);
70
+ }
71
+ delete(url, options) {
72
+ return this.#client.delete(url, options);
73
+ }
74
+ };
75
+
76
+ export {
77
+ BASE_URLS,
78
+ envSchema,
79
+ AsstClient
80
+ };