shipbob-node-sdk 0.0.16 → 0.0.18

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 (109) hide show
  1. package/README.md +78 -175
  2. package/dist/WebScraper.js +7 -5
  3. package/dist/WebScraper.js.map +1 -1
  4. package/dist/client/2025-07/client/client.gen.d.ts +2 -0
  5. package/dist/client/2025-07/client/client.gen.js +240 -0
  6. package/dist/client/2025-07/client/client.gen.js.map +1 -0
  7. package/dist/client/2025-07/client/index.d.ts +8 -0
  8. package/dist/client/2025-07/client/index.js +18 -0
  9. package/dist/client/2025-07/client/index.js.map +1 -0
  10. package/dist/client/2025-07/client/types.gen.d.ts +117 -0
  11. package/dist/client/2025-07/client/types.gen.js +4 -0
  12. package/dist/client/2025-07/client/types.gen.js.map +1 -0
  13. package/dist/client/2025-07/client/utils.gen.d.ts +33 -0
  14. package/dist/client/2025-07/client/utils.gen.js +242 -0
  15. package/dist/client/2025-07/client/utils.gen.js.map +1 -0
  16. package/dist/client/2025-07/client.gen.d.ts +12 -0
  17. package/dist/client/2025-07/client.gen.js +7 -0
  18. package/dist/client/2025-07/client.gen.js.map +1 -0
  19. package/dist/client/2025-07/core/auth.gen.d.ts +18 -0
  20. package/dist/client/2025-07/core/auth.gen.js +19 -0
  21. package/dist/client/2025-07/core/auth.gen.js.map +1 -0
  22. package/dist/client/2025-07/core/bodySerializer.gen.d.ts +25 -0
  23. package/dist/client/2025-07/core/bodySerializer.gen.js +61 -0
  24. package/dist/client/2025-07/core/bodySerializer.gen.js.map +1 -0
  25. package/dist/client/2025-07/core/params.gen.d.ts +43 -0
  26. package/dist/client/2025-07/core/params.gen.js +105 -0
  27. package/dist/client/2025-07/core/params.gen.js.map +1 -0
  28. package/dist/client/2025-07/core/pathSerializer.gen.d.ts +33 -0
  29. package/dist/client/2025-07/core/pathSerializer.gen.js +116 -0
  30. package/dist/client/2025-07/core/pathSerializer.gen.js.map +1 -0
  31. package/dist/client/2025-07/core/queryKeySerializer.gen.d.ts +18 -0
  32. package/dist/client/2025-07/core/queryKeySerializer.gen.js +99 -0
  33. package/dist/client/2025-07/core/queryKeySerializer.gen.js.map +1 -0
  34. package/dist/client/2025-07/core/serverSentEvents.gen.d.ts +71 -0
  35. package/dist/client/2025-07/core/serverSentEvents.gen.js +138 -0
  36. package/dist/client/2025-07/core/serverSentEvents.gen.js.map +1 -0
  37. package/dist/client/2025-07/core/types.gen.d.ts +78 -0
  38. package/dist/client/2025-07/core/types.gen.js +4 -0
  39. package/dist/client/2025-07/core/types.gen.js.map +1 -0
  40. package/dist/client/2025-07/core/utils.gen.d.ts +19 -0
  41. package/dist/client/2025-07/core/utils.gen.js +94 -0
  42. package/dist/client/2025-07/core/utils.gen.js.map +1 -0
  43. package/dist/client/2025-07/index.d.ts +2 -0
  44. package/dist/client/2025-07/index.js +73 -0
  45. package/dist/client/2025-07/index.js.map +1 -0
  46. package/dist/client/2025-07/sdk.gen.d.ts +380 -0
  47. package/dist/client/2025-07/sdk.gen.js +778 -0
  48. package/dist/client/2025-07/sdk.gen.js.map +1 -0
  49. package/dist/client/2025-07/types.gen.d.ts +7191 -0
  50. package/dist/client/2025-07/types.gen.js +4 -0
  51. package/dist/client/2025-07/types.gen.js.map +1 -0
  52. package/dist/client/2026-01/client/client.gen.d.ts +2 -0
  53. package/dist/client/2026-01/client/client.gen.js +240 -0
  54. package/dist/client/2026-01/client/client.gen.js.map +1 -0
  55. package/dist/client/2026-01/client/index.d.ts +8 -0
  56. package/dist/client/2026-01/client/index.js +18 -0
  57. package/dist/client/2026-01/client/index.js.map +1 -0
  58. package/dist/client/2026-01/client/types.gen.d.ts +117 -0
  59. package/dist/client/2026-01/client/types.gen.js +4 -0
  60. package/dist/client/2026-01/client/types.gen.js.map +1 -0
  61. package/dist/client/2026-01/client/utils.gen.d.ts +33 -0
  62. package/dist/client/2026-01/client/utils.gen.js +242 -0
  63. package/dist/client/2026-01/client/utils.gen.js.map +1 -0
  64. package/dist/client/2026-01/client.gen.d.ts +12 -0
  65. package/dist/client/2026-01/client.gen.js +7 -0
  66. package/dist/client/2026-01/client.gen.js.map +1 -0
  67. package/dist/client/2026-01/core/auth.gen.d.ts +18 -0
  68. package/dist/client/2026-01/core/auth.gen.js +19 -0
  69. package/dist/client/2026-01/core/auth.gen.js.map +1 -0
  70. package/dist/client/2026-01/core/bodySerializer.gen.d.ts +25 -0
  71. package/dist/client/2026-01/core/bodySerializer.gen.js +61 -0
  72. package/dist/client/2026-01/core/bodySerializer.gen.js.map +1 -0
  73. package/dist/client/2026-01/core/params.gen.d.ts +43 -0
  74. package/dist/client/2026-01/core/params.gen.js +105 -0
  75. package/dist/client/2026-01/core/params.gen.js.map +1 -0
  76. package/dist/client/2026-01/core/pathSerializer.gen.d.ts +33 -0
  77. package/dist/client/2026-01/core/pathSerializer.gen.js +116 -0
  78. package/dist/client/2026-01/core/pathSerializer.gen.js.map +1 -0
  79. package/dist/client/2026-01/core/queryKeySerializer.gen.d.ts +18 -0
  80. package/dist/client/2026-01/core/queryKeySerializer.gen.js +99 -0
  81. package/dist/client/2026-01/core/queryKeySerializer.gen.js.map +1 -0
  82. package/dist/client/2026-01/core/serverSentEvents.gen.d.ts +71 -0
  83. package/dist/client/2026-01/core/serverSentEvents.gen.js +138 -0
  84. package/dist/client/2026-01/core/serverSentEvents.gen.js.map +1 -0
  85. package/dist/client/2026-01/core/types.gen.d.ts +78 -0
  86. package/dist/client/2026-01/core/types.gen.js +4 -0
  87. package/dist/client/2026-01/core/types.gen.js.map +1 -0
  88. package/dist/client/2026-01/core/utils.gen.d.ts +19 -0
  89. package/dist/client/2026-01/core/utils.gen.js +94 -0
  90. package/dist/client/2026-01/core/utils.gen.js.map +1 -0
  91. package/dist/client/2026-01/index.d.ts +2 -0
  92. package/dist/client/2026-01/index.js +73 -0
  93. package/dist/client/2026-01/index.js.map +1 -0
  94. package/dist/client/2026-01/sdk.gen.d.ts +450 -0
  95. package/dist/client/2026-01/sdk.gen.js +848 -0
  96. package/dist/client/2026-01/sdk.gen.js.map +1 -0
  97. package/dist/client/2026-01/types.gen.d.ts +7282 -0
  98. package/dist/client/2026-01/types.gen.js +4 -0
  99. package/dist/client/2026-01/types.gen.js.map +1 -0
  100. package/dist/index.d.ts +20 -178
  101. package/dist/index.js +116 -386
  102. package/dist/index.js.map +1 -1
  103. package/dist/types.d.ts +61 -1435
  104. package/dist/types.js +1 -38
  105. package/dist/types.js.map +1 -1
  106. package/openapi-1.0.json +8422 -0
  107. package/openapi-2025-07.json +1 -0
  108. package/openapi-2026-01.json +1 -0
  109. package/package.json +6 -9
package/dist/index.js CHANGED
@@ -14,425 +14,155 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createShipBobApi = void 0;
18
- /* eslint-disable @typescript-eslint/consistent-type-definitions */
19
- const node_url_1 = require("node:url"); // WHATWG
17
+ exports.createAPI = void 0;
18
+ const client_gen_1 = require("./client/2026-01/client.gen");
19
+ const sdk_gen_1 = require("./client/2026-01/sdk.gen");
20
20
  __exportStar(require("./types"), exports);
21
21
  __exportStar(require("./oAuth"), exports);
22
- // Products
23
- const PATH_1_0_CHANNEL = '/1.0/channel';
24
- const PATH_1_0_PRODUCT = '/1.0/product';
25
- const PATH_2_0_PRODUCT = '/2.0/product';
26
- const PATH_EXPERIMENTAL_PRODUCT = '/experimental/product';
27
- // Orders
28
- const PATH_1_0_ORDER = '/1.0/order';
29
- const PATH_1_0_SHIPPINGMETHOD = '/1.0/shippingmethod';
30
- // Shipments
31
- const PATH_1_0_SHIPMENT = '/1.0/shipment';
32
- /**
33
- * Warehouse Receiving Order
34
- */
35
- const PATH_2_0_RECEIVING = '/2.0/receiving';
36
- /**
37
- * Not part of API docs
38
- */
39
- const PATH_2_0_RECEIVING_EXTENDED = '/2.0/receiving-extended';
40
- /**
41
- * Warehouse Receiving Order
42
- */
43
- const PATH_EXPERIMENTAL_RECEIVING = '/experimental/receiving';
44
- const PATH_1_0_INVENTORY = '/1.0/inventory';
45
- const PATH_1_0_FULFILLMENT_CENTER = '/1.0/fulfillmentCenter';
46
- const PATH_1_0_WEBHOOK = '/1.0/webhook';
47
- const PATH_2_0_SIMULATE = '/2.0/simulate';
22
+ const REMAINING_CALLS = 'x-remaining-calls'; // in sliding window
23
+ const RETRY_AFTER_SECONDS = 'x-retry-after'; // seconds to wait for rate-limiting
24
+ const IGNORED_HEADERS = [
25
+ 'cf-cache-status',
26
+ 'cf-ray',
27
+ 'connection',
28
+ 'content-encoding',
29
+ 'content-length',
30
+ // 'content-type', // useful for failed responses
31
+ 'date',
32
+ 'request-context',
33
+ 'server',
34
+ 'strict-transport-security',
35
+ 'transfer-encoding',
36
+ 'vary',
37
+ 'x-powered-by',
38
+ REMAINING_CALLS, // part of rateLimit: {}
39
+ RETRY_AFTER_SECONDS, // part of rateLimit: {}
40
+ ];
48
41
  // single-merchant application
49
42
  const DEFAULT_CHANNEL_APPLICATION_NAME = 'SMA';
50
43
  /**
51
- * Create API with PAT (personal access token) or oAuth (access token).
44
+ * Create an authenticated API client for the 2026-01 OpenAPI endpoints.
45
+ * Loads channels and selects one to send as `shipbob_channel_id` header on all requests (@see options parameter).
52
46
  *
53
- * TODO: Consider adding global parameters like timeout (or per method). Some endpoints are slower than others.
54
- * TODO: Consider allowing channel selection to occur based on an available scope. ie: `fulfillments_write` instead of only application name.
47
+ * The issue with this is that it calls static methods on the client, so you can't have multiple instances configured differently.
48
+ * We could return a client and then it could be passed explicitly to the imported methods.
55
49
  *
56
- * @param token Personal Access Token for `connectionType` "PAT". Otherwise an OAuth token when `connectinoType` is 'OAuth
57
- * @param apiBaseUrl must pass "api.shipbob.com" otherwise sandbox will be used.
58
- * @param channelPredicateOrApplicationName will default to choosing "SMA" application_name, otherwise provide your own application_name here (ie: for oAuth use the name of your App)
59
- * @param options defaults to not logging traffic
50
+ * @param token Personal Access Token (PAT) or `accessToken` (from web scraper)
51
+ * @param baseUrl API base URL — defaults to `https://sandbox-api.shipbob.com`. Must provide for production.
52
+ * @param channelPredicateOrApplicationName Application name string or predicate to select a channel. Defaults to 'SMA'.
53
+ * @returns Authenticated client with channel header configured
60
54
  */
61
- const createShipBobApi = async (token, apiBaseUrl = 'sandbox-api.shipbob.com', channelPredicateOrApplicationName = DEFAULT_CHANNEL_APPLICATION_NAME, options = {
55
+ const createAPI = async (token, baseUrl = 'https://sandbox-api.shipbob.com', channelPredicateOrApplicationName = DEFAULT_CHANNEL_APPLICATION_NAME, options = {
62
56
  logTraffic: false,
63
57
  skipChannelLoad: false,
64
58
  }) => {
65
- if (token === undefined || token === '') {
66
- throw new Error('Cannot create a ShipBob API without a PAT');
59
+ if (!token) {
60
+ throw new Error('A PAT or oAuth token is required to create a ShipBob API client');
67
61
  }
68
- const credentials = {
69
- token,
70
- };
71
- const apiConfiguration = {
72
- sendChannelId: options.sendChannelId !== false,
73
- };
74
- const REMAINING_CALLS = 'x-remaining-calls'; // in sliding window
75
- const RETRY_AFTER_SECONDS = 'x-retry-after'; // seconds to wait for rate-limiting
76
- const CONTENT_TYPE = 'content-type';
77
- const IGNORED_HEADERS = [
78
- 'cf-cache-status',
79
- 'cf-ray',
80
- 'connection',
81
- 'content-encoding',
82
- 'content-length',
83
- // 'content-type', // useful for failed responses
84
- 'date',
85
- 'request-context',
86
- 'server',
87
- 'strict-transport-security',
88
- 'transfer-encoding',
89
- 'vary',
90
- 'x-powered-by',
91
- REMAINING_CALLS, // part of rateLimit: {}
92
- RETRY_AFTER_SECONDS, // part of rateLimit: {}
93
- ];
94
- const getResult = async (res) => {
95
- const remainingCalls = res.headers.has(REMAINING_CALLS) ? parseInt(res.headers.get(REMAINING_CALLS)) : null;
96
- const retryAfter = res.headers.has(RETRY_AFTER_SECONDS) ? parseInt(res.headers.get(RETRY_AFTER_SECONDS)) : null;
97
- const headers = Array.from(res.headers).reduce((prev, [key, val]) => {
98
- if (IGNORED_HEADERS.indexOf(key) === -1) {
99
- prev[key] = val;
100
- }
101
- return prev;
102
- }, {});
103
- const rateLimit = {
104
- remainingCalls,
105
- retryAfter,
106
- };
107
- const hasJsonContentHeader = (res) => {
108
- // TODO: consider making this case-insensitive
109
- const contentType = res.headers.has(CONTENT_TYPE) ? res.headers.get(CONTENT_TYPE) : null;
110
- return (contentType &&
111
- (contentType.startsWith('application/json') || contentType.startsWith('application/problem+json')));
112
- };
113
- if (res.ok) {
114
- const isJson = hasJsonContentHeader(res);
115
- if (!isJson) {
116
- // NOTE: DELETE webhook is a 204 with an empty response (ie: 'content-length' = '0')
117
- console.warn(' > content-type not found for JSON - returning text');
62
+ const normalizedBaseUrl = baseUrl.startsWith('https://') ? baseUrl : `https://${baseUrl}`;
63
+ client_gen_1.client.setConfig({
64
+ baseUrl: normalizedBaseUrl,
65
+ auth: token,
66
+ });
67
+ client_gen_1.client.interceptors.response.clear();
68
+ client_gen_1.client.interceptors.response.use((response, _request) => {
69
+ if (options.logTraffic) {
70
+ const remainingCalls = response.headers.has(REMAINING_CALLS)
71
+ ? parseInt(response.headers.get(REMAINING_CALLS))
72
+ : null;
73
+ const retryAfter = response.headers.has(RETRY_AFTER_SECONDS)
74
+ ? parseInt(response.headers.get(RETRY_AFTER_SECONDS))
75
+ : null;
76
+ if (remainingCalls !== null || retryAfter !== null) {
77
+ console.log(` > remaining calls: ${remainingCalls} - retry after: ${retryAfter}`);
118
78
  }
119
- const data = isJson ? (await res.json()) : (await res.text());
120
- return {
121
- data,
122
- headers,
123
- statusCode: res.status,
124
- success: true,
125
- rateLimit,
126
- };
79
+ const headers = Array.from(response.headers).reduce((prev, [key, val]) => {
80
+ if (IGNORED_HEADERS.indexOf(key) === -1) {
81
+ prev[key] = val;
82
+ }
83
+ return prev;
84
+ }, {});
85
+ console.log(` > Response headers: ${JSON.stringify(Object.keys(headers)
86
+ .map((key) => `${key}:${headers[key]}}`)
87
+ .join(','))}`);
127
88
  }
128
- // also http status codes 400, 422 tend to be JSON
129
- // application/json; charset=utf-8
130
- const isJson = hasJsonContentHeader(res);
131
- const data = isJson ? await res.json() : await res.text();
132
- return {
133
- data,
134
- headers,
135
- statusCode: res.status,
136
- success: false,
137
- rateLimit,
138
- };
139
- };
140
- const getHeaders = (credentials) => {
141
- const headers = {
142
- Authorization: `Bearer ${credentials.token}`,
143
- 'Content-Type': 'application/json',
144
- Accept: 'application/json',
145
- 'User-Agent': 'shipbob-node-sdk',
146
- };
147
- if (credentials.channelId && apiConfiguration.sendChannelId !== false) {
148
- headers['shipbob_channel_id'] = credentials.channelId.toString();
89
+ return response;
90
+ });
91
+ let selectedChannel = undefined;
92
+ if (options.skipChannelLoad !== true) {
93
+ const { data, error } = await (0, sdk_gen_1.get202601Channel)();
94
+ if (error) {
95
+ throw new Error(`Failed to load channels: ${JSON.stringify(error)}`);
149
96
  }
97
+ const channels = data?.items ?? [];
98
+ selectedChannel =
99
+ typeof channelPredicateOrApplicationName === 'string'
100
+ ? channels.find((c) => c.application_name === channelPredicateOrApplicationName)
101
+ : channelPredicateOrApplicationName(channels);
102
+ if (!selectedChannel?.id) {
103
+ throw new Error(`Did not find channel. Available application names: {${channels.map((c) => c.application_name).join(',')}}`);
104
+ }
105
+ }
106
+ client_gen_1.client.interceptors.request.clear();
107
+ client_gen_1.client.interceptors.request.use((request, _options) => {
150
108
  if (options.extraHeaders) {
151
109
  for (const key of Object.keys(options.extraHeaders)) {
152
- // these will be logged if they are configured
153
- headers[key] = options.extraHeaders[key];
154
- }
155
- }
156
- if (options.logTraffic === true) {
157
- const headersToLog = Object.keys(headers).reduce((prev, cur) => {
158
- prev.push(cur === 'Authorization' ? `${cur}:Bearer <redacted>` : `${cur}:${headers[cur]}`);
159
- return prev;
160
- }, []);
161
- console.log(` > Headers: ${JSON.stringify(headersToLog.join(','))}`);
162
- }
163
- return headers;
164
- };
165
- /**
166
- * Will GET using our PAT and SAM channel
167
- */
168
- const httpGet = async (credentials, path, query) => {
169
- const url = new node_url_1.URL(`https://${apiBaseUrl}${path}`);
170
- if (query) {
171
- for (const param of Object.keys(query)) {
172
- // the number[] is probably wrong
173
- const val = typeof query[param] === 'string' ? query[param] : query[param].toString();
174
- url.searchParams.set(param, val);
110
+ request.headers.set(key, options.extraHeaders[key]);
175
111
  }
176
- if (options.logTraffic) {
177
- console.log(` > before: ${url.href}`);
178
- }
179
- // The API is using unescaped reserved characters. Since we aren't passing "," or ":" ever then this is safe (for one person).
180
- // If a caller is searching for ie: products with those characters in the name then this may fail.
181
- // ie: https://.../experimental/product?sku=any%3A123%2C456 => https://.../experimental/product?sku=any:123,456
182
- // NOTE: both replacements are needed for above to work
183
- url.search = url.search.replace(/%2C/g, ',').replace(/%3A/g, ':'); //;
184
- }
185
- const opts = {
186
- method: 'GET',
187
- headers: getHeaders(credentials),
188
- };
189
- if (options.logTraffic) {
190
- console.log(` > GET: ${url.href}`);
191
- }
192
- const res = await fetch(url.href, opts);
193
- return getResult(res);
194
- };
195
- /**
196
- * Will default POST to Shipbob a request as JSON. Can be used for any type of request
197
- */
198
- const httpData = async (credentials, data, path, method = 'POST') => {
199
- if (credentials.channelId === undefined) {
200
- throw new Error('Channel ID missing');
201
- }
202
- const url = new node_url_1.URL(`https://${apiBaseUrl}${path}`);
203
- const opts = {
204
- method,
205
- headers: getHeaders(credentials),
206
- body: data !== undefined ? JSON.stringify(data) : undefined,
207
- };
208
- if (options.logTraffic) {
209
- console.log(` > ${method} ${url.href}`);
210
112
  }
211
- const res = await fetch(url.href, opts);
212
- return getResult(res);
213
- };
214
- if (options.skipChannelLoad !== true) {
215
- const channelsResponse = await httpGet(credentials, PATH_1_0_CHANNEL);
216
- if (!channelsResponse.success) {
217
- throw new Error(` > GET /1.0/channel -> ${channelsResponse.statusCode} '${channelsResponse.data}'`);
218
- }
219
- const selectedChannel = typeof channelPredicateOrApplicationName === 'string'
220
- ? channelsResponse.data.find((c) => c.application_name === channelPredicateOrApplicationName)
221
- : channelPredicateOrApplicationName(channelsResponse.data);
222
- if (selectedChannel === undefined) {
223
- throw new Error(`Did not find channel. Available application names: {${channelsResponse.data.map((c) => c.application_name).join(',')}}`);
113
+ if (options.sendChannelId && selectedChannel && selectedChannel.id) {
114
+ request.headers.set('shipbob_channel_id', selectedChannel.id.toString());
224
115
  }
116
+ // Their API only works using unescaped reserved characters. Since we aren't passing "," or ":" ever then this is safe (for us).
117
+ // If a caller is searching for ie: products with those characters in the name then this may fail.
118
+ // ie: https://.../experimental/product?sku=any%3A123%2C456 => https://.../experimental/product?sku=any:123,456
119
+ // NOTE: both replacements are needed for above to work
120
+ const url = request.url.replace(/%2C/g, ',').replace(/%3A/g, ':');
121
+ const newRequest = new Request(url, request);
225
122
  if (options.logTraffic) {
226
- console.log(` > Found channel id: ${selectedChannel.id} with application name: '${selectedChannel.application_name}'`);
123
+ console.log(`> ${newRequest.method}: '${newRequest.url}'`);
124
+ if (newRequest.method !== 'GET' && newRequest.bodyUsed) {
125
+ const utf8Stream = newRequest.body?.pipeThrough(new TextDecoderStream());
126
+ console.log(` > body: ${utf8Stream}`);
127
+ }
227
128
  }
228
- credentials.channelId = selectedChannel.id;
229
- }
230
- else {
231
- console.warn(' > channel load skipped. All requests will be sent without a channel id.');
232
- }
233
- return {
234
- get sendingChannelIds() {
235
- return apiConfiguration.sendChannelId;
236
- },
237
- set sendChannelId(value) {
238
- apiConfiguration.sendChannelId = value;
239
- },
240
- /**
241
- * Useful to retrive cursor paths (ie: next) or header 'next-page'. You should call like:
242
- *
243
- * `api.getPath<ExperimentalPagedResult<GetProductExperimentalResponse>>('/Product?cursor=H4sIAAA...')`
244
- *
245
- * NOTE: can be called without typings. ie: `api.getPath('/Product?cursor=H4sIAAA...')`
246
- * @param path full path with leading slash
247
- * @returns response with expected typings you can provide.
248
- */
249
- getPath: async (path) => {
250
- return await httpGet(credentials, path);
251
- },
252
- getChannels: async () => {
253
- return await httpGet(credentials, PATH_1_0_CHANNEL);
254
- },
255
- /**
256
- * Gets by *their* product id
257
- */
258
- getProductById: async (productId) => {
259
- const getProductResult = await httpGet(credentials, `${PATH_1_0_PRODUCT}/${productId}`);
260
- return getProductResult;
261
- },
262
- getProducts1_0: async (query) => {
263
- return await httpGet(credentials, PATH_1_0_PRODUCT, query);
264
- },
265
- /**
266
- * NOTE: you need to use the headers (part of this client response) to page the results.
267
- * page-number='1'
268
- * page-size='50'
269
- * total-count='1'
270
- * total-pages='1'
271
- *
272
- * NOTE: we can probably pass more than "variants" prop. We could on the /1.0/product endpoint
273
- * NOTE: This PATCH functionality will be available in the next version available in ShipBob next large release January 2025, it may require extra scope.
274
- */
275
- updateProduct2_0: async (productId, variants) => {
276
- return await httpData(credentials, {
277
- variants,
278
- }, `${PATH_2_0_PRODUCT}/${productId}`, 'PATCH');
279
- },
280
- /**
281
- * Unsure how this is different from /2.0/product except for "barcode" -> "barcodes"
282
- */
283
- updateProductExperimental: async (productId, variants) => {
284
- return await httpData(credentials, {
285
- variants,
286
- }, `${PATH_EXPERIMENTAL_PRODUCT}/${productId}`, 'PATCH');
287
- },
288
- /**
289
- * Not supported here, but:
290
- * Some search filters allow for operators (equals, not equals, starts with, ends with, contains, etc) to get more exact values. When filtering with an operator, the query string will look like the below:
291
- * Example: /product?{filter}={operator}:{value}
292
- * Example: /product?sku=any:shirt-a,shirt-b,shirt-c Find products that match any of these SKUs
293
- * Example: /product?onHandQuantity=gt:0 Find products where OnHandQty greater than 0
294
- */
295
- getProducts2_0: async (query) => {
296
- return await httpGet(credentials, PATH_2_0_PRODUCT, query);
297
- },
298
- /**
299
- * Note sure how this is different from /2.0/product. Only notable difference is "barcodes" type from string to object.
300
- */
301
- getProductsExperimental: async (query) => {
302
- return await httpGet(credentials, PATH_EXPERIMENTAL_PRODUCT, query);
303
- },
304
- createProduct1_0: async (product) => {
305
- return await httpData(credentials, product, PATH_1_0_PRODUCT);
306
- },
307
- /**
308
- * The request part for variant is not accurate. This is just for testing - there are no official docs.
309
- */
310
- createProduct2_0: async (product) => {
311
- return await httpData(credentials, product, PATH_2_0_PRODUCT);
312
- },
313
- /**
314
- * Unsure how this is different from '2.0/product' except for "barcode" -> "barcodes"
315
- */
316
- createProductExperimental: async (product) => {
317
- return await httpData(credentials, product, PATH_EXPERIMENTAL_PRODUCT);
318
- },
319
- /**
320
- * Look in the returned headers to get paging information.
321
- */
322
- getOrders: async (query) => {
323
- return await httpGet(credentials, PATH_1_0_ORDER, query);
324
- },
325
- /**
326
- * Get one Shipment by Order Id and Shipment Id
327
- */
328
- getOneShipmentByOrderIdAndShipmentId: async (orderId, shipmentId) => {
329
- const path = `${PATH_1_0_ORDER}/${orderId}/shipment/${shipmentId}`;
330
- return await httpGet(credentials, path);
331
- },
332
- /**
333
- * Get one Shipment by Shipment Id
334
- */
335
- getOneShipment: async (shipmentId) => {
336
- const path = `${PATH_1_0_SHIPMENT}/${shipmentId}`;
337
- return await httpGet(credentials, path);
338
- },
339
- /**
340
- * NOTE: After you place an order it is not immediately available on the "getOrders" endpoint.
341
- * You are best off using the returned result. ShipBob suggests 5 seconds as permitted delay time.
342
- */
343
- placeOrder: async (order) => {
344
- return await httpData(credentials, order, PATH_1_0_ORDER);
345
- },
346
- /**
347
- * Cancel single Order by Order Id
348
- *
349
- * @param orderId The order Id to cancel
350
- */
351
- cancelSingleOrderByOrderId: async (orderId) => {
352
- return await httpData(credentials, undefined, `${PATH_1_0_ORDER}/${orderId}/cancel`);
353
- },
354
- getShippingMethods: async () => {
355
- return await httpGet(credentials, PATH_1_0_SHIPPINGMETHOD);
356
- },
357
- /**
358
- * The responses don't indicate if they were registered with a channel or not.
359
- */
360
- getWebhooks: async () => {
361
- return await httpGet(credentials, PATH_1_0_WEBHOOK);
129
+ return newRequest;
130
+ });
131
+ client_gen_1.client.setConfig({
132
+ headers: {
133
+ 'User-Agent': 'shipbob-node-sdk',
362
134
  },
135
+ });
136
+ // allows caller to alter options after API creation (same instance)
137
+ return {
138
+ options,
363
139
  /**
364
140
  *
365
- * @param webhook just needs topic and subscription url.
366
- * @param sendChannelId defaults `true`. Not providing channel id will (I think) subscribe to all channels. You need to match when unsubscribing.
141
+ * @param path should include leading slash (api version is included automatically)
367
142
  * @returns
368
143
  */
369
- registerWebhookSubscription: async (webhook) => {
370
- return await httpData(credentials, webhook, PATH_1_0_WEBHOOK, undefined);
144
+ get: async (path) => {
145
+ const response = await client_gen_1.client.get({
146
+ security: [{ scheme: 'bearer', type: 'http' }],
147
+ url: `/2026-01${path}`,
148
+ });
149
+ return response;
371
150
  },
372
151
  /**
373
- * Can generate 500 response with data: "The wait operation timed out." If so, check your channel id (or lack thereof) matches the subscription registration.
374
152
  *
375
- * NOTE: make sure the API is configured to send or not send the same as when you registered the webhook.
376
- *
377
- * @param id channelId from getWebhooks()
153
+ * @param path should include leading slash (api version is included automatically)
154
+ * @param body request body
378
155
  * @returns
379
156
  */
380
- unregisterWebhookSubscription: async (id) => {
381
- return await httpData(credentials, undefined, `${PATH_1_0_WEBHOOK}/${id}`, 'DELETE');
382
- },
383
- getFulfillmentCenters: async () => {
384
- return await httpGet(credentials, PATH_1_0_FULFILLMENT_CENTER);
385
- },
386
- createWarehouseReceivingOrder: async (request) => {
387
- return await httpData(credentials, request, PATH_2_0_RECEIVING);
388
- },
389
- getWarehouseReceivingOrder: async (orderId) => {
390
- return await httpGet(credentials, `${PATH_2_0_RECEIVING}/${orderId}`);
391
- },
392
- getWarehouseReceivingOrderBoxes: async (orderId) => {
393
- return await httpGet(credentials, `${PATH_2_0_RECEIVING}/${orderId}/boxes`);
394
- },
395
- /**
396
- * NOTE: should verify that response matches 1.0 product endpoint
397
- */
398
- getReceivingExtended: async (query) => {
399
- return await httpGet(credentials, PATH_2_0_RECEIVING_EXTENDED, query);
400
- },
401
- /**
402
- * This must be for setting/clearing if it has been synced externally.
403
- *
404
- * Use case is interop via searching for "completed" that are not yet synced.
405
- *
406
- * NOTE: this is tagged experimental, so might change or be dropped
407
- */
408
- experimentalReceivingSetExternalSync: async (ids, isExternalSync) => {
409
- return await httpData(credentials, {
410
- ids,
411
- is_external_sync: isExternalSync,
412
- }, `${PATH_EXPERIMENTAL_RECEIVING}/:set-external-sync`);
413
- },
414
- /**
415
- * NOTE: should verify the response type matches the product 1.0 endpoint
416
- */
417
- listInventory: async (query) => {
418
- return await httpGet(credentials, PATH_1_0_INVENTORY, query);
419
- },
420
- /**
421
- * Only for sandbox: https://developer.shipbob.com/sandbox-simulations/
422
- */
423
- simulateShipment: async (request) => {
424
- return await httpData(credentials, request, `${PATH_2_0_SIMULATE}/shipment`);
425
- },
426
- /**
427
- *
428
- * Only for sandbox: https://developer.shipbob.com/sandbox-simulations/
429
- *
430
- * @param simulationId UUID from "/2.0/simulate/shipment" call
431
- */
432
- getSimulationStatus: async (simulationId) => {
433
- return await httpGet(credentials, `${PATH_2_0_SIMULATE}/status/${simulationId}`);
157
+ post: async (path, body) => {
158
+ const response = await client_gen_1.client.post({
159
+ security: [{ scheme: 'bearer', type: 'http' }],
160
+ url: `/2026-01${path}`,
161
+ body,
162
+ });
163
+ return response;
434
164
  },
435
165
  };
436
166
  };
437
- exports.createShipBobApi = createShipBobApi;
167
+ exports.createAPI = createAPI;
438
168
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,4DAAqD;AACrD,sDAA4D;AAG5D,0CAAwB;AACxB,0CAAwB;AAWxB,MAAM,eAAe,GAAG,mBAAmB,CAAC,CAAC,oBAAoB;AACjE,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,oCAAoC;AAEjF,MAAM,eAAe,GAAG;IACtB,iBAAiB;IACjB,QAAQ;IACR,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;IAChB,iDAAiD;IACjD,MAAM;IACN,iBAAiB;IACjB,QAAQ;IACR,2BAA2B;IAC3B,mBAAmB;IACnB,MAAM;IACN,cAAc;IACd,eAAe,EAAE,wBAAwB;IACzC,mBAAmB,EAAE,wBAAwB;CAC9C,CAAC;AAEF,8BAA8B;AAC9B,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAO/C;;;;;;;;;;;GAWG;AACI,MAAM,SAAS,GAAG,KAAK,EAC5B,KAAa,EACb,UAAyE,iCAAiC,EAC1G,oCAIiD,gCAAgC,EACjF,UAAyB;IACvB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,KAAK;CACvB,EACD,EAAE;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC;IAC1F,mBAAM,CAAC,SAAS,CAAC;QACf,OAAO,EAAE,iBAAiB;QAC1B,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IAEH,mBAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACrC,mBAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;QACtD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;gBAC1D,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC;gBAClD,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;gBAC1D,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAE,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAC;YAET,IAAI,cAAc,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,uBAAuB,cAAc,mBAAmB,UAAU,EAAE,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAyB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAC/F,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBAClB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,OAAO,CAAC,GAAG,CACT,wBAAwB,IAAI,CAAC,SAAS,CACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;iBACjB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;iBACvC,IAAI,CAAC,GAAG,CAAC,CACb,EAAE,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,GAAyC,SAAS,CAAC;IAEtE,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,0BAAgB,GAAE,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,eAAe;YACb,OAAO,iCAAiC,KAAK,QAAQ;gBACnD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,iCAAiC,CAAC;gBAChF,CAAC,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,uDAAuD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mBAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,mBAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QACpD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,IAAI,eAAe,IAAI,eAAe,CAAC,EAAE,EAAE,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,iIAAiI;QACjI,kGAAkG;QAClG,+GAA+G;QAC/G,uDAAuD;QACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;YAC3D,IAAI,UAAU,CAAC,MAAM,KAAK,KAAK,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACvD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,mBAAM,CAAC,SAAS,CAAC;QACf,OAAO,EAAE;YACP,YAAY,EAAE,kBAAkB;SACjC;KACF,CAAC,CAAC;IAEH,oEAAoE;IACpE,OAAO;QACL,OAAO;QACP;;;;WAIG;QACH,GAAG,EAAE,KAAK,EAAqC,IAAY,EAA2C,EAAE;YACtG,MAAM,QAAQ,GAAG,MAAM,mBAAM,CAAC,GAAG,CAAgB;gBAC/C,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC9C,GAAG,EAAE,WAAW,IAAI,EAAE;aACvB,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD;;;;;WAKG;QACH,IAAI,EAAE,KAAK,EACT,IAAY,EACZ,IAAc,EAC4B,EAAE;YAC5C,MAAM,QAAQ,GAAG,MAAM,mBAAM,CAAC,IAAI,CAAgB;gBAChD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC9C,GAAG,EAAE,WAAW,IAAI,EAAE;gBACtB,IAAI;aACL,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAnJW,QAAA,SAAS,aAmJpB"}