@edgebound/bigcommerce 0.1.3 → 0.2.0
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/dist/addresses.d.mts +27 -0
- package/dist/addresses.d.ts +27 -0
- package/dist/addresses.js +69 -0
- package/dist/addresses.js.map +1 -0
- package/dist/addresses.mjs +9 -0
- package/dist/addresses.mjs.map +1 -0
- package/dist/{bigcommerce.fetcher-D1TyK4y4.d.mts → bigcommerce.fetcher-Ujztbs8P.d.mts} +2 -2
- package/dist/{bigcommerce.fetcher-D1TyK4y4.d.ts → bigcommerce.fetcher-Ujztbs8P.d.ts} +2 -2
- package/dist/{chunk-V2AKD2LM.mjs → chunk-2VMEIQCL.mjs} +63 -27
- package/dist/chunk-2VMEIQCL.mjs.map +1 -0
- package/dist/chunk-BWLQCNNX.mjs +30 -0
- package/dist/chunk-BWLQCNNX.mjs.map +1 -0
- package/dist/companies.d.mts +230 -1
- package/dist/companies.d.ts +230 -1
- package/dist/companies.js +723 -0
- package/dist/companies.js.map +1 -1
- package/dist/companies.mjs +367 -0
- package/dist/companies.mjs.map +1 -1
- package/dist/customers.d.mts +95 -2
- package/dist/customers.d.ts +95 -2
- package/dist/customers.js +245 -63
- package/dist/customers.js.map +1 -1
- package/dist/customers.mjs +172 -46
- package/dist/customers.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +61 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/orders.d.mts +1323 -2
- package/dist/orders.d.ts +1323 -2
- package/dist/orders.js +283 -181
- package/dist/orders.js.map +1 -1
- package/dist/orders.mjs +193 -166
- package/dist/orders.mjs.map +1 -1
- package/dist/payments.d.mts +28 -0
- package/dist/payments.d.ts +28 -0
- package/dist/payments.js +365 -0
- package/dist/payments.js.map +1 -0
- package/dist/payments.mjs +43 -0
- package/dist/payments.mjs.map +1 -0
- package/dist/priceLists.d.mts +81 -0
- package/dist/priceLists.d.ts +81 -0
- package/dist/priceLists.js +458 -0
- package/dist/priceLists.js.map +1 -0
- package/dist/priceLists.mjs +118 -0
- package/dist/priceLists.mjs.map +1 -0
- package/dist/products.d.mts +29 -7
- package/dist/products.d.ts +29 -7
- package/dist/products.js +114 -60
- package/dist/products.js.map +1 -1
- package/dist/products.mjs +26 -25
- package/dist/products.mjs.map +1 -1
- package/dist/salesStaff.d.mts +64 -0
- package/dist/salesStaff.d.ts +64 -0
- package/dist/salesStaff.js +419 -0
- package/dist/salesStaff.js.map +1 -0
- package/dist/salesStaff.mjs +82 -0
- package/dist/salesStaff.mjs.map +1 -0
- package/package.json +38 -15
- package/dist/chunk-V2AKD2LM.mjs.map +0 -1
package/dist/companies.js
CHANGED
|
@@ -1,2 +1,725 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/bigcommerce-entities/companies/index.ts
|
|
31
|
+
var companies_exports = {};
|
|
32
|
+
__export(companies_exports, {
|
|
33
|
+
AssignSalesStaffResponseSchema: () => AssignSalesStaffResponseSchema,
|
|
34
|
+
AssignSalesStaffSchema: () => AssignSalesStaffSchema,
|
|
35
|
+
CompanyExtraFieldSchema: () => CompanyExtraFieldSchema,
|
|
36
|
+
CompanyRoleSchema: () => CompanyRoleSchema,
|
|
37
|
+
CreateCompanyResponseSchema: () => CreateCompanyResponseSchema,
|
|
38
|
+
CreateCompanySchema: () => CreateCompanySchema,
|
|
39
|
+
CreateCompanyUserResponseSchema: () => CreateCompanyUserResponseSchema,
|
|
40
|
+
CreateCompanyUserSchema: () => CreateCompanyUserSchema,
|
|
41
|
+
GetCompanyExtraFieldsCriteriaSchema: () => GetCompanyExtraFieldsCriteriaSchema,
|
|
42
|
+
GetCompanyExtraFieldsResponseSchema: () => GetCompanyExtraFieldsResponseSchema,
|
|
43
|
+
GetCompanyRolesCriteriaSchema: () => GetCompanyRolesCriteriaSchema,
|
|
44
|
+
GetCompanyRolesResponseSchema: () => GetCompanyRolesResponseSchema,
|
|
45
|
+
SetCompanyCreditResponseSchema: () => SetCompanyCreditResponseSchema,
|
|
46
|
+
SetCompanyCreditSchema: () => SetCompanyCreditSchema,
|
|
47
|
+
SetCompanyPaymentMethodsResponseSchema: () => SetCompanyPaymentMethodsResponseSchema,
|
|
48
|
+
SetCompanyPaymentMethodsSchema: () => SetCompanyPaymentMethodsSchema,
|
|
49
|
+
assignSalesStaffToCompany: () => assignSalesStaffToCompany,
|
|
50
|
+
createCompany: () => createCompany,
|
|
51
|
+
createCompanyUser: () => createCompanyUser,
|
|
52
|
+
findCompanyExtraFields: () => findCompanyExtraFields,
|
|
53
|
+
findCompanyRoles: () => findCompanyRoles,
|
|
54
|
+
getAllCompanyExtraFieldsBy: () => getAllCompanyExtraFieldsBy,
|
|
55
|
+
getAllCompanyRolesBy: () => getAllCompanyRolesBy,
|
|
56
|
+
setCompanyCredit: () => setCompanyCredit,
|
|
57
|
+
setCompanyPaymentMethods: () => setCompanyPaymentMethods
|
|
58
|
+
});
|
|
59
|
+
module.exports = __toCommonJS(companies_exports);
|
|
60
|
+
|
|
61
|
+
// src/bigcommerce-entities/companies/assign-sales-staff.ts
|
|
62
|
+
var import_effect8 = require("effect");
|
|
63
|
+
|
|
64
|
+
// src/constants.ts
|
|
65
|
+
var import_effect = require("effect");
|
|
66
|
+
var DEFAULTS = {
|
|
67
|
+
retry: {
|
|
68
|
+
policy: import_effect.Schedule.exponential(import_effect.Duration.millis(200), 2).pipe(
|
|
69
|
+
import_effect.Schedule.intersect(import_effect.Schedule.recurs(3))
|
|
70
|
+
)
|
|
71
|
+
},
|
|
72
|
+
timeout: {
|
|
73
|
+
ms: 3e4
|
|
74
|
+
},
|
|
75
|
+
bigcommerceUrls: {
|
|
76
|
+
b2b: "https://api-b2b.bigcommerce.com/api",
|
|
77
|
+
regular: "https://api.bigcommerce.com/stores"
|
|
78
|
+
},
|
|
79
|
+
customers: {
|
|
80
|
+
getBatchSize: 250
|
|
81
|
+
},
|
|
82
|
+
salesStaff: {
|
|
83
|
+
getBatchSize: 250
|
|
84
|
+
},
|
|
85
|
+
companies: {
|
|
86
|
+
salesStaffAssignments: {
|
|
87
|
+
assignBatchSize: 10,
|
|
88
|
+
concurrency: 2
|
|
89
|
+
},
|
|
90
|
+
extraFields: {
|
|
91
|
+
getBatchSize: 250
|
|
92
|
+
},
|
|
93
|
+
roles: {
|
|
94
|
+
getBatchSize: 250
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
products: {
|
|
98
|
+
updateBatchSize: 5,
|
|
99
|
+
updateConcurrency: 2,
|
|
100
|
+
inventory: {
|
|
101
|
+
updateBatchSize: 2e3,
|
|
102
|
+
updateConcurrency: 2
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
orders: {
|
|
106
|
+
getAllBatchSize: 250,
|
|
107
|
+
shippingAddresses: {
|
|
108
|
+
getAllBatchSize: 250
|
|
109
|
+
},
|
|
110
|
+
products: {
|
|
111
|
+
getAllBatchSize: 250
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
priceLists: {
|
|
115
|
+
getAllBatchSize: 250
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// src/core/bigcommerce.error.ts
|
|
120
|
+
var import_effect2 = require("effect");
|
|
121
|
+
var BigCommerceUnprocessableEntityError = class extends import_effect2.Data.TaggedError(
|
|
122
|
+
"BigCommerceUnprocessableEntityError"
|
|
123
|
+
) {
|
|
124
|
+
};
|
|
125
|
+
var BigCommerceUnauthorizedError = class extends import_effect2.Data.TaggedError(
|
|
126
|
+
"BigCommerceUnauthorizedError"
|
|
127
|
+
) {
|
|
128
|
+
};
|
|
129
|
+
var BigCommerceForbiddenError = class extends import_effect2.Data.TaggedError("BigCommerceForbiddenError") {
|
|
130
|
+
};
|
|
131
|
+
var BigCommerceNotFoundError = class extends import_effect2.Data.TaggedError("BigCommerceNotFoundError") {
|
|
132
|
+
};
|
|
133
|
+
var BigCommerceConflictError = class extends import_effect2.Data.TaggedError("BigCommerceConflictError") {
|
|
134
|
+
};
|
|
135
|
+
var BigCommerceConnectionError = class extends import_effect2.Data.TaggedError("BigCommerceConnectionError") {
|
|
136
|
+
};
|
|
137
|
+
var BigCommerceUnknownError = class extends import_effect2.Data.TaggedError("BigCommerceUnknownError") {
|
|
138
|
+
};
|
|
139
|
+
var BigCommerceInvalidResponseError = class extends import_effect2.Data.TaggedError(
|
|
140
|
+
"BigCommerceInvalidResponseError"
|
|
141
|
+
) {
|
|
142
|
+
};
|
|
143
|
+
var BigCommerceInvalidRequestError = class extends import_effect2.Data.TaggedError(
|
|
144
|
+
"BigCommerceInvalidRequestError"
|
|
145
|
+
) {
|
|
146
|
+
};
|
|
147
|
+
var BigCommerceParseResponseError = class extends import_effect2.Data.TaggedError(
|
|
148
|
+
"BigCommerceParseResponseError"
|
|
149
|
+
) {
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
// src/core/bigcommerce.fetcher.ts
|
|
153
|
+
var import_effect3 = require("effect");
|
|
154
|
+
var BigCommerceFetcher = class extends import_effect3.Context.Tag("BigCommerceFetcher")() {
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
// src/core/bigcommerce.fetcher.live.ts
|
|
158
|
+
var import_effect5 = require("effect");
|
|
159
|
+
|
|
160
|
+
// src/core/config.ts
|
|
161
|
+
var import_effect4 = require("effect");
|
|
162
|
+
var NoBigCommerceConfigError = class extends import_effect4.Data.TaggedError("NoBigCommerceConfigError") {
|
|
163
|
+
};
|
|
164
|
+
var BigCommerceConfig = class extends import_effect4.Context.Tag("BigCommerceConfig")() {
|
|
165
|
+
};
|
|
166
|
+
var getBigCommerceConfig = (key) => {
|
|
167
|
+
return import_effect4.Config.nested(import_effect4.Config.string(key), "BIGCOMMERCE").pipe(
|
|
168
|
+
import_effect4.Effect.mapError(() => new NoBigCommerceConfigError({ key }))
|
|
169
|
+
);
|
|
170
|
+
};
|
|
171
|
+
var getBigCommerceTimeout = () => {
|
|
172
|
+
return import_effect4.Config.nested(import_effect4.Config.number("TIMEOUT"), "BIGCOMMERCE").pipe(
|
|
173
|
+
import_effect4.Effect.mapError(() => new NoBigCommerceConfigError({ key: "TIMEOUT" })),
|
|
174
|
+
// Default to 30 seconds if not configured
|
|
175
|
+
import_effect4.Effect.orElse(() => import_effect4.Effect.succeed(DEFAULTS.timeout.ms))
|
|
176
|
+
);
|
|
177
|
+
};
|
|
178
|
+
var BigCommerceConfigLive = import_effect4.Layer.effect(
|
|
179
|
+
BigCommerceConfig,
|
|
180
|
+
import_effect4.Effect.gen(function* () {
|
|
181
|
+
const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* import_effect4.Effect.all([
|
|
182
|
+
getBigCommerceConfig("STORE_HASH"),
|
|
183
|
+
getBigCommerceConfig("CLIENT_ID"),
|
|
184
|
+
getBigCommerceConfig("CLIENT_SECRET"),
|
|
185
|
+
getBigCommerceConfig("ACCESS_TOKEN"),
|
|
186
|
+
getBigCommerceTimeout()
|
|
187
|
+
]);
|
|
188
|
+
return {
|
|
189
|
+
getStoreHash: import_effect4.Effect.succeed(storeHash),
|
|
190
|
+
getClientId: import_effect4.Effect.succeed(clientId),
|
|
191
|
+
getClientSecret: import_effect4.Effect.succeed(clientSecret),
|
|
192
|
+
getAccessToken: import_effect4.Effect.succeed(accessToken),
|
|
193
|
+
getTimeout: import_effect4.Effect.succeed(timeout)
|
|
194
|
+
};
|
|
195
|
+
})
|
|
196
|
+
);
|
|
197
|
+
var BigCommerceConfigTest = import_effect4.Layer.succeed(BigCommerceConfig, {
|
|
198
|
+
getAccessToken: import_effect4.Effect.succeed("test"),
|
|
199
|
+
getClientId: import_effect4.Effect.succeed("test"),
|
|
200
|
+
getClientSecret: import_effect4.Effect.succeed("test"),
|
|
201
|
+
getStoreHash: import_effect4.Effect.succeed("test"),
|
|
202
|
+
getTimeout: import_effect4.Effect.succeed(DEFAULTS.timeout.ms)
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
// src/core/bigcommerce.fetcher.live.ts
|
|
206
|
+
var BigCommerceStatusCodes = {
|
|
207
|
+
UNAUTHORIZED: 401,
|
|
208
|
+
CONFLICT: 409,
|
|
209
|
+
FORBIDDEN: 403,
|
|
210
|
+
NOT_FOUND: 404,
|
|
211
|
+
UNPROCESSABLE_ENTITY: 422,
|
|
212
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
213
|
+
BAD_GATEWAY: 502,
|
|
214
|
+
SERVICE_UNAVAILABLE: 503,
|
|
215
|
+
GATEWAY_TIMEOUT: 504,
|
|
216
|
+
INVALID_REQUEST: 400
|
|
217
|
+
};
|
|
218
|
+
var BigCommerceFetcherLive = import_effect5.Layer.effect(
|
|
219
|
+
BigCommerceFetcher,
|
|
220
|
+
import_effect5.Effect.gen(function* () {
|
|
221
|
+
const config = yield* BigCommerceConfig;
|
|
222
|
+
const storeHash = yield* config.getStoreHash;
|
|
223
|
+
const accessToken = yield* config.getAccessToken;
|
|
224
|
+
const timeout = yield* config.getTimeout;
|
|
225
|
+
return {
|
|
226
|
+
fetch: (params) => {
|
|
227
|
+
const base = getBase(params);
|
|
228
|
+
const headers = {
|
|
229
|
+
Accept: "application/json",
|
|
230
|
+
"Content-Type": "application/json",
|
|
231
|
+
"x-auth-token": accessToken
|
|
232
|
+
};
|
|
233
|
+
if (params.isB2B) {
|
|
234
|
+
headers["x-store-hash"] = storeHash;
|
|
235
|
+
}
|
|
236
|
+
const url = applyParams(base.replace("[storeHash]", storeHash), params.query);
|
|
237
|
+
return import_effect5.Effect.tryPromise({
|
|
238
|
+
try: () => fetch(url, {
|
|
239
|
+
headers,
|
|
240
|
+
signal: AbortSignal.timeout(timeout),
|
|
241
|
+
method: params.method,
|
|
242
|
+
...params.body && { body: JSON.stringify(params.body) }
|
|
243
|
+
}),
|
|
244
|
+
catch: (error) => {
|
|
245
|
+
if (error instanceof Error && error.name === "TimeoutError") {
|
|
246
|
+
return new BigCommerceConnectionError({
|
|
247
|
+
message: `Request timeout after ${timeout}ms`,
|
|
248
|
+
type: "timeout"
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
252
|
+
return new BigCommerceConnectionError({
|
|
253
|
+
message: `Request timeout after ${timeout}ms`,
|
|
254
|
+
type: "timeout"
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
return new BigCommerceUnknownError({ cause: error });
|
|
258
|
+
}
|
|
259
|
+
}).pipe(
|
|
260
|
+
import_effect5.Effect.tapError(
|
|
261
|
+
(error) => import_effect5.Effect.logError("Failed to fetch from BigCommerce API", error.cause)
|
|
262
|
+
),
|
|
263
|
+
import_effect5.Effect.flatMap((response) => transformResponse(response, params.resultSchema))
|
|
264
|
+
);
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
})
|
|
268
|
+
);
|
|
269
|
+
var applyParams = (url, params) => {
|
|
270
|
+
const base = new URL(url);
|
|
271
|
+
if (!params) {
|
|
272
|
+
return base;
|
|
273
|
+
}
|
|
274
|
+
if (typeof params === "string") {
|
|
275
|
+
base.search = params;
|
|
276
|
+
} else {
|
|
277
|
+
for (const [key, value] of Object.entries(params)) {
|
|
278
|
+
base.searchParams.append(key, `${value}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return base;
|
|
282
|
+
};
|
|
283
|
+
var getBase = ({
|
|
284
|
+
isB2B,
|
|
285
|
+
path,
|
|
286
|
+
version
|
|
287
|
+
}) => {
|
|
288
|
+
if (isB2B) {
|
|
289
|
+
return `${DEFAULTS.bigcommerceUrls.b2b}/${version}/io/${path}`;
|
|
290
|
+
}
|
|
291
|
+
return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;
|
|
292
|
+
};
|
|
293
|
+
function processSuccessResponse(response, schema) {
|
|
294
|
+
return import_effect5.Effect.tryPromise({
|
|
295
|
+
try: () => response.json(),
|
|
296
|
+
catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
|
|
297
|
+
}).pipe(
|
|
298
|
+
import_effect5.Effect.tapError(
|
|
299
|
+
(error) => import_effect5.Effect.logError("Error parsing response from BigCommerce API", error.cause)
|
|
300
|
+
),
|
|
301
|
+
import_effect5.Effect.tryMap({
|
|
302
|
+
try: (json) => schema.parse(json),
|
|
303
|
+
catch: (error) => new BigCommerceParseResponseError({ error })
|
|
304
|
+
})
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
var processErrorResponse = (response) => {
|
|
308
|
+
const code = response.status;
|
|
309
|
+
return import_effect5.Effect.tryPromise({
|
|
310
|
+
try: () => response.json(),
|
|
311
|
+
catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
|
|
312
|
+
}).pipe(
|
|
313
|
+
import_effect5.Effect.tapError((error) => import_effect5.Effect.logError("Error parsing error response", error.cause)),
|
|
314
|
+
import_effect5.Effect.flatMap(
|
|
315
|
+
(errorDetails) => import_effect5.Effect.fail(
|
|
316
|
+
import_effect5.Match.value(code).pipe(
|
|
317
|
+
import_effect5.Match.when(
|
|
318
|
+
BigCommerceStatusCodes.INVALID_REQUEST,
|
|
319
|
+
() => new BigCommerceInvalidRequestError({ errorDetails })
|
|
320
|
+
),
|
|
321
|
+
import_effect5.Match.when(BigCommerceStatusCodes.UNAUTHORIZED, () => new BigCommerceUnauthorizedError()),
|
|
322
|
+
import_effect5.Match.when(BigCommerceStatusCodes.FORBIDDEN, () => new BigCommerceForbiddenError()),
|
|
323
|
+
import_effect5.Match.when(BigCommerceStatusCodes.NOT_FOUND, () => new BigCommerceNotFoundError()),
|
|
324
|
+
import_effect5.Match.when(
|
|
325
|
+
BigCommerceStatusCodes.CONFLICT,
|
|
326
|
+
() => new BigCommerceConflictError({ details: errorDetails })
|
|
327
|
+
),
|
|
328
|
+
import_effect5.Match.when(
|
|
329
|
+
BigCommerceStatusCodes.UNPROCESSABLE_ENTITY,
|
|
330
|
+
() => new BigCommerceUnprocessableEntityError({ errorDetails })
|
|
331
|
+
),
|
|
332
|
+
import_effect5.Match.when(
|
|
333
|
+
(code2) => code2 >= 500,
|
|
334
|
+
() => new BigCommerceConnectionError({
|
|
335
|
+
message: `Server error: ${code}`,
|
|
336
|
+
type: code === BigCommerceStatusCodes.INTERNAL_SERVER_ERROR ? "internalError" : code === BigCommerceStatusCodes.BAD_GATEWAY || code === BigCommerceStatusCodes.GATEWAY_TIMEOUT ? "timeout" : "internalError"
|
|
337
|
+
})
|
|
338
|
+
),
|
|
339
|
+
import_effect5.Match.orElse(() => new BigCommerceUnknownError({ cause: errorDetails }))
|
|
340
|
+
)
|
|
341
|
+
)
|
|
342
|
+
)
|
|
343
|
+
);
|
|
344
|
+
};
|
|
345
|
+
var transformResponse = (response, schema) => {
|
|
346
|
+
if (response.ok) {
|
|
347
|
+
return processSuccessResponse(response, schema);
|
|
348
|
+
}
|
|
349
|
+
return processErrorResponse(response);
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
// src/validation/index.ts
|
|
353
|
+
var import_effect7 = require("effect");
|
|
354
|
+
|
|
355
|
+
// src/validation/validation.error.ts
|
|
356
|
+
var import_effect6 = require("effect");
|
|
357
|
+
var InputValidationError = class extends import_effect6.Data.TaggedError("InputValidationError") {
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
// src/validation/index.ts
|
|
361
|
+
var validateInput = (schema, data) => {
|
|
362
|
+
return import_effect7.Effect.try({
|
|
363
|
+
try: () => schema.parse(data),
|
|
364
|
+
catch: (error) => new InputValidationError({ input: data, error })
|
|
365
|
+
});
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
// src/bigcommerce-entities/companies/schemas/company.schema.ts
|
|
369
|
+
var z = __toESM(require("zod"));
|
|
370
|
+
var CreateCompanySchema = z.object({
|
|
371
|
+
companyName: z.string(),
|
|
372
|
+
companyPhone: z.string(),
|
|
373
|
+
companyEmail: z.string(),
|
|
374
|
+
addressLine1: z.string(),
|
|
375
|
+
addressLine2: z.string(),
|
|
376
|
+
city: z.string(),
|
|
377
|
+
state: z.string(),
|
|
378
|
+
country: z.string(),
|
|
379
|
+
zipCode: z.string(),
|
|
380
|
+
adminFirstName: z.string(),
|
|
381
|
+
adminLastName: z.string(),
|
|
382
|
+
adminEmail: z.string(),
|
|
383
|
+
adminPhoneNumber: z.string(),
|
|
384
|
+
acceptCreationEmail: z.boolean(),
|
|
385
|
+
uuid: z.string(),
|
|
386
|
+
channelIds: z.array(z.int()),
|
|
387
|
+
originChannelId: z.int(),
|
|
388
|
+
customerGroupId: z.int(),
|
|
389
|
+
extraFields: z.array(
|
|
390
|
+
z.object({
|
|
391
|
+
fieldName: z.string(),
|
|
392
|
+
fieldValue: z.string()
|
|
393
|
+
})
|
|
394
|
+
)
|
|
395
|
+
});
|
|
396
|
+
var CreateCompanyResponseSchema = z.object({
|
|
397
|
+
data: z.object({
|
|
398
|
+
companyId: z.int()
|
|
399
|
+
}),
|
|
400
|
+
meta: z.object({
|
|
401
|
+
message: z.string()
|
|
402
|
+
})
|
|
403
|
+
});
|
|
404
|
+
|
|
405
|
+
// src/bigcommerce-entities/companies/schemas/credit.schemas.ts
|
|
406
|
+
var z2 = __toESM(require("zod"));
|
|
407
|
+
var SetCompanyCreditSchema = z2.object({
|
|
408
|
+
data: z2.object({
|
|
409
|
+
creditEnabled: z2.boolean(),
|
|
410
|
+
creditCurrency: z2.enum(["MXN"]),
|
|
411
|
+
availableCredit: z2.number(),
|
|
412
|
+
limitPurchases: z2.boolean(),
|
|
413
|
+
creditHold: z2.boolean()
|
|
414
|
+
}),
|
|
415
|
+
companyId: z2.int()
|
|
416
|
+
});
|
|
417
|
+
var SetCompanyCreditResponseSchema = z2.object({});
|
|
418
|
+
|
|
419
|
+
// src/bigcommerce-entities/companies/schemas/extra-fields.schema.ts
|
|
420
|
+
var z3 = __toESM(require("zod"));
|
|
421
|
+
var GetCompanyExtraFieldsCriteriaSchema = z3.object({
|
|
422
|
+
limit: z3.int().max(DEFAULTS.companies.extraFields.getBatchSize).optional(),
|
|
423
|
+
offset: z3.int().optional()
|
|
424
|
+
});
|
|
425
|
+
var CompanyExtraFieldSchema = z3.object({
|
|
426
|
+
fieldName: z3.string(),
|
|
427
|
+
labelName: z3.string(),
|
|
428
|
+
listOfValue: z3.string().array().optional(),
|
|
429
|
+
maximumLength: z3.coerce.number().optional()
|
|
430
|
+
});
|
|
431
|
+
var GetCompanyExtraFieldsResponseSchema = z3.object({
|
|
432
|
+
data: CompanyExtraFieldSchema.array(),
|
|
433
|
+
meta: z3.object({
|
|
434
|
+
message: z3.string(),
|
|
435
|
+
pagination: z3.object({
|
|
436
|
+
totalCount: z3.number(),
|
|
437
|
+
offset: z3.number(),
|
|
438
|
+
limit: z3.number()
|
|
439
|
+
})
|
|
440
|
+
})
|
|
441
|
+
});
|
|
442
|
+
|
|
443
|
+
// src/bigcommerce-entities/companies/schemas/payment-methods.schema.ts
|
|
444
|
+
var z4 = __toESM(require("zod"));
|
|
445
|
+
var SetCompanyPaymentMethodsSchema = z4.object({
|
|
446
|
+
data: z4.object({
|
|
447
|
+
payments: z4.object({
|
|
448
|
+
code: z4.string(),
|
|
449
|
+
isEnabled: z4.boolean()
|
|
450
|
+
}).array()
|
|
451
|
+
}),
|
|
452
|
+
companyId: z4.int()
|
|
453
|
+
});
|
|
454
|
+
var SetCompanyPaymentMethodsResponseSchema = z4.object({});
|
|
455
|
+
|
|
456
|
+
// src/bigcommerce-entities/companies/schemas/roles.ts
|
|
457
|
+
var z5 = __toESM(require("zod"));
|
|
458
|
+
var CompanyRoleSchema = z5.object({
|
|
459
|
+
id: z5.int(),
|
|
460
|
+
name: z5.string(),
|
|
461
|
+
roleLevel: z5.number(),
|
|
462
|
+
roleType: z5.number()
|
|
463
|
+
});
|
|
464
|
+
var GetCompanyRolesCriteriaSchema = z5.object({
|
|
465
|
+
limit: z5.int().optional(),
|
|
466
|
+
offset: z5.int().optional()
|
|
467
|
+
});
|
|
468
|
+
var GetCompanyRolesResponseSchema = z5.object({
|
|
469
|
+
data: CompanyRoleSchema.array(),
|
|
470
|
+
meta: z5.object({
|
|
471
|
+
message: z5.string(),
|
|
472
|
+
pagination: z5.object({
|
|
473
|
+
limit: z5.number(),
|
|
474
|
+
offset: z5.number(),
|
|
475
|
+
totalCount: z5.number()
|
|
476
|
+
})
|
|
477
|
+
})
|
|
478
|
+
});
|
|
479
|
+
|
|
480
|
+
// src/bigcommerce-entities/companies/schemas/sales-staff.schema.ts
|
|
481
|
+
var z6 = __toESM(require("zod"));
|
|
482
|
+
var AssignSalesStaffSchema = z6.object({
|
|
483
|
+
assignments: z6.array(
|
|
484
|
+
z6.object({
|
|
485
|
+
assignStatus: z6.boolean(),
|
|
486
|
+
companyId: z6.int()
|
|
487
|
+
})
|
|
488
|
+
),
|
|
489
|
+
salesStaffId: z6.int().transform(String)
|
|
490
|
+
});
|
|
491
|
+
var AssignSalesStaffResponseSchema = z6.object({
|
|
492
|
+
code: z6.int(),
|
|
493
|
+
meta: z6.object({
|
|
494
|
+
message: z6.string()
|
|
495
|
+
})
|
|
496
|
+
});
|
|
497
|
+
|
|
498
|
+
// src/bigcommerce-entities/companies/schemas/user.schema.ts
|
|
499
|
+
var z7 = __toESM(require("zod"));
|
|
500
|
+
var CreateCompanyUserSchema = z7.object({
|
|
501
|
+
acceptWelcomeEmail: z7.boolean(),
|
|
502
|
+
companyId: z7.int(),
|
|
503
|
+
companyRoleId: z7.int(),
|
|
504
|
+
email: z7.email(),
|
|
505
|
+
firstName: z7.string(),
|
|
506
|
+
lastName: z7.string(),
|
|
507
|
+
phoneNumber: z7.string()
|
|
508
|
+
});
|
|
509
|
+
var CreateCompanyUserResponseSchema = z7.object({
|
|
510
|
+
code: z7.number(),
|
|
511
|
+
data: z7.object({
|
|
512
|
+
bcId: z7.number(),
|
|
513
|
+
userId: z7.int()
|
|
514
|
+
}),
|
|
515
|
+
meta: z7.object({
|
|
516
|
+
message: z7.string()
|
|
517
|
+
})
|
|
518
|
+
});
|
|
519
|
+
|
|
520
|
+
// src/bigcommerce-entities/companies/assign-sales-staff.ts
|
|
521
|
+
var assignSalesStaffToCompanyBatch = (staffId, assignments) => import_effect8.Effect.gen(function* () {
|
|
522
|
+
const fetcher = yield* BigCommerceFetcher;
|
|
523
|
+
return yield* import_effect8.Effect.retry(
|
|
524
|
+
fetcher.fetch({
|
|
525
|
+
isB2B: true,
|
|
526
|
+
method: "PUT",
|
|
527
|
+
path: `sales-staffs/${staffId}`,
|
|
528
|
+
version: "v3",
|
|
529
|
+
body: assignments,
|
|
530
|
+
resultSchema: AssignSalesStaffResponseSchema
|
|
531
|
+
}),
|
|
532
|
+
DEFAULTS.retry.policy
|
|
533
|
+
);
|
|
534
|
+
});
|
|
535
|
+
var assignSalesStaffToCompany = (input) => import_effect8.Effect.gen(function* () {
|
|
536
|
+
const validatedInput = yield* validateInput(AssignSalesStaffSchema, input);
|
|
537
|
+
return yield* import_effect8.Stream.fromIterable(validatedInput.assignments).pipe(
|
|
538
|
+
import_effect8.Stream.grouped(DEFAULTS.companies.salesStaffAssignments.assignBatchSize),
|
|
539
|
+
import_effect8.Stream.mapEffect(
|
|
540
|
+
(chunk) => assignSalesStaffToCompanyBatch(validatedInput.salesStaffId, import_effect8.Chunk.toArray(chunk)),
|
|
541
|
+
{ concurrency: DEFAULTS.companies.salesStaffAssignments.concurrency }
|
|
542
|
+
),
|
|
543
|
+
import_effect8.Stream.runCollect,
|
|
544
|
+
import_effect8.Effect.map(import_effect8.Chunk.toArray)
|
|
545
|
+
);
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
// src/bigcommerce-entities/companies/create-company.ts
|
|
549
|
+
var import_effect9 = require("effect");
|
|
550
|
+
var createCompany = (data) => import_effect9.Effect.gen(function* () {
|
|
551
|
+
const fetcher = yield* BigCommerceFetcher;
|
|
552
|
+
const validatedData = yield* validateInput(CreateCompanySchema, data);
|
|
553
|
+
return yield* import_effect9.Effect.retry(
|
|
554
|
+
fetcher.fetch({
|
|
555
|
+
isB2B: true,
|
|
556
|
+
method: "POST",
|
|
557
|
+
path: "companies",
|
|
558
|
+
resultSchema: CreateCompanyResponseSchema,
|
|
559
|
+
version: "v3",
|
|
560
|
+
body: validatedData
|
|
561
|
+
}),
|
|
562
|
+
DEFAULTS.retry.policy
|
|
563
|
+
);
|
|
564
|
+
});
|
|
565
|
+
|
|
566
|
+
// src/bigcommerce-entities/companies/create-company-user.ts
|
|
567
|
+
var import_effect10 = require("effect");
|
|
568
|
+
var createCompanyUser = (data) => import_effect10.Effect.gen(function* () {
|
|
569
|
+
const validatedData = yield* validateInput(CreateCompanyUserSchema, data);
|
|
570
|
+
const fetcher = yield* BigCommerceFetcher;
|
|
571
|
+
return yield* import_effect10.Effect.retry(
|
|
572
|
+
fetcher.fetch({
|
|
573
|
+
body: validatedData,
|
|
574
|
+
isB2B: true,
|
|
575
|
+
method: "POST",
|
|
576
|
+
path: "users",
|
|
577
|
+
resultSchema: CreateCompanyUserResponseSchema,
|
|
578
|
+
version: "v3"
|
|
579
|
+
}),
|
|
580
|
+
DEFAULTS.retry.policy
|
|
581
|
+
);
|
|
582
|
+
});
|
|
583
|
+
|
|
584
|
+
// src/bigcommerce-entities/companies/credit.ts
|
|
585
|
+
var import_effect11 = require("effect");
|
|
586
|
+
var setCompanyCredit = (input) => import_effect11.Effect.gen(function* () {
|
|
587
|
+
const { companyId, data } = yield* validateInput(SetCompanyCreditSchema, input);
|
|
588
|
+
const fetcher = yield* BigCommerceFetcher;
|
|
589
|
+
return yield* import_effect11.Effect.retry(
|
|
590
|
+
fetcher.fetch({
|
|
591
|
+
body: data,
|
|
592
|
+
isB2B: true,
|
|
593
|
+
method: "PUT",
|
|
594
|
+
path: `companies/${companyId}/credit`,
|
|
595
|
+
resultSchema: SetCompanyCreditResponseSchema,
|
|
596
|
+
version: "v3"
|
|
597
|
+
}),
|
|
598
|
+
DEFAULTS.retry.policy
|
|
599
|
+
);
|
|
600
|
+
});
|
|
601
|
+
|
|
602
|
+
// src/bigcommerce-entities/companies/get-company-fields.ts
|
|
603
|
+
var import_effect12 = require("effect");
|
|
604
|
+
var import_qs = __toESM(require("qs"));
|
|
605
|
+
var findCompanyExtraFields = (criteria) => import_effect12.Effect.gen(function* () {
|
|
606
|
+
const validatedCriteria = yield* validateInput(GetCompanyExtraFieldsCriteriaSchema, criteria);
|
|
607
|
+
const fetcher = yield* BigCommerceFetcher;
|
|
608
|
+
return yield* import_effect12.Effect.retry(
|
|
609
|
+
fetcher.fetch({
|
|
610
|
+
isB2B: true,
|
|
611
|
+
method: "GET",
|
|
612
|
+
query: import_qs.default.stringify(validatedCriteria),
|
|
613
|
+
path: "companies/extra-fields",
|
|
614
|
+
resultSchema: GetCompanyExtraFieldsResponseSchema,
|
|
615
|
+
version: "v3"
|
|
616
|
+
}),
|
|
617
|
+
DEFAULTS.retry.policy
|
|
618
|
+
);
|
|
619
|
+
});
|
|
620
|
+
var getAllCompanyExtraFieldsBy = (criteria) => import_effect12.Effect.gen(function* () {
|
|
621
|
+
let offset = 0;
|
|
622
|
+
const limit = DEFAULTS.companies.extraFields.getBatchSize;
|
|
623
|
+
let hasMore = true;
|
|
624
|
+
const data = [];
|
|
625
|
+
while (hasMore) {
|
|
626
|
+
const response = yield* findCompanyExtraFields({
|
|
627
|
+
...criteria,
|
|
628
|
+
limit,
|
|
629
|
+
offset
|
|
630
|
+
});
|
|
631
|
+
if (response.data.length) {
|
|
632
|
+
offset += limit;
|
|
633
|
+
data.push(...response.data);
|
|
634
|
+
} else {
|
|
635
|
+
hasMore = false;
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
return data;
|
|
639
|
+
});
|
|
640
|
+
|
|
641
|
+
// src/bigcommerce-entities/companies/get-company-roles.ts
|
|
642
|
+
var import_effect13 = require("effect");
|
|
643
|
+
var import_qs2 = __toESM(require("qs"));
|
|
644
|
+
var findCompanyRoles = (criteria) => import_effect13.Effect.gen(function* () {
|
|
645
|
+
const validatedCriteria = yield* validateInput(GetCompanyRolesCriteriaSchema, criteria);
|
|
646
|
+
const fetcher = yield* BigCommerceFetcher;
|
|
647
|
+
return yield* import_effect13.Effect.retry(
|
|
648
|
+
fetcher.fetch({
|
|
649
|
+
isB2B: true,
|
|
650
|
+
method: "GET",
|
|
651
|
+
query: import_qs2.default.stringify(validatedCriteria),
|
|
652
|
+
path: "companies/roles",
|
|
653
|
+
resultSchema: GetCompanyRolesResponseSchema,
|
|
654
|
+
version: "v3"
|
|
655
|
+
}),
|
|
656
|
+
DEFAULTS.retry.policy
|
|
657
|
+
);
|
|
658
|
+
});
|
|
659
|
+
var getAllCompanyRolesBy = (criteria) => import_effect13.Effect.gen(function* () {
|
|
660
|
+
let hasMore = true;
|
|
661
|
+
const data = [];
|
|
662
|
+
let offset = 0;
|
|
663
|
+
const limit = DEFAULTS.companies.roles.getBatchSize;
|
|
664
|
+
while (hasMore) {
|
|
665
|
+
const response = yield* findCompanyRoles({
|
|
666
|
+
...criteria,
|
|
667
|
+
limit,
|
|
668
|
+
offset
|
|
669
|
+
});
|
|
670
|
+
if (response.data.length) {
|
|
671
|
+
offset += limit;
|
|
672
|
+
data.push(...response.data);
|
|
673
|
+
} else {
|
|
674
|
+
hasMore = false;
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return data;
|
|
678
|
+
});
|
|
679
|
+
|
|
680
|
+
// src/bigcommerce-entities/companies/set-payment-methods.ts
|
|
681
|
+
var import_effect14 = require("effect");
|
|
682
|
+
var setCompanyPaymentMethods = (input) => import_effect14.Effect.gen(function* () {
|
|
683
|
+
const { companyId, data } = yield* validateInput(SetCompanyPaymentMethodsSchema, input);
|
|
684
|
+
const fetcher = yield* BigCommerceFetcher;
|
|
685
|
+
return yield* import_effect14.Effect.retry(
|
|
686
|
+
fetcher.fetch({
|
|
687
|
+
body: data,
|
|
688
|
+
isB2B: true,
|
|
689
|
+
method: "PUT",
|
|
690
|
+
path: `companies/${companyId}/payments`,
|
|
691
|
+
resultSchema: SetCompanyPaymentMethodsResponseSchema,
|
|
692
|
+
version: "v3"
|
|
693
|
+
}),
|
|
694
|
+
DEFAULTS.retry.policy
|
|
695
|
+
);
|
|
696
|
+
});
|
|
697
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
698
|
+
0 && (module.exports = {
|
|
699
|
+
AssignSalesStaffResponseSchema,
|
|
700
|
+
AssignSalesStaffSchema,
|
|
701
|
+
CompanyExtraFieldSchema,
|
|
702
|
+
CompanyRoleSchema,
|
|
703
|
+
CreateCompanyResponseSchema,
|
|
704
|
+
CreateCompanySchema,
|
|
705
|
+
CreateCompanyUserResponseSchema,
|
|
706
|
+
CreateCompanyUserSchema,
|
|
707
|
+
GetCompanyExtraFieldsCriteriaSchema,
|
|
708
|
+
GetCompanyExtraFieldsResponseSchema,
|
|
709
|
+
GetCompanyRolesCriteriaSchema,
|
|
710
|
+
GetCompanyRolesResponseSchema,
|
|
711
|
+
SetCompanyCreditResponseSchema,
|
|
712
|
+
SetCompanyCreditSchema,
|
|
713
|
+
SetCompanyPaymentMethodsResponseSchema,
|
|
714
|
+
SetCompanyPaymentMethodsSchema,
|
|
715
|
+
assignSalesStaffToCompany,
|
|
716
|
+
createCompany,
|
|
717
|
+
createCompanyUser,
|
|
718
|
+
findCompanyExtraFields,
|
|
719
|
+
findCompanyRoles,
|
|
720
|
+
getAllCompanyExtraFieldsBy,
|
|
721
|
+
getAllCompanyRolesBy,
|
|
722
|
+
setCompanyCredit,
|
|
723
|
+
setCompanyPaymentMethods
|
|
724
|
+
});
|
|
2
725
|
//# sourceMappingURL=companies.js.map
|