@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.
Files changed (61) hide show
  1. package/dist/addresses.d.mts +27 -0
  2. package/dist/addresses.d.ts +27 -0
  3. package/dist/addresses.js +69 -0
  4. package/dist/addresses.js.map +1 -0
  5. package/dist/addresses.mjs +9 -0
  6. package/dist/addresses.mjs.map +1 -0
  7. package/dist/{bigcommerce.fetcher-D1TyK4y4.d.mts → bigcommerce.fetcher-Ujztbs8P.d.mts} +2 -2
  8. package/dist/{bigcommerce.fetcher-D1TyK4y4.d.ts → bigcommerce.fetcher-Ujztbs8P.d.ts} +2 -2
  9. package/dist/{chunk-V2AKD2LM.mjs → chunk-2VMEIQCL.mjs} +63 -27
  10. package/dist/chunk-2VMEIQCL.mjs.map +1 -0
  11. package/dist/chunk-BWLQCNNX.mjs +30 -0
  12. package/dist/chunk-BWLQCNNX.mjs.map +1 -0
  13. package/dist/companies.d.mts +230 -1
  14. package/dist/companies.d.ts +230 -1
  15. package/dist/companies.js +723 -0
  16. package/dist/companies.js.map +1 -1
  17. package/dist/companies.mjs +367 -0
  18. package/dist/companies.mjs.map +1 -1
  19. package/dist/customers.d.mts +95 -2
  20. package/dist/customers.d.ts +95 -2
  21. package/dist/customers.js +245 -63
  22. package/dist/customers.js.map +1 -1
  23. package/dist/customers.mjs +172 -46
  24. package/dist/customers.mjs.map +1 -1
  25. package/dist/index.d.mts +2 -2
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.js +61 -17
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +1 -1
  30. package/dist/orders.d.mts +1323 -2
  31. package/dist/orders.d.ts +1323 -2
  32. package/dist/orders.js +283 -181
  33. package/dist/orders.js.map +1 -1
  34. package/dist/orders.mjs +193 -166
  35. package/dist/orders.mjs.map +1 -1
  36. package/dist/payments.d.mts +28 -0
  37. package/dist/payments.d.ts +28 -0
  38. package/dist/payments.js +365 -0
  39. package/dist/payments.js.map +1 -0
  40. package/dist/payments.mjs +43 -0
  41. package/dist/payments.mjs.map +1 -0
  42. package/dist/priceLists.d.mts +81 -0
  43. package/dist/priceLists.d.ts +81 -0
  44. package/dist/priceLists.js +458 -0
  45. package/dist/priceLists.js.map +1 -0
  46. package/dist/priceLists.mjs +118 -0
  47. package/dist/priceLists.mjs.map +1 -0
  48. package/dist/products.d.mts +29 -7
  49. package/dist/products.d.ts +29 -7
  50. package/dist/products.js +114 -60
  51. package/dist/products.js.map +1 -1
  52. package/dist/products.mjs +26 -25
  53. package/dist/products.mjs.map +1 -1
  54. package/dist/salesStaff.d.mts +64 -0
  55. package/dist/salesStaff.d.ts +64 -0
  56. package/dist/salesStaff.js +419 -0
  57. package/dist/salesStaff.js.map +1 -0
  58. package/dist/salesStaff.mjs +82 -0
  59. package/dist/salesStaff.mjs.map +1 -0
  60. package/package.json +38 -15
  61. package/dist/chunk-V2AKD2LM.mjs.map +0 -1
@@ -0,0 +1,27 @@
1
+ import * as z from 'zod';
2
+
3
+ declare const AddressSchema: z.ZodObject<{
4
+ first_name: z.ZodString;
5
+ last_name: z.ZodString;
6
+ company: z.ZodString;
7
+ street_1: z.ZodString;
8
+ street_2: z.ZodString;
9
+ city: z.ZodString;
10
+ state: z.ZodString;
11
+ zip: z.ZodString;
12
+ country: z.ZodString;
13
+ country_iso2: z.ZodString;
14
+ phone: z.ZodString;
15
+ email: z.ZodString;
16
+ form_fields: z.ZodArray<z.ZodObject<{
17
+ name: z.ZodString;
18
+ value: z.ZodString;
19
+ }, z.core.$strip>>;
20
+ }, z.core.$strip>;
21
+
22
+ declare const AddressFormFieldSchema: z.ZodObject<{
23
+ name: z.ZodString;
24
+ value: z.ZodString;
25
+ }, z.core.$strip>;
26
+
27
+ export { AddressFormFieldSchema, AddressSchema };
@@ -0,0 +1,27 @@
1
+ import * as z from 'zod';
2
+
3
+ declare const AddressSchema: z.ZodObject<{
4
+ first_name: z.ZodString;
5
+ last_name: z.ZodString;
6
+ company: z.ZodString;
7
+ street_1: z.ZodString;
8
+ street_2: z.ZodString;
9
+ city: z.ZodString;
10
+ state: z.ZodString;
11
+ zip: z.ZodString;
12
+ country: z.ZodString;
13
+ country_iso2: z.ZodString;
14
+ phone: z.ZodString;
15
+ email: z.ZodString;
16
+ form_fields: z.ZodArray<z.ZodObject<{
17
+ name: z.ZodString;
18
+ value: z.ZodString;
19
+ }, z.core.$strip>>;
20
+ }, z.core.$strip>;
21
+
22
+ declare const AddressFormFieldSchema: z.ZodObject<{
23
+ name: z.ZodString;
24
+ value: z.ZodString;
25
+ }, z.core.$strip>;
26
+
27
+ export { AddressFormFieldSchema, AddressSchema };
@@ -0,0 +1,69 @@
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/addresses/index.ts
31
+ var addresses_exports = {};
32
+ __export(addresses_exports, {
33
+ AddressFormFieldSchema: () => AddressFormFieldSchema,
34
+ AddressSchema: () => AddressSchema
35
+ });
36
+ module.exports = __toCommonJS(addresses_exports);
37
+
38
+ // src/bigcommerce-entities/addresses/schemas/address.schema.ts
39
+ var z2 = __toESM(require("zod"));
40
+
41
+ // src/bigcommerce-entities/addresses/schemas/form-field.schema.ts
42
+ var z = __toESM(require("zod"));
43
+ var AddressFormFieldSchema = z.object({
44
+ name: z.string(),
45
+ value: z.string()
46
+ });
47
+
48
+ // src/bigcommerce-entities/addresses/schemas/address.schema.ts
49
+ var AddressSchema = z2.object({
50
+ first_name: z2.string(),
51
+ last_name: z2.string(),
52
+ company: z2.string(),
53
+ street_1: z2.string(),
54
+ street_2: z2.string(),
55
+ city: z2.string(),
56
+ state: z2.string(),
57
+ zip: z2.string(),
58
+ country: z2.string(),
59
+ country_iso2: z2.string(),
60
+ phone: z2.string(),
61
+ email: z2.string(),
62
+ form_fields: z2.array(AddressFormFieldSchema)
63
+ });
64
+ // Annotate the CommonJS export names for ESM import in node:
65
+ 0 && (module.exports = {
66
+ AddressFormFieldSchema,
67
+ AddressSchema
68
+ });
69
+ //# sourceMappingURL=addresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/bigcommerce-entities/addresses/index.ts","../src/bigcommerce-entities/addresses/schemas/address.schema.ts","../src/bigcommerce-entities/addresses/schemas/form-field.schema.ts"],"sourcesContent":["export * from './schemas';\n","import * as z from 'zod';\nimport { AddressFormFieldSchema } from './form-field.schema';\n\nexport const AddressSchema = z.object({\n first_name: z.string(),\n last_name: z.string(),\n company: z.string(),\n street_1: z.string(),\n street_2: z.string(),\n city: z.string(),\n state: z.string(),\n zip: z.string(),\n country: z.string(),\n country_iso2: z.string(),\n phone: z.string(),\n email: z.string(),\n form_fields: z.array(AddressFormFieldSchema),\n});\n","import * as z from 'zod';\n\nexport const AddressFormFieldSchema = z.object({\n name: z.string(),\n value: z.string(),\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,KAAmB;;;ACAnB,QAAmB;AAEZ,IAAM,yBAA2B,SAAO;AAAA,EAC7C,MAAQ,SAAO;AAAA,EACf,OAAS,SAAO;AAClB,CAAC;;;ADFM,IAAM,gBAAkB,UAAO;AAAA,EACpC,YAAc,UAAO;AAAA,EACrB,WAAa,UAAO;AAAA,EACpB,SAAW,UAAO;AAAA,EAClB,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,MAAQ,UAAO;AAAA,EACf,OAAS,UAAO;AAAA,EAChB,KAAO,UAAO;AAAA,EACd,SAAW,UAAO;AAAA,EAClB,cAAgB,UAAO;AAAA,EACvB,OAAS,UAAO;AAAA,EAChB,OAAS,UAAO;AAAA,EAChB,aAAe,SAAM,sBAAsB;AAC7C,CAAC;","names":["z"]}
@@ -0,0 +1,9 @@
1
+ import {
2
+ AddressFormFieldSchema,
3
+ AddressSchema
4
+ } from "./chunk-BWLQCNNX.mjs";
5
+ export {
6
+ AddressFormFieldSchema,
7
+ AddressSchema
8
+ };
9
+ //# sourceMappingURL=addresses.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -71,7 +71,7 @@ declare class BigCommerceParseResponseError extends BigCommerceParseResponseErro
71
71
  type SomeBigCommerceError = BigCommerceUnprocessableEntityError | BigCommerceUnauthorizedError | BigCommerceForbiddenError | BigCommerceNotFoundError | BigCommerceConflictError | BigCommerceConnectionError | BigCommerceUnknownError | BigCommerceInvalidResponseError | BigCommerceInvalidRequestError | BigCommerceParseResponseError;
72
72
 
73
73
  type BigCommerceFetchMethods = 'GET' | 'POST' | 'PUT' | 'DELETE';
74
- interface BigCommerceFetchParams<Body extends Record<string, unknown> | Array<Record<string, unknown>>, Query extends Record<string, string>, Result extends z.ZodType> {
74
+ interface BigCommerceFetchParams<Body extends Record<string, unknown> | Array<Record<string, unknown>>, Query extends Record<string, string> | string, Result extends z.ZodType> {
75
75
  readonly body?: Body;
76
76
  readonly query?: Query;
77
77
  readonly method: BigCommerceFetchMethods;
@@ -82,7 +82,7 @@ interface BigCommerceFetchParams<Body extends Record<string, unknown> | Array<Re
82
82
  readonly resultSchema: Result;
83
83
  }
84
84
  declare const BigCommerceFetcher_base: Context.TagClass<BigCommerceFetcher, "BigCommerceFetcher", {
85
- readonly fetch: <Body extends Record<string, unknown> | Array<Record<string, unknown>>, Query extends Record<string, string>, Result extends z.ZodType>(params: BigCommerceFetchParams<Body, Query, Result>) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;
85
+ readonly fetch: <Body extends Record<string, unknown> | Array<Record<string, unknown>>, Query extends Record<string, string> | string, Result extends z.ZodType>(params: BigCommerceFetchParams<Body, Query, Result>) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;
86
86
  }>;
87
87
  declare class BigCommerceFetcher extends BigCommerceFetcher_base {
88
88
  }
@@ -71,7 +71,7 @@ declare class BigCommerceParseResponseError extends BigCommerceParseResponseErro
71
71
  type SomeBigCommerceError = BigCommerceUnprocessableEntityError | BigCommerceUnauthorizedError | BigCommerceForbiddenError | BigCommerceNotFoundError | BigCommerceConflictError | BigCommerceConnectionError | BigCommerceUnknownError | BigCommerceInvalidResponseError | BigCommerceInvalidRequestError | BigCommerceParseResponseError;
72
72
 
73
73
  type BigCommerceFetchMethods = 'GET' | 'POST' | 'PUT' | 'DELETE';
74
- interface BigCommerceFetchParams<Body extends Record<string, unknown> | Array<Record<string, unknown>>, Query extends Record<string, string>, Result extends z.ZodType> {
74
+ interface BigCommerceFetchParams<Body extends Record<string, unknown> | Array<Record<string, unknown>>, Query extends Record<string, string> | string, Result extends z.ZodType> {
75
75
  readonly body?: Body;
76
76
  readonly query?: Query;
77
77
  readonly method: BigCommerceFetchMethods;
@@ -82,7 +82,7 @@ interface BigCommerceFetchParams<Body extends Record<string, unknown> | Array<Re
82
82
  readonly resultSchema: Result;
83
83
  }
84
84
  declare const BigCommerceFetcher_base: Context.TagClass<BigCommerceFetcher, "BigCommerceFetcher", {
85
- readonly fetch: <Body extends Record<string, unknown> | Array<Record<string, unknown>>, Query extends Record<string, string>, Result extends z.ZodType>(params: BigCommerceFetchParams<Body, Query, Result>) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;
85
+ readonly fetch: <Body extends Record<string, unknown> | Array<Record<string, unknown>>, Query extends Record<string, string> | string, Result extends z.ZodType>(params: BigCommerceFetchParams<Body, Query, Result>) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;
86
86
  }>;
87
87
  declare class BigCommerceFetcher extends BigCommerceFetcher_base {
88
88
  }
@@ -41,22 +41,58 @@ import { Effect as Effect3, Layer as Layer2, Match } from "effect";
41
41
 
42
42
  // src/constants.ts
43
43
  import { Duration, Schedule } from "effect";
44
- var DEFAULT_TIMEOUT_MS = 3e4;
45
- var API_BASE_URLS = {
46
- B2B: "https://api-b2b.bigcommerce.com/api",
47
- REGULAR: "https://api.bigcommerce.com/stores"
44
+ var DEFAULTS = {
45
+ retry: {
46
+ policy: Schedule.exponential(Duration.millis(200), 2).pipe(
47
+ Schedule.intersect(Schedule.recurs(3))
48
+ )
49
+ },
50
+ timeout: {
51
+ ms: 3e4
52
+ },
53
+ bigcommerceUrls: {
54
+ b2b: "https://api-b2b.bigcommerce.com/api",
55
+ regular: "https://api.bigcommerce.com/stores"
56
+ },
57
+ customers: {
58
+ getBatchSize: 250
59
+ },
60
+ salesStaff: {
61
+ getBatchSize: 250
62
+ },
63
+ companies: {
64
+ salesStaffAssignments: {
65
+ assignBatchSize: 10,
66
+ concurrency: 2
67
+ },
68
+ extraFields: {
69
+ getBatchSize: 250
70
+ },
71
+ roles: {
72
+ getBatchSize: 250
73
+ }
74
+ },
75
+ products: {
76
+ updateBatchSize: 5,
77
+ updateConcurrency: 2,
78
+ inventory: {
79
+ updateBatchSize: 2e3,
80
+ updateConcurrency: 2
81
+ }
82
+ },
83
+ orders: {
84
+ getAllBatchSize: 250,
85
+ shippingAddresses: {
86
+ getAllBatchSize: 250
87
+ },
88
+ products: {
89
+ getAllBatchSize: 250
90
+ }
91
+ },
92
+ priceLists: {
93
+ getAllBatchSize: 250
94
+ }
48
95
  };
49
- var GET_ORDER_BATCH_SIZE = 250;
50
- var UPDATE_INVENTORY_BATCH_SIZE = 2e3;
51
- var UPDATE_INVENTORY_CONCURRENCY = 2;
52
- var DEFAULT_RETRY_TIMES = 2;
53
- var DEFAULT_RETRY_WAIT = 200;
54
- var DEFAULT_RETRY_SCHEDULE = Schedule.exponential(Duration.millis(DEFAULT_RETRY_WAIT));
55
- var RETRY_POLICY_WITH_BACKOFF = Schedule.exponential(
56
- Duration.millis(DEFAULT_RETRY_WAIT),
57
- 2
58
- ).pipe(Schedule.intersect(Schedule.recurs(DEFAULT_RETRY_TIMES)));
59
- var GET_CUSTOMERS_BATCH_SIZE = 100;
60
96
 
61
97
  // src/core/config.ts
62
98
  import { Config, Context as Context2, Data as Data2, Effect as Effect2, Layer } from "effect";
@@ -73,7 +109,7 @@ var getBigCommerceTimeout = () => {
73
109
  return Config.nested(Config.number("TIMEOUT"), "BIGCOMMERCE").pipe(
74
110
  Effect2.mapError(() => new NoBigCommerceConfigError({ key: "TIMEOUT" })),
75
111
  // Default to 30 seconds if not configured
76
- Effect2.orElse(() => Effect2.succeed(DEFAULT_TIMEOUT_MS))
112
+ Effect2.orElse(() => Effect2.succeed(DEFAULTS.timeout.ms))
77
113
  );
78
114
  };
79
115
  var BigCommerceConfigLive = Layer.effect(
@@ -100,7 +136,7 @@ var BigCommerceConfigTest = Layer.succeed(BigCommerceConfig, {
100
136
  getClientId: Effect2.succeed("test"),
101
137
  getClientSecret: Effect2.succeed("test"),
102
138
  getStoreHash: Effect2.succeed("test"),
103
- getTimeout: Effect2.succeed(DEFAULT_TIMEOUT_MS)
139
+ getTimeout: Effect2.succeed(DEFAULTS.timeout.ms)
104
140
  });
105
141
  var validateBigCommerceConfig = () => Effect2.gen(function* () {
106
142
  const config = yield* BigCommerceConfig;
@@ -189,8 +225,12 @@ var applyParams = (url, params) => {
189
225
  if (!params) {
190
226
  return base;
191
227
  }
192
- for (const [key, value] of Object.entries(params)) {
193
- base.searchParams.append(key, `${value}`);
228
+ if (typeof params === "string") {
229
+ base.search = params;
230
+ } else {
231
+ for (const [key, value] of Object.entries(params)) {
232
+ base.searchParams.append(key, `${value}`);
233
+ }
194
234
  }
195
235
  return base;
196
236
  };
@@ -200,9 +240,9 @@ var getBase = ({
200
240
  version
201
241
  }) => {
202
242
  if (isB2B) {
203
- return `${API_BASE_URLS.B2B}/${version}/io/${path}`;
243
+ return `${DEFAULTS.bigcommerceUrls.b2b}/${version}/io/${path}`;
204
244
  }
205
- return `${API_BASE_URLS.REGULAR}/[storeHash]/${version}/${path}`;
245
+ return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;
206
246
  };
207
247
  function processSuccessResponse(response, schema) {
208
248
  return Effect3.tryPromise({
@@ -275,11 +315,7 @@ export {
275
315
  BigCommerceInvalidRequestError,
276
316
  BigCommerceParseResponseError,
277
317
  BigCommerceFetcher,
278
- GET_ORDER_BATCH_SIZE,
279
- UPDATE_INVENTORY_BATCH_SIZE,
280
- UPDATE_INVENTORY_CONCURRENCY,
281
- RETRY_POLICY_WITH_BACKOFF,
282
- GET_CUSTOMERS_BATCH_SIZE,
318
+ DEFAULTS,
283
319
  NoBigCommerceConfigError,
284
320
  BigCommerceConfig,
285
321
  BigCommerceConfigLive,
@@ -287,4 +323,4 @@ export {
287
323
  validateBigCommerceConfig,
288
324
  BigCommerceFetcherLive
289
325
  };
290
- //# sourceMappingURL=chunk-V2AKD2LM.mjs.map
326
+ //# sourceMappingURL=chunk-2VMEIQCL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/bigcommerce.error.ts","../src/core/bigcommerce.fetcher.ts","../src/core/bigcommerce.fetcher.live.ts","../src/constants.ts","../src/core/config.ts"],"sourcesContent":["import { Data } from 'effect';\nimport * as z from 'zod';\nexport class BigCommerceUnprocessableEntityError extends Data.TaggedError(\n 'BigCommerceUnprocessableEntityError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceUnauthorizedError extends Data.TaggedError(\n 'BigCommerceUnauthorizedError',\n) {}\n\nexport class BigCommerceForbiddenError extends Data.TaggedError('BigCommerceForbiddenError') {}\n\nexport class BigCommerceNotFoundError extends Data.TaggedError('BigCommerceNotFoundError') {}\n\nexport class BigCommerceConflictError extends Data.TaggedError('BigCommerceConflictError')<{\n readonly details: unknown;\n}> {}\n\nexport class BigCommerceConnectionError extends Data.TaggedError('BigCommerceConnectionError')<{\n readonly message: string;\n readonly type: 'timeout' | 'internalError' | 'unknown';\n}> {}\n\nexport class BigCommerceUnknownError extends Data.TaggedError('BigCommerceUnknownError')<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidResponseError extends Data.TaggedError(\n 'BigCommerceInvalidResponseError',\n)<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidRequestError extends Data.TaggedError(\n 'BigCommerceInvalidRequestError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceParseResponseError extends Data.TaggedError(\n 'BigCommerceParseResponseError',\n)<{\n readonly error: z.ZodError;\n}> {}\n\nexport type SomeBigCommerceError =\n | BigCommerceUnprocessableEntityError\n | BigCommerceUnauthorizedError\n | BigCommerceForbiddenError\n | BigCommerceNotFoundError\n | BigCommerceConflictError\n | BigCommerceConnectionError\n | BigCommerceUnknownError\n | BigCommerceInvalidResponseError\n | BigCommerceInvalidRequestError\n | BigCommerceParseResponseError;\n","import { Context, Effect } from 'effect';\nimport * as z from 'zod';\nimport { type SomeBigCommerceError } from './bigcommerce.error';\nexport type BigCommerceFetchMethods = 'GET' | 'POST' | 'PUT' | 'DELETE';\nexport interface BigCommerceFetchParams<\n // Always send json for now, maybe later send a Blob\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n> {\n readonly body?: Body;\n readonly query?: Query;\n readonly method: BigCommerceFetchMethods;\n readonly path: string;\n readonly headers?: Record<string, string>;\n readonly isB2B: boolean;\n readonly version: 'v3' | 'v2';\n readonly resultSchema: Result;\n}\n\nexport class BigCommerceFetcher extends Context.Tag('BigCommerceFetcher')<\n BigCommerceFetcher,\n {\n readonly fetch: <\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n >(\n params: BigCommerceFetchParams<Body, Query, Result>,\n ) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;\n }\n>() {}\n","import { Effect, Layer, Match } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../constants';\nimport {\n BigCommerceConflictError,\n BigCommerceConnectionError,\n BigCommerceForbiddenError,\n BigCommerceInvalidRequestError,\n BigCommerceInvalidResponseError,\n BigCommerceNotFoundError,\n BigCommerceParseResponseError,\n BigCommerceUnauthorizedError,\n BigCommerceUnknownError,\n BigCommerceUnprocessableEntityError,\n type SomeBigCommerceError,\n} from './bigcommerce.error';\nimport { BigCommerceFetcher } from './bigcommerce.fetcher';\nimport { BigCommerceConfig, type NoBigCommerceConfigError } from './config';\n\nconst BigCommerceStatusCodes = {\n UNAUTHORIZED: 401,\n CONFLICT: 409,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n INVALID_REQUEST: 400,\n} as const;\n\nexport const BigCommerceFetcherLive: Layer.Layer<\n BigCommerceFetcher,\n NoBigCommerceConfigError,\n BigCommerceConfig\n> = Layer.effect(\n BigCommerceFetcher,\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const storeHash = yield* config.getStoreHash;\n const accessToken = yield* config.getAccessToken;\n const timeout = yield* config.getTimeout;\n\n return {\n fetch: (params) => {\n const base = getBase(params);\n const headers: Record<string, string> = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'x-auth-token': accessToken,\n };\n\n if (params.isB2B) {\n headers['x-store-hash'] = storeHash;\n }\n const url = applyParams(base.replace('[storeHash]', storeHash), params.query);\n\n return Effect.tryPromise({\n try: () =>\n fetch(url, {\n headers,\n signal: AbortSignal.timeout(timeout),\n method: params.method,\n ...(params.body && { body: JSON.stringify(params.body) }),\n }),\n catch: (error) => {\n if (error instanceof Error && error.name === 'TimeoutError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n if (error instanceof Error && error.name === 'AbortError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n return new BigCommerceUnknownError({ cause: error });\n },\n }).pipe(\n Effect.tapError((error) =>\n Effect.logError('Failed to fetch from BigCommerce API', error.cause),\n ),\n Effect.flatMap((response) => transformResponse(response, params.resultSchema)),\n );\n },\n };\n }),\n);\nconst applyParams = (url: string, params?: Record<string, string | number> | string): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n if (typeof params === 'string') {\n base.search = params;\n } else {\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\n }\n }\n return base;\n};\n\nconst getBase = ({\n isB2B,\n path,\n version,\n}: {\n isB2B: boolean;\n path: string;\n version: 'v3' | 'v2';\n}): string => {\n if (isB2B) {\n return `${DEFAULTS.bigcommerceUrls.b2b}/${version}/io/${path}`;\n }\n return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;\n};\nfunction processSuccessResponse<Schema extends z.ZodTypeAny>(response: Response, schema: Schema) {\n return Effect.tryPromise({\n try: () => response.json(),\n catch: (error) => new BigCommerceInvalidResponseError({ cause: error }),\n }).pipe(\n Effect.tapError((error) =>\n Effect.logError('Error parsing response from BigCommerce API', error.cause),\n ),\n Effect.tryMap({\n try: (json) => schema.parse(json),\n catch: (error) => new BigCommerceParseResponseError({ error: error as z.ZodError }),\n }),\n );\n}\nconst processErrorResponse = (response: Response) => {\n const code = response.status;\n return Effect.tryPromise({\n try: () => response.json(),\n catch: (error) => new BigCommerceInvalidResponseError({ cause: error }),\n }).pipe(\n Effect.tapError((error) => Effect.logError('Error parsing error response', error.cause)),\n Effect.flatMap((errorDetails) =>\n Effect.fail(\n Match.value(code).pipe(\n Match.when(\n BigCommerceStatusCodes.INVALID_REQUEST,\n () => new BigCommerceInvalidRequestError({ errorDetails }),\n ),\n Match.when(BigCommerceStatusCodes.UNAUTHORIZED, () => new BigCommerceUnauthorizedError()),\n Match.when(BigCommerceStatusCodes.FORBIDDEN, () => new BigCommerceForbiddenError()),\n Match.when(BigCommerceStatusCodes.NOT_FOUND, () => new BigCommerceNotFoundError()),\n Match.when(\n BigCommerceStatusCodes.CONFLICT,\n () => new BigCommerceConflictError({ details: errorDetails }),\n ),\n Match.when(\n BigCommerceStatusCodes.UNPROCESSABLE_ENTITY,\n () => new BigCommerceUnprocessableEntityError({ errorDetails }),\n ),\n Match.when(\n (code) => code >= 500,\n () =>\n new BigCommerceConnectionError({\n message: `Server error: ${code}`,\n type:\n code === BigCommerceStatusCodes.INTERNAL_SERVER_ERROR\n ? 'internalError'\n : code === BigCommerceStatusCodes.BAD_GATEWAY ||\n code === BigCommerceStatusCodes.GATEWAY_TIMEOUT\n ? 'timeout'\n : 'internalError',\n }),\n ),\n Match.orElse(() => new BigCommerceUnknownError({ cause: errorDetails })),\n ),\n ),\n ),\n );\n};\n\nconst transformResponse = <Schema extends z.ZodTypeAny>(\n response: Response,\n schema: Schema,\n): Effect.Effect<z.output<Schema>, SomeBigCommerceError> => {\n if (response.ok) {\n return processSuccessResponse(response, schema);\n }\n return processErrorResponse(response);\n};\n\n// type PendingErrors = Exclude<\n// SomeBigCommerceError,\n// Effect.Effect.Error<ReturnType<typeof processErrorResponse>> | BigCommerceParseResponseError\n// >;\n","import { Duration, Schedule } from 'effect';\n\nexport const DEFAULTS = {\n retry: {\n policy: Schedule.exponential(Duration.millis(200), 2).pipe(\n Schedule.intersect(Schedule.recurs(3)),\n ),\n },\n timeout: {\n ms: 30000,\n },\n bigcommerceUrls: {\n b2b: 'https://api-b2b.bigcommerce.com/api',\n regular: 'https://api.bigcommerce.com/stores',\n },\n customers: {\n getBatchSize: 250,\n },\n salesStaff: {\n getBatchSize: 250,\n },\n companies: {\n salesStaffAssignments: {\n assignBatchSize: 10,\n concurrency: 2,\n },\n extraFields: {\n getBatchSize: 250,\n },\n roles: {\n getBatchSize: 250,\n },\n },\n products: {\n updateBatchSize: 5,\n updateConcurrency: 2,\n inventory: {\n updateBatchSize: 2000,\n updateConcurrency: 2,\n },\n },\n orders: {\n getAllBatchSize: 250,\n shippingAddresses: {\n getAllBatchSize: 250,\n },\n products: {\n getAllBatchSize: 250,\n },\n },\n priceLists: {\n getAllBatchSize: 250,\n },\n} as const;\n","import { Config, Context, Data, Effect, Layer } from 'effect';\nimport { DEFAULTS } from '../constants';\n\n// Define a custom error type using Data.TaggedError\nexport class NoBigCommerceConfigError extends Data.TaggedError('NoBigCommerceConfigError')<{\n readonly key: string;\n}> {}\n\nexport class BigCommerceConfig extends Context.Tag('BigCommerceConfig')<\n BigCommerceConfig,\n {\n readonly getStoreHash: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError>;\n }\n>() {}\n\nconst getBigCommerceConfig = (key: string) => {\n return Config.nested(Config.string(key), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key })),\n );\n};\n\nconst getBigCommerceTimeout = () => {\n return Config.nested(Config.number('TIMEOUT'), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key: 'TIMEOUT' })),\n // Default to 30 seconds if not configured\n Effect.orElse(() => Effect.succeed(DEFAULTS.timeout.ms)),\n );\n};\n\nexport const BigCommerceConfigLive = Layer.effect(\n BigCommerceConfig,\n Effect.gen(function* () {\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n getBigCommerceConfig('STORE_HASH'),\n getBigCommerceConfig('CLIENT_ID'),\n getBigCommerceConfig('CLIENT_SECRET'),\n getBigCommerceConfig('ACCESS_TOKEN'),\n getBigCommerceTimeout(),\n ]);\n\n return {\n getStoreHash: Effect.succeed(storeHash),\n getClientId: Effect.succeed(clientId),\n getClientSecret: Effect.succeed(clientSecret),\n getAccessToken: Effect.succeed(accessToken),\n getTimeout: Effect.succeed(timeout),\n };\n }),\n);\n\nexport const BigCommerceConfigTest = Layer.succeed(BigCommerceConfig, {\n getAccessToken: Effect.succeed('test'),\n getClientId: Effect.succeed('test'),\n getClientSecret: Effect.succeed('test'),\n getStoreHash: Effect.succeed('test'),\n getTimeout: Effect.succeed(DEFAULTS.timeout.ms),\n});\n\nexport const validateBigCommerceConfig = () =>\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n config.getStoreHash,\n config.getClientId,\n config.getClientSecret,\n config.getAccessToken,\n config.getTimeout,\n ]);\n\n return {\n storeHash,\n clientId,\n clientSecret,\n accessToken,\n timeout,\n };\n });\n"],"mappings":"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","names":["Effect","Layer","Context","Data","Effect","Data","Context","Effect","Layer","Effect","code"]}
@@ -0,0 +1,30 @@
1
+ // src/bigcommerce-entities/addresses/schemas/form-field.schema.ts
2
+ import * as z from "zod";
3
+ var AddressFormFieldSchema = z.object({
4
+ name: z.string(),
5
+ value: z.string()
6
+ });
7
+
8
+ // src/bigcommerce-entities/addresses/schemas/address.schema.ts
9
+ import * as z2 from "zod";
10
+ var AddressSchema = z2.object({
11
+ first_name: z2.string(),
12
+ last_name: z2.string(),
13
+ company: z2.string(),
14
+ street_1: z2.string(),
15
+ street_2: z2.string(),
16
+ city: z2.string(),
17
+ state: z2.string(),
18
+ zip: z2.string(),
19
+ country: z2.string(),
20
+ country_iso2: z2.string(),
21
+ phone: z2.string(),
22
+ email: z2.string(),
23
+ form_fields: z2.array(AddressFormFieldSchema)
24
+ });
25
+
26
+ export {
27
+ AddressFormFieldSchema,
28
+ AddressSchema
29
+ };
30
+ //# sourceMappingURL=chunk-BWLQCNNX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/bigcommerce-entities/addresses/schemas/form-field.schema.ts","../src/bigcommerce-entities/addresses/schemas/address.schema.ts"],"sourcesContent":["import * as z from 'zod';\n\nexport const AddressFormFieldSchema = z.object({\n name: z.string(),\n value: z.string(),\n});\n","import * as z from 'zod';\nimport { AddressFormFieldSchema } from './form-field.schema';\n\nexport const AddressSchema = z.object({\n first_name: z.string(),\n last_name: z.string(),\n company: z.string(),\n street_1: z.string(),\n street_2: z.string(),\n city: z.string(),\n state: z.string(),\n zip: z.string(),\n country: z.string(),\n country_iso2: z.string(),\n phone: z.string(),\n email: z.string(),\n form_fields: z.array(AddressFormFieldSchema),\n});\n"],"mappings":";AAAA,YAAY,OAAO;AAEZ,IAAM,yBAA2B,SAAO;AAAA,EAC7C,MAAQ,SAAO;AAAA,EACf,OAAS,SAAO;AAClB,CAAC;;;ACLD,YAAYA,QAAO;AAGZ,IAAM,gBAAkB,UAAO;AAAA,EACpC,YAAc,UAAO;AAAA,EACrB,WAAa,UAAO;AAAA,EACpB,SAAW,UAAO;AAAA,EAClB,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,MAAQ,UAAO;AAAA,EACf,OAAS,UAAO;AAAA,EAChB,KAAO,UAAO;AAAA,EACd,SAAW,UAAO;AAAA,EAClB,cAAgB,UAAO;AAAA,EACvB,OAAS,UAAO;AAAA,EAChB,OAAS,UAAO;AAAA,EAChB,aAAe,SAAM,sBAAsB;AAC7C,CAAC;","names":["z"]}
@@ -1,2 +1,231 @@
1
+ import { I as InputValidationError } from './validation.error-CHLpPYC_.mjs';
2
+ import { S as SomeBigCommerceError, B as BigCommerceFetcher } from './bigcommerce.fetcher-Ujztbs8P.mjs';
3
+ import { Effect } from 'effect';
4
+ import * as z from 'zod';
5
+ import 'effect/Cause';
6
+ import 'effect/Types';
1
7
 
2
- export { }
8
+ declare const CreateCompanySchema: z.ZodObject<{
9
+ companyName: z.ZodString;
10
+ companyPhone: z.ZodString;
11
+ companyEmail: z.ZodString;
12
+ addressLine1: z.ZodString;
13
+ addressLine2: z.ZodString;
14
+ city: z.ZodString;
15
+ state: z.ZodString;
16
+ country: z.ZodString;
17
+ zipCode: z.ZodString;
18
+ adminFirstName: z.ZodString;
19
+ adminLastName: z.ZodString;
20
+ adminEmail: z.ZodString;
21
+ adminPhoneNumber: z.ZodString;
22
+ acceptCreationEmail: z.ZodBoolean;
23
+ uuid: z.ZodString;
24
+ channelIds: z.ZodArray<z.ZodInt>;
25
+ originChannelId: z.ZodInt;
26
+ customerGroupId: z.ZodInt;
27
+ extraFields: z.ZodArray<z.ZodObject<{
28
+ fieldName: z.ZodString;
29
+ fieldValue: z.ZodString;
30
+ }, z.core.$strip>>;
31
+ }, z.core.$strip>;
32
+ declare const CreateCompanyResponseSchema: z.ZodObject<{
33
+ data: z.ZodObject<{
34
+ companyId: z.ZodInt;
35
+ }, z.core.$strip>;
36
+ meta: z.ZodObject<{
37
+ message: z.ZodString;
38
+ }, z.core.$strip>;
39
+ }, z.core.$strip>;
40
+
41
+ declare const SetCompanyCreditSchema: z.ZodObject<{
42
+ data: z.ZodObject<{
43
+ creditEnabled: z.ZodBoolean;
44
+ creditCurrency: z.ZodEnum<{
45
+ MXN: "MXN";
46
+ }>;
47
+ availableCredit: z.ZodNumber;
48
+ limitPurchases: z.ZodBoolean;
49
+ creditHold: z.ZodBoolean;
50
+ }, z.core.$strip>;
51
+ companyId: z.ZodInt;
52
+ }, z.core.$strip>;
53
+ declare const SetCompanyCreditResponseSchema: z.ZodObject<{}, z.core.$strip>;
54
+
55
+ declare const GetCompanyExtraFieldsCriteriaSchema: z.ZodObject<{
56
+ limit: z.ZodOptional<z.ZodInt>;
57
+ offset: z.ZodOptional<z.ZodInt>;
58
+ }, z.core.$strip>;
59
+ declare const CompanyExtraFieldSchema: z.ZodObject<{
60
+ fieldName: z.ZodString;
61
+ labelName: z.ZodString;
62
+ listOfValue: z.ZodOptional<z.ZodArray<z.ZodString>>;
63
+ maximumLength: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
64
+ }, z.core.$strip>;
65
+ declare const GetCompanyExtraFieldsResponseSchema: z.ZodObject<{
66
+ data: z.ZodArray<z.ZodObject<{
67
+ fieldName: z.ZodString;
68
+ labelName: z.ZodString;
69
+ listOfValue: z.ZodOptional<z.ZodArray<z.ZodString>>;
70
+ maximumLength: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
71
+ }, z.core.$strip>>;
72
+ meta: z.ZodObject<{
73
+ message: z.ZodString;
74
+ pagination: z.ZodObject<{
75
+ totalCount: z.ZodNumber;
76
+ offset: z.ZodNumber;
77
+ limit: z.ZodNumber;
78
+ }, z.core.$strip>;
79
+ }, z.core.$strip>;
80
+ }, z.core.$strip>;
81
+
82
+ declare const SetCompanyPaymentMethodsSchema: z.ZodObject<{
83
+ data: z.ZodObject<{
84
+ payments: z.ZodArray<z.ZodObject<{
85
+ code: z.ZodString;
86
+ isEnabled: z.ZodBoolean;
87
+ }, z.core.$strip>>;
88
+ }, z.core.$strip>;
89
+ companyId: z.ZodInt;
90
+ }, z.core.$strip>;
91
+ declare const SetCompanyPaymentMethodsResponseSchema: z.ZodObject<{}, z.core.$strip>;
92
+
93
+ declare const CompanyRoleSchema: z.ZodObject<{
94
+ id: z.ZodInt;
95
+ name: z.ZodString;
96
+ roleLevel: z.ZodNumber;
97
+ roleType: z.ZodNumber;
98
+ }, z.core.$strip>;
99
+ declare const GetCompanyRolesCriteriaSchema: z.ZodObject<{
100
+ limit: z.ZodOptional<z.ZodInt>;
101
+ offset: z.ZodOptional<z.ZodInt>;
102
+ }, z.core.$strip>;
103
+ declare const GetCompanyRolesResponseSchema: z.ZodObject<{
104
+ data: z.ZodArray<z.ZodObject<{
105
+ id: z.ZodInt;
106
+ name: z.ZodString;
107
+ roleLevel: z.ZodNumber;
108
+ roleType: z.ZodNumber;
109
+ }, z.core.$strip>>;
110
+ meta: z.ZodObject<{
111
+ message: z.ZodString;
112
+ pagination: z.ZodObject<{
113
+ limit: z.ZodNumber;
114
+ offset: z.ZodNumber;
115
+ totalCount: z.ZodNumber;
116
+ }, z.core.$strip>;
117
+ }, z.core.$strip>;
118
+ }, z.core.$strip>;
119
+
120
+ declare const AssignSalesStaffSchema: z.ZodObject<{
121
+ assignments: z.ZodArray<z.ZodObject<{
122
+ assignStatus: z.ZodBoolean;
123
+ companyId: z.ZodInt;
124
+ }, z.core.$strip>>;
125
+ salesStaffId: z.ZodPipe<z.ZodInt, z.ZodTransform<string, number>>;
126
+ }, z.core.$strip>;
127
+ declare const AssignSalesStaffResponseSchema: z.ZodObject<{
128
+ code: z.ZodInt;
129
+ meta: z.ZodObject<{
130
+ message: z.ZodString;
131
+ }, z.core.$strip>;
132
+ }, z.core.$strip>;
133
+
134
+ declare const CreateCompanyUserSchema: z.ZodObject<{
135
+ acceptWelcomeEmail: z.ZodBoolean;
136
+ companyId: z.ZodInt;
137
+ companyRoleId: z.ZodInt;
138
+ email: z.ZodEmail;
139
+ firstName: z.ZodString;
140
+ lastName: z.ZodString;
141
+ phoneNumber: z.ZodString;
142
+ }, z.core.$strip>;
143
+ declare const CreateCompanyUserResponseSchema: z.ZodObject<{
144
+ code: z.ZodNumber;
145
+ data: z.ZodObject<{
146
+ bcId: z.ZodNumber;
147
+ userId: z.ZodInt;
148
+ }, z.core.$strip>;
149
+ meta: z.ZodObject<{
150
+ message: z.ZodString;
151
+ }, z.core.$strip>;
152
+ }, z.core.$strip>;
153
+
154
+ declare const assignSalesStaffToCompany: (input: z.input<typeof AssignSalesStaffSchema>) => Effect.Effect<{
155
+ code: number;
156
+ meta: {
157
+ message: string;
158
+ };
159
+ }[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
160
+
161
+ declare const createCompany: (data: z.input<typeof CreateCompanySchema>) => Effect.Effect<{
162
+ data: {
163
+ companyId: number;
164
+ };
165
+ meta: {
166
+ message: string;
167
+ };
168
+ }, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
169
+
170
+ declare const createCompanyUser: (data: z.input<typeof CreateCompanyUserSchema>) => Effect.Effect<{
171
+ code: number;
172
+ data: {
173
+ bcId: number;
174
+ userId: number;
175
+ };
176
+ meta: {
177
+ message: string;
178
+ };
179
+ }, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
180
+
181
+ declare const setCompanyCredit: (input: z.infer<typeof SetCompanyCreditSchema>) => Effect.Effect<Record<string, never>, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
182
+
183
+ declare const findCompanyExtraFields: (criteria: z.input<typeof GetCompanyExtraFieldsCriteriaSchema>) => Effect.Effect<{
184
+ data: {
185
+ fieldName: string;
186
+ labelName: string;
187
+ listOfValue?: string[] | undefined;
188
+ maximumLength?: number | undefined;
189
+ }[];
190
+ meta: {
191
+ message: string;
192
+ pagination: {
193
+ totalCount: number;
194
+ offset: number;
195
+ limit: number;
196
+ };
197
+ };
198
+ }, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
199
+ declare const getAllCompanyExtraFieldsBy: (criteria?: Omit<z.input<typeof GetCompanyExtraFieldsCriteriaSchema>, "limit" | "offset">) => Effect.Effect<{
200
+ fieldName: string;
201
+ labelName: string;
202
+ listOfValue?: string[] | undefined;
203
+ maximumLength?: number | undefined;
204
+ }[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
205
+
206
+ declare const findCompanyRoles: (criteria: z.infer<typeof GetCompanyRolesCriteriaSchema>) => Effect.Effect<{
207
+ data: {
208
+ id: number;
209
+ name: string;
210
+ roleLevel: number;
211
+ roleType: number;
212
+ }[];
213
+ meta: {
214
+ message: string;
215
+ pagination: {
216
+ limit: number;
217
+ offset: number;
218
+ totalCount: number;
219
+ };
220
+ };
221
+ }, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
222
+ declare const getAllCompanyRolesBy: (criteria?: Omit<z.infer<typeof GetCompanyRolesCriteriaSchema>, "limit" | "offset">) => Effect.Effect<{
223
+ id: number;
224
+ name: string;
225
+ roleLevel: number;
226
+ roleType: number;
227
+ }[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
228
+
229
+ declare const setCompanyPaymentMethods: (input: z.infer<typeof SetCompanyPaymentMethodsSchema>) => Effect.Effect<Record<string, never>, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
230
+
231
+ export { AssignSalesStaffResponseSchema, AssignSalesStaffSchema, CompanyExtraFieldSchema, CompanyRoleSchema, CreateCompanyResponseSchema, CreateCompanySchema, CreateCompanyUserResponseSchema, CreateCompanyUserSchema, GetCompanyExtraFieldsCriteriaSchema, GetCompanyExtraFieldsResponseSchema, GetCompanyRolesCriteriaSchema, GetCompanyRolesResponseSchema, SetCompanyCreditResponseSchema, SetCompanyCreditSchema, SetCompanyPaymentMethodsResponseSchema, SetCompanyPaymentMethodsSchema, assignSalesStaffToCompany, createCompany, createCompanyUser, findCompanyExtraFields, findCompanyRoles, getAllCompanyExtraFieldsBy, getAllCompanyRolesBy, setCompanyCredit, setCompanyPaymentMethods };