@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,78 @@
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 initialConfig = {
19
+ prefixUrl: BASE_URLS["test"],
20
+ retry: 0
21
+ };
22
+ var AsstClient = class {
23
+ #client = ky.create(initialConfig);
24
+ #baseUrl = BASE_URLS["test"];
25
+ #listeners = /* @__PURE__ */ new Set();
26
+ // #subscriptionCallback?: (config: AsstClientOptions) => void;
27
+ #currentConfig = initialConfig;
28
+ constructor(options) {
29
+ if (options) {
30
+ this.updateConfig(options);
31
+ }
32
+ }
33
+ updateConfig(options) {
34
+ this.#client = this.#client.extend(options);
35
+ this.#currentConfig = options;
36
+ if (options.prefixUrl) {
37
+ this.#baseUrl = options.prefixUrl;
38
+ }
39
+ this.#listeners.forEach((listener) => listener(options));
40
+ }
41
+ getBaseUrl() {
42
+ return this.#baseUrl;
43
+ }
44
+ /**
45
+ * Subscribe to config changes. The callback will be immediately invoked with the current config.
46
+ * @param subscriptionCallback Function that will be called with the new config every time it is changed
47
+ * @returns Function to unsubscribe to config changes
48
+ */
49
+ subscribeToConfigChange(listener) {
50
+ this.#listeners.add(listener);
51
+ listener(this.#currentConfig);
52
+ return () => this.#listeners.delete(listener);
53
+ }
54
+ get(url, options) {
55
+ return this.#client.get(url, options);
56
+ }
57
+ post(url, options) {
58
+ return this.#client.post(url, options);
59
+ }
60
+ put(url, options) {
61
+ return this.#client.put(url, options);
62
+ }
63
+ patch(url, options) {
64
+ return this.#client.patch(url, options);
65
+ }
66
+ head(url, options) {
67
+ return this.#client.head(url, options);
68
+ }
69
+ delete(url, options) {
70
+ return this.#client.delete(url, options);
71
+ }
72
+ };
73
+
74
+ export {
75
+ BASE_URLS,
76
+ envSchema,
77
+ AsstClient
78
+ };
@@ -0,0 +1,344 @@
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-VNFU2PUV.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/models/SPSItemIdView.ts
255
+ var SpsItemIdViewSchema = z.object({
256
+ id: z.string(),
257
+ ref: z.string()
258
+ });
259
+
260
+ // lib/items/index.ts
261
+ var BASE_URL11 = "items";
262
+ function createItemsApi(client) {
263
+ async function searchItems(params, signal) {
264
+ const searchParams = params ? `limit=${params.limit}&offset=${params.offset}` + (params.url ? `&${params.url}` : "") : void 0;
265
+ const data = await client.get(`${BASE_URL11}`, { searchParams, signal }).json();
266
+ return itemSearchViewSchema.parse(data);
267
+ }
268
+ async function getItem(itemId, locale = "en-US", signal) {
269
+ const data = await client.get(`${BASE_URL11}/${itemId}`, { searchParams: { locale }, signal }).json();
270
+ return itemDetailViewSchema.parse(data);
271
+ }
272
+ async function updateItem(itemId, item) {
273
+ await client.put(`${BASE_URL11}/details/${itemId}`, { json: { ...item } }).json();
274
+ }
275
+ async function deleteItem(itemId) {
276
+ await client.delete(`${BASE_URL11}/${itemId}`);
277
+ }
278
+ async function deleteItems(itemIds) {
279
+ const params = new URLSearchParams();
280
+ itemIds.forEach((id) => {
281
+ params.append("items", id);
282
+ });
283
+ await client.delete(`${BASE_URL11}`, { searchParams: params });
284
+ }
285
+ async function getItemInfoId(spsItemId, signal) {
286
+ const data = await client.get(`${BASE_URL11}/${spsItemId}/itemInfoId`, { signal }).json();
287
+ return z.number().parse(data);
288
+ }
289
+ async function getSpsItemId(itemInfoId, signal) {
290
+ const data = await client.get(`${BASE_URL11}/${itemInfoId}/spsItemId`, { signal }).json();
291
+ return SpsItemIdViewSchema.parse(data);
292
+ }
293
+ return {
294
+ searchItems,
295
+ getItem,
296
+ updateItem,
297
+ deleteItem,
298
+ deleteItems,
299
+ getItemInfoId,
300
+ getSpsItemId
301
+ };
302
+ }
303
+
304
+ // lib/errors/index.ts
305
+ var BASE_URL12 = "errors";
306
+ function createErrorsApi(client) {
307
+ async function getInvalidItemErrorDetails(itemInfoId, signal) {
308
+ const data = await client.get(`${BASE_URL12}/items/${itemInfoId}`, {
309
+ signal
310
+ }).json();
311
+ return itemErrorDetailsResultSchema.parse(data);
312
+ }
313
+ return {
314
+ getInvalidItemErrorDetails
315
+ };
316
+ }
317
+
318
+ export {
319
+ BASE_URL,
320
+ createImportsApi,
321
+ BASE_URL2,
322
+ BASE_URL_V2,
323
+ createExportsApi,
324
+ BASE_URL3,
325
+ createProductTypesApi,
326
+ BASE_URL4,
327
+ createTradingPartnerAccessApi,
328
+ BASE_URL5,
329
+ createCategoriesApi,
330
+ BASE_URL6,
331
+ createAttributesApi,
332
+ BASE_URL7,
333
+ createLocaleApi,
334
+ BASE_URL8,
335
+ createSpreadsheetTemplateApi,
336
+ BASE_URL9,
337
+ createWhoAmIApi,
338
+ BASE_URL10,
339
+ createCompanyFeaturesApi,
340
+ BASE_URL11,
341
+ createItemsApi,
342
+ BASE_URL12,
343
+ createErrorsApi
344
+ };