@edgebound/bigcommerce 0.1.2 → 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-RPASSHB6.mjs → chunk-2VMEIQCL.mjs} +81 -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 +10 -3
  26. package/dist/index.d.ts +10 -3
  27. package/dist/index.js +82 -19
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +5 -3
  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-RPASSHB6.mjs.map +0 -1
package/dist/products.mjs CHANGED
@@ -3,13 +3,8 @@ import {
3
3
  } from "./chunk-CERZFSUE.mjs";
4
4
  import {
5
5
  BigCommerceFetcher,
6
- RETRY_POLICY_WITH_BACKOFF,
7
- UPDATE_INVENTORY_BATCH_SIZE,
8
- UPDATE_INVENTORY_CONCURRENCY
9
- } from "./chunk-RPASSHB6.mjs";
10
-
11
- // src/bigcommerce-entities/products/set-inventory.ts
12
- import { Chunk, Effect, Stream } from "effect";
6
+ DEFAULTS
7
+ } from "./chunk-2VMEIQCL.mjs";
13
8
 
14
9
  // src/bigcommerce-entities/products/schemas/set-inventory.schema.ts
15
10
  import * as z from "zod";
@@ -33,12 +28,22 @@ var SetInventoryResponseSchema = z.object({
33
28
  transaction_id: z.string()
34
29
  });
35
30
 
31
+ // src/bigcommerce-entities/products/schemas/update-products.schema.ts
32
+ import * as z2 from "zod";
33
+ var UpdateProductVisibilitySchema = z2.object({
34
+ id: z2.number(),
35
+ is_visible: z2.boolean()
36
+ });
37
+ var UpdateProductSchema = z2.union([UpdateProductVisibilitySchema]);
38
+ var UpdateProductResponseSchema = z2.any();
39
+
36
40
  // src/bigcommerce-entities/products/set-inventory.ts
41
+ import { Chunk, Effect, Stream } from "effect";
37
42
  var setProductsInventory = (reason, items) => {
38
43
  return Stream.fromIterable(items).pipe(
39
- Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),
44
+ Stream.grouped(DEFAULTS.products.inventory.updateBatchSize),
40
45
  Stream.mapEffect((chunk) => updateProductInventory(reason, chunk), {
41
- concurrency: UPDATE_INVENTORY_CONCURRENCY
46
+ concurrency: DEFAULTS.products.inventory.updateConcurrency
42
47
  }),
43
48
  Stream.runCollect,
44
49
  Effect.map(Chunk.toArray)
@@ -60,7 +65,7 @@ var updateProductInventory = (reason, items) => {
60
65
  body: validatedBody,
61
66
  resultSchema: SetInventoryResponseSchema
62
67
  }),
63
- RETRY_POLICY_WITH_BACKOFF
68
+ DEFAULTS.retry.policy
64
69
  );
65
70
  });
66
71
  };
@@ -68,23 +73,12 @@ var updateProductInventory = (reason, items) => {
68
73
  // src/bigcommerce-entities/products/update-products.ts
69
74
  import { Chunk as Chunk2, Effect as Effect2, Stream as Stream2 } from "effect";
70
75
  import * as z3 from "zod";
71
-
72
- // src/bigcommerce-entities/products/schemas/update-products.schema.ts
73
- import * as z2 from "zod";
74
- var UpdateProductVisibilitySchema = z2.object({
75
- id: z2.number(),
76
- is_visible: z2.boolean()
77
- });
78
- var UpdateProductSchema = z2.union([UpdateProductVisibilitySchema]);
79
- var UpdateProductResponseSchema = z2.any();
80
-
81
- // src/bigcommerce-entities/products/update-products.ts
82
76
  var UpdateProductArraySchema = z3.array(UpdateProductSchema);
83
77
  var updateProducts = (dtos) => {
84
78
  return Stream2.fromIterable(dtos).pipe(
85
- Stream2.grouped(UPDATE_INVENTORY_BATCH_SIZE),
79
+ Stream2.grouped(DEFAULTS.products.updateBatchSize),
86
80
  Stream2.mapEffect((chunk) => updateProductBatch(chunk), {
87
- concurrency: UPDATE_INVENTORY_CONCURRENCY
81
+ concurrency: DEFAULTS.products.updateConcurrency
88
82
  }),
89
83
  Stream2.runCollect,
90
84
  Effect2.map(Chunk2.toArray)
@@ -103,7 +97,7 @@ var updateProductBatch = (items) => {
103
97
  body: validatedBody,
104
98
  resultSchema: UpdateProductResponseSchema
105
99
  }),
106
- RETRY_POLICY_WITH_BACKOFF
100
+ DEFAULTS.retry.policy
107
101
  );
108
102
  });
109
103
  };
@@ -113,7 +107,14 @@ var setProductVisibility = (dtos) => {
113
107
  return updateProducts(dtos);
114
108
  };
115
109
  export {
110
+ SetInventoryResponseSchema,
111
+ SetProductInventoryItemSchema,
112
+ SetProductInventorySchema,
113
+ UpdateProductResponseSchema,
114
+ UpdateProductSchema,
115
+ UpdateProductVisibilitySchema,
116
116
  setProductVisibility,
117
- setProductsInventory
117
+ setProductsInventory,
118
+ updateProducts
118
119
  };
119
120
  //# sourceMappingURL=products.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bigcommerce-entities/products/set-inventory.ts","../src/bigcommerce-entities/products/schemas/set-inventory.schema.ts","../src/bigcommerce-entities/products/update-products.ts","../src/bigcommerce-entities/products/schemas/update-products.schema.ts","../src/bigcommerce-entities/products/set-visibility.ts"],"sourcesContent":["import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetInventoryResponseSchema,\n SetProductInventorySchema,\n type SetProductInventoryItemSchema,\n} from './schemas/set-inventory.schema';\n\nexport const setProductsInventory = (\n reason: string,\n items: z.input<typeof SetProductInventoryItemSchema>[],\n) => {\n return Stream.fromIterable(items).pipe(\n Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),\n Stream.mapEffect((chunk) => updateProductInventory(reason, chunk), {\n concurrency: UPDATE_INVENTORY_CONCURRENCY,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductInventory = (\n reason: string,\n items: Chunk.Chunk<z.input<typeof SetProductInventoryItemSchema>>,\n) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(SetProductInventorySchema, {\n reason,\n items: Chunk.toArray(items),\n });\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: SetInventoryResponseSchema,\n }),\n RETRY_POLICY_WITH_BACKOFF,\n );\n });\n};\n","import * as z from 'zod';\nexport const SetProductInventoryItemSchema = z.union([\n z.object({\n location_id: z.int(),\n product_id: z.int(),\n quantity: z.int().min(0),\n }),\n z.object({\n location_id: z.int(),\n sku: z.string(),\n quantity: z.int().min(0),\n }),\n]);\nexport const SetProductInventorySchema = z.object({\n reason: z.string(),\n items: z.array(SetProductInventoryItemSchema),\n});\nexport const SetInventoryResponseSchema = z.object({\n transaction_id: z.string(),\n});\n","import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n UpdateProductResponseSchema,\n UpdateProductSchema,\n type UpdateProductInput,\n} from './schemas/update-products.schema';\nconst UpdateProductArraySchema = z.array(UpdateProductSchema);\nexport const updateProducts = (dtos: UpdateProductInput[]) => {\n return Stream.fromIterable(dtos).pipe(\n Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),\n Stream.mapEffect((chunk) => updateProductBatch(chunk), {\n concurrency: UPDATE_INVENTORY_CONCURRENCY,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductBatch = (items: Chunk.Chunk<UpdateProductInput>) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(UpdateProductArraySchema, Chunk.toArray(items));\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: UpdateProductResponseSchema,\n }),\n RETRY_POLICY_WITH_BACKOFF,\n );\n });\n};\n","import * as z from 'zod';\nexport const UpdateProductVisibilitySchema = z.object({\n id: z.number(),\n is_visible: z.boolean(),\n});\n\nexport const UpdateProductSchema = z.union([UpdateProductVisibilitySchema]);\n\nexport const UpdateProductResponseSchema = z.any();\n","import * as z from 'zod';\nimport { UpdateProductVisibilitySchema } from './schemas/update-products.schema';\nimport { updateProducts } from './update-products';\nexport const setProductVisibility = (dtos: z.input<typeof UpdateProductVisibilitySchema>[]) => {\n return updateProducts(dtos);\n};\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,OAAO,QAAQ,cAAc;;;ACAtC,YAAY,OAAO;AACZ,IAAM,gCAAkC,QAAM;AAAA,EACjD,SAAO;AAAA,IACP,aAAe,MAAI;AAAA,IACnB,YAAc,MAAI;AAAA,IAClB,UAAY,MAAI,EAAE,IAAI,CAAC;AAAA,EACzB,CAAC;AAAA,EACC,SAAO;AAAA,IACP,aAAe,MAAI;AAAA,IACnB,KAAO,SAAO;AAAA,IACd,UAAY,MAAI,EAAE,IAAI,CAAC;AAAA,EACzB,CAAC;AACH,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,QAAU,SAAO;AAAA,EACjB,OAAS,QAAM,6BAA6B;AAC9C,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,gBAAkB,SAAO;AAC3B,CAAC;;;ADJM,IAAM,uBAAuB,CAClC,QACA,UACG;AACH,SAAO,OAAO,aAAa,KAAK,EAAE;AAAA,IAChC,OAAO,QAAQ,2BAA2B;AAAA,IAC1C,OAAO,UAAU,CAAC,UAAU,uBAAuB,QAAQ,KAAK,GAAG;AAAA,MACjE,aAAa;AAAA,IACf,CAAC;AAAA,IACD,OAAO;AAAA,IACP,OAAO,IAAI,MAAM,OAAO;AAAA,EAC1B;AACF;AAEA,IAAM,yBAAyB,CAC7B,QACA,UACG;AACH,SAAO,OAAO,IAAI,aAAa;AAC7B,UAAM,gBAAgB,OAAO,cAAc,2BAA2B;AAAA,MACpE;AAAA,MACA,OAAO,MAAM,QAAQ,KAAK;AAAA,IAC5B,CAAC;AACD,UAAM,UAAU,OAAO;AACvB,WAAO,OAAO,OAAO;AAAA,MACnB,QAAQ,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM;AAAA,QACN,cAAc;AAAA,MAChB,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AEnDA,SAAS,SAAAA,QAAO,UAAAC,SAAQ,UAAAC,eAAc;AACtC,YAAYC,QAAO;;;ACDnB,YAAYC,QAAO;AACZ,IAAM,gCAAkC,UAAO;AAAA,EACpD,IAAM,UAAO;AAAA,EACb,YAAc,WAAQ;AACxB,CAAC;AAEM,IAAM,sBAAwB,SAAM,CAAC,6BAA6B,CAAC;AAEnE,IAAM,8BAAgC,OAAI;;;ADMjD,IAAM,2BAA6B,SAAM,mBAAmB;AACrD,IAAM,iBAAiB,CAAC,SAA+B;AAC5D,SAAOC,QAAO,aAAa,IAAI,EAAE;AAAA,IAC/BA,QAAO,QAAQ,2BAA2B;AAAA,IAC1CA,QAAO,UAAU,CAAC,UAAU,mBAAmB,KAAK,GAAG;AAAA,MACrD,aAAa;AAAA,IACf,CAAC;AAAA,IACDA,QAAO;AAAA,IACPC,QAAO,IAAIC,OAAM,OAAO;AAAA,EAC1B;AACF;AAEA,IAAM,qBAAqB,CAAC,UAA2C;AACrE,SAAOD,QAAO,IAAI,aAAa;AAC7B,UAAM,gBAAgB,OAAO,cAAc,0BAA0BC,OAAM,QAAQ,KAAK,CAAC;AACzF,UAAM,UAAU,OAAO;AACvB,WAAO,OAAOD,QAAO;AAAA,MACnB,QAAQ,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM;AAAA,QACN,cAAc;AAAA,MAChB,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AEvCO,IAAM,uBAAuB,CAAC,SAA0D;AAC7F,SAAO,eAAe,IAAI;AAC5B;","names":["Chunk","Effect","Stream","z","z","Stream","Effect","Chunk"]}
1
+ {"version":3,"sources":["../src/bigcommerce-entities/products/schemas/set-inventory.schema.ts","../src/bigcommerce-entities/products/schemas/update-products.schema.ts","../src/bigcommerce-entities/products/set-inventory.ts","../src/bigcommerce-entities/products/update-products.ts","../src/bigcommerce-entities/products/set-visibility.ts"],"sourcesContent":["import * as z from 'zod';\nexport const SetProductInventoryItemSchema = z.union([\n z.object({\n location_id: z.int(),\n product_id: z.int(),\n quantity: z.int().min(0),\n }),\n z.object({\n location_id: z.int(),\n sku: z.string(),\n quantity: z.int().min(0),\n }),\n]);\nexport const SetProductInventorySchema = z.object({\n reason: z.string(),\n items: z.array(SetProductInventoryItemSchema),\n});\nexport const SetInventoryResponseSchema = z.object({\n transaction_id: z.string(),\n});\n","import * as z from 'zod';\nexport const UpdateProductVisibilitySchema = z.object({\n id: z.number(),\n is_visible: z.boolean(),\n});\n\nexport const UpdateProductSchema = z.union([UpdateProductVisibilitySchema]);\n\nexport const UpdateProductResponseSchema = z.any();\n","import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetInventoryResponseSchema,\n SetProductInventorySchema,\n type SetProductInventoryItemSchema,\n} from './schemas/set-inventory.schema';\n\nexport const setProductsInventory = (\n reason: string,\n items: z.input<typeof SetProductInventoryItemSchema>[],\n) => {\n return Stream.fromIterable(items).pipe(\n Stream.grouped(DEFAULTS.products.inventory.updateBatchSize),\n Stream.mapEffect((chunk) => updateProductInventory(reason, chunk), {\n concurrency: DEFAULTS.products.inventory.updateConcurrency,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductInventory = (\n reason: string,\n items: Chunk.Chunk<z.input<typeof SetProductInventoryItemSchema>>,\n) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(SetProductInventorySchema, {\n reason,\n items: Chunk.toArray(items),\n });\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: SetInventoryResponseSchema,\n }),\n DEFAULTS.retry.policy,\n );\n });\n};\n","import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { UpdateProductResponseSchema, UpdateProductSchema } from './schemas/update-products.schema';\nconst UpdateProductArraySchema = z.array(UpdateProductSchema);\nexport const updateProducts = (dtos: z.input<typeof UpdateProductSchema>[]) => {\n return Stream.fromIterable(dtos).pipe(\n Stream.grouped(DEFAULTS.products.updateBatchSize),\n Stream.mapEffect((chunk) => updateProductBatch(chunk), {\n concurrency: DEFAULTS.products.updateConcurrency,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductBatch = (items: Chunk.Chunk<z.input<typeof UpdateProductSchema>>) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(UpdateProductArraySchema, Chunk.toArray(items));\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: UpdateProductResponseSchema,\n }),\n DEFAULTS.retry.policy,\n );\n });\n};\n","import * as z from 'zod';\nimport { UpdateProductVisibilitySchema } from './schemas/update-products.schema';\nimport { updateProducts } from './update-products';\nexport const setProductVisibility = (dtos: z.input<typeof UpdateProductVisibilitySchema>[]) => {\n return updateProducts(dtos);\n};\n"],"mappings":";;;;;;;;;AAAA,YAAY,OAAO;AACZ,IAAM,gCAAkC,QAAM;AAAA,EACjD,SAAO;AAAA,IACP,aAAe,MAAI;AAAA,IACnB,YAAc,MAAI;AAAA,IAClB,UAAY,MAAI,EAAE,IAAI,CAAC;AAAA,EACzB,CAAC;AAAA,EACC,SAAO;AAAA,IACP,aAAe,MAAI;AAAA,IACnB,KAAO,SAAO;AAAA,IACd,UAAY,MAAI,EAAE,IAAI,CAAC;AAAA,EACzB,CAAC;AACH,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,QAAU,SAAO;AAAA,EACjB,OAAS,QAAM,6BAA6B;AAC9C,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,gBAAkB,SAAO;AAC3B,CAAC;;;ACnBD,YAAYA,QAAO;AACZ,IAAM,gCAAkC,UAAO;AAAA,EACpD,IAAM,UAAO;AAAA,EACb,YAAc,WAAQ;AACxB,CAAC;AAEM,IAAM,sBAAwB,SAAM,CAAC,6BAA6B,CAAC;AAEnE,IAAM,8BAAgC,OAAI;;;ACRjD,SAAS,OAAO,QAAQ,cAAc;AAW/B,IAAM,uBAAuB,CAClC,QACA,UACG;AACH,SAAO,OAAO,aAAa,KAAK,EAAE;AAAA,IAChC,OAAO,QAAQ,SAAS,SAAS,UAAU,eAAe;AAAA,IAC1D,OAAO,UAAU,CAAC,UAAU,uBAAuB,QAAQ,KAAK,GAAG;AAAA,MACjE,aAAa,SAAS,SAAS,UAAU;AAAA,IAC3C,CAAC;AAAA,IACD,OAAO;AAAA,IACP,OAAO,IAAI,MAAM,OAAO;AAAA,EAC1B;AACF;AAEA,IAAM,yBAAyB,CAC7B,QACA,UACG;AACH,SAAO,OAAO,IAAI,aAAa;AAC7B,UAAM,gBAAgB,OAAO,cAAc,2BAA2B;AAAA,MACpE;AAAA,MACA,OAAO,MAAM,QAAQ,KAAK;AAAA,IAC5B,CAAC;AACD,UAAM,UAAU,OAAO;AACvB,WAAO,OAAO,OAAO;AAAA,MACnB,QAAQ,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM;AAAA,QACN,cAAc;AAAA,MAChB,CAAC;AAAA,MACD,SAAS,MAAM;AAAA,IACjB;AAAA,EACF,CAAC;AACH;;;AC/CA,SAAS,SAAAC,QAAO,UAAAC,SAAQ,UAAAC,eAAc;AACtC,YAAYC,QAAO;AAKnB,IAAM,2BAA6B,SAAM,mBAAmB;AACrD,IAAM,iBAAiB,CAAC,SAAgD;AAC7E,SAAOC,QAAO,aAAa,IAAI,EAAE;AAAA,IAC/BA,QAAO,QAAQ,SAAS,SAAS,eAAe;AAAA,IAChDA,QAAO,UAAU,CAAC,UAAU,mBAAmB,KAAK,GAAG;AAAA,MACrD,aAAa,SAAS,SAAS;AAAA,IACjC,CAAC;AAAA,IACDA,QAAO;AAAA,IACPC,QAAO,IAAIC,OAAM,OAAO;AAAA,EAC1B;AACF;AAEA,IAAM,qBAAqB,CAAC,UAA4D;AACtF,SAAOD,QAAO,IAAI,aAAa;AAC7B,UAAM,gBAAgB,OAAO,cAAc,0BAA0BC,OAAM,QAAQ,KAAK,CAAC;AACzF,UAAM,UAAU,OAAO;AACvB,WAAO,OAAOD,QAAO;AAAA,MACnB,QAAQ,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM;AAAA,QACN,cAAc;AAAA,MAChB,CAAC;AAAA,MACD,SAAS,MAAM;AAAA,IACjB;AAAA,EACF,CAAC;AACH;;;AC/BO,IAAM,uBAAuB,CAAC,SAA0D;AAC7F,SAAO,eAAe,IAAI;AAC5B;","names":["z","Chunk","Effect","Stream","z","Stream","Effect","Chunk"]}
@@ -0,0 +1,64 @@
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';
7
+
8
+ declare const SalesStaffSchema: z.ZodObject<{
9
+ companyCount: z.ZodNumber;
10
+ email: z.ZodString;
11
+ id: z.ZodNumber;
12
+ roleName: z.ZodString;
13
+ salesRepName: z.ZodString;
14
+ }, z.core.$strip>;
15
+ declare const GetSalesStaffResponseSchema: z.ZodObject<{
16
+ code: z.ZodNumber;
17
+ data: z.ZodArray<z.ZodObject<{
18
+ companyCount: z.ZodNumber;
19
+ email: z.ZodString;
20
+ id: z.ZodNumber;
21
+ roleName: z.ZodString;
22
+ salesRepName: z.ZodString;
23
+ }, z.core.$strip>>;
24
+ meta: z.ZodObject<{
25
+ message: z.ZodString;
26
+ pagination: z.ZodObject<{
27
+ limit: z.ZodNumber;
28
+ offset: z.ZodNumber;
29
+ totalCount: z.ZodNumber;
30
+ }, z.core.$strip>;
31
+ }, z.core.$strip>;
32
+ }, z.core.$strip>;
33
+ declare const GetSalesStaffCriteriaSchema: z.ZodObject<{
34
+ limit: z.ZodOptional<z.ZodInt>;
35
+ offset: z.ZodOptional<z.ZodInt>;
36
+ }, z.core.$strip>;
37
+
38
+ declare const findSalesStaff: (criteria?: z.input<typeof GetSalesStaffCriteriaSchema>) => Effect.Effect<{
39
+ code: number;
40
+ data: {
41
+ companyCount: number;
42
+ email: string;
43
+ id: number;
44
+ roleName: string;
45
+ salesRepName: string;
46
+ }[];
47
+ meta: {
48
+ message: string;
49
+ pagination: {
50
+ limit: number;
51
+ offset: number;
52
+ totalCount: number;
53
+ };
54
+ };
55
+ }, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
56
+ declare const getAllSalesStaffBy: (criteria?: Omit<z.input<typeof GetSalesStaffCriteriaSchema>, "limit" | "offset">) => Effect.Effect<{
57
+ companyCount: number;
58
+ email: string;
59
+ id: number;
60
+ roleName: string;
61
+ salesRepName: string;
62
+ }[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
63
+
64
+ export { GetSalesStaffCriteriaSchema, GetSalesStaffResponseSchema, SalesStaffSchema, findSalesStaff, getAllSalesStaffBy };
@@ -0,0 +1,64 @@
1
+ import { I as InputValidationError } from './validation.error-CHLpPYC_.js';
2
+ import { S as SomeBigCommerceError, B as BigCommerceFetcher } from './bigcommerce.fetcher-Ujztbs8P.js';
3
+ import { Effect } from 'effect';
4
+ import * as z from 'zod';
5
+ import 'effect/Cause';
6
+ import 'effect/Types';
7
+
8
+ declare const SalesStaffSchema: z.ZodObject<{
9
+ companyCount: z.ZodNumber;
10
+ email: z.ZodString;
11
+ id: z.ZodNumber;
12
+ roleName: z.ZodString;
13
+ salesRepName: z.ZodString;
14
+ }, z.core.$strip>;
15
+ declare const GetSalesStaffResponseSchema: z.ZodObject<{
16
+ code: z.ZodNumber;
17
+ data: z.ZodArray<z.ZodObject<{
18
+ companyCount: z.ZodNumber;
19
+ email: z.ZodString;
20
+ id: z.ZodNumber;
21
+ roleName: z.ZodString;
22
+ salesRepName: z.ZodString;
23
+ }, z.core.$strip>>;
24
+ meta: z.ZodObject<{
25
+ message: z.ZodString;
26
+ pagination: z.ZodObject<{
27
+ limit: z.ZodNumber;
28
+ offset: z.ZodNumber;
29
+ totalCount: z.ZodNumber;
30
+ }, z.core.$strip>;
31
+ }, z.core.$strip>;
32
+ }, z.core.$strip>;
33
+ declare const GetSalesStaffCriteriaSchema: z.ZodObject<{
34
+ limit: z.ZodOptional<z.ZodInt>;
35
+ offset: z.ZodOptional<z.ZodInt>;
36
+ }, z.core.$strip>;
37
+
38
+ declare const findSalesStaff: (criteria?: z.input<typeof GetSalesStaffCriteriaSchema>) => Effect.Effect<{
39
+ code: number;
40
+ data: {
41
+ companyCount: number;
42
+ email: string;
43
+ id: number;
44
+ roleName: string;
45
+ salesRepName: string;
46
+ }[];
47
+ meta: {
48
+ message: string;
49
+ pagination: {
50
+ limit: number;
51
+ offset: number;
52
+ totalCount: number;
53
+ };
54
+ };
55
+ }, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
56
+ declare const getAllSalesStaffBy: (criteria?: Omit<z.input<typeof GetSalesStaffCriteriaSchema>, "limit" | "offset">) => Effect.Effect<{
57
+ companyCount: number;
58
+ email: string;
59
+ id: number;
60
+ roleName: string;
61
+ salesRepName: string;
62
+ }[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
63
+
64
+ export { GetSalesStaffCriteriaSchema, GetSalesStaffResponseSchema, SalesStaffSchema, findSalesStaff, getAllSalesStaffBy };
@@ -0,0 +1,419 @@
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/sales-staff/index.ts
31
+ var sales_staff_exports = {};
32
+ __export(sales_staff_exports, {
33
+ GetSalesStaffCriteriaSchema: () => GetSalesStaffCriteriaSchema,
34
+ GetSalesStaffResponseSchema: () => GetSalesStaffResponseSchema,
35
+ SalesStaffSchema: () => SalesStaffSchema,
36
+ findSalesStaff: () => findSalesStaff,
37
+ getAllSalesStaffBy: () => getAllSalesStaffBy
38
+ });
39
+ module.exports = __toCommonJS(sales_staff_exports);
40
+
41
+ // src/bigcommerce-entities/sales-staff/get-sales-staff.ts
42
+ var import_effect8 = require("effect");
43
+ var import_qs = __toESM(require("qs"));
44
+
45
+ // src/constants.ts
46
+ var import_effect = require("effect");
47
+ var DEFAULTS = {
48
+ retry: {
49
+ policy: import_effect.Schedule.exponential(import_effect.Duration.millis(200), 2).pipe(
50
+ import_effect.Schedule.intersect(import_effect.Schedule.recurs(3))
51
+ )
52
+ },
53
+ timeout: {
54
+ ms: 3e4
55
+ },
56
+ bigcommerceUrls: {
57
+ b2b: "https://api-b2b.bigcommerce.com/api",
58
+ regular: "https://api.bigcommerce.com/stores"
59
+ },
60
+ customers: {
61
+ getBatchSize: 250
62
+ },
63
+ salesStaff: {
64
+ getBatchSize: 250
65
+ },
66
+ companies: {
67
+ salesStaffAssignments: {
68
+ assignBatchSize: 10,
69
+ concurrency: 2
70
+ },
71
+ extraFields: {
72
+ getBatchSize: 250
73
+ },
74
+ roles: {
75
+ getBatchSize: 250
76
+ }
77
+ },
78
+ products: {
79
+ updateBatchSize: 5,
80
+ updateConcurrency: 2,
81
+ inventory: {
82
+ updateBatchSize: 2e3,
83
+ updateConcurrency: 2
84
+ }
85
+ },
86
+ orders: {
87
+ getAllBatchSize: 250,
88
+ shippingAddresses: {
89
+ getAllBatchSize: 250
90
+ },
91
+ products: {
92
+ getAllBatchSize: 250
93
+ }
94
+ },
95
+ priceLists: {
96
+ getAllBatchSize: 250
97
+ }
98
+ };
99
+
100
+ // src/core/bigcommerce.error.ts
101
+ var import_effect2 = require("effect");
102
+ var BigCommerceUnprocessableEntityError = class extends import_effect2.Data.TaggedError(
103
+ "BigCommerceUnprocessableEntityError"
104
+ ) {
105
+ };
106
+ var BigCommerceUnauthorizedError = class extends import_effect2.Data.TaggedError(
107
+ "BigCommerceUnauthorizedError"
108
+ ) {
109
+ };
110
+ var BigCommerceForbiddenError = class extends import_effect2.Data.TaggedError("BigCommerceForbiddenError") {
111
+ };
112
+ var BigCommerceNotFoundError = class extends import_effect2.Data.TaggedError("BigCommerceNotFoundError") {
113
+ };
114
+ var BigCommerceConflictError = class extends import_effect2.Data.TaggedError("BigCommerceConflictError") {
115
+ };
116
+ var BigCommerceConnectionError = class extends import_effect2.Data.TaggedError("BigCommerceConnectionError") {
117
+ };
118
+ var BigCommerceUnknownError = class extends import_effect2.Data.TaggedError("BigCommerceUnknownError") {
119
+ };
120
+ var BigCommerceInvalidResponseError = class extends import_effect2.Data.TaggedError(
121
+ "BigCommerceInvalidResponseError"
122
+ ) {
123
+ };
124
+ var BigCommerceInvalidRequestError = class extends import_effect2.Data.TaggedError(
125
+ "BigCommerceInvalidRequestError"
126
+ ) {
127
+ };
128
+ var BigCommerceParseResponseError = class extends import_effect2.Data.TaggedError(
129
+ "BigCommerceParseResponseError"
130
+ ) {
131
+ };
132
+
133
+ // src/core/bigcommerce.fetcher.ts
134
+ var import_effect3 = require("effect");
135
+ var BigCommerceFetcher = class extends import_effect3.Context.Tag("BigCommerceFetcher")() {
136
+ };
137
+
138
+ // src/core/bigcommerce.fetcher.live.ts
139
+ var import_effect5 = require("effect");
140
+
141
+ // src/core/config.ts
142
+ var import_effect4 = require("effect");
143
+ var NoBigCommerceConfigError = class extends import_effect4.Data.TaggedError("NoBigCommerceConfigError") {
144
+ };
145
+ var BigCommerceConfig = class extends import_effect4.Context.Tag("BigCommerceConfig")() {
146
+ };
147
+ var getBigCommerceConfig = (key) => {
148
+ return import_effect4.Config.nested(import_effect4.Config.string(key), "BIGCOMMERCE").pipe(
149
+ import_effect4.Effect.mapError(() => new NoBigCommerceConfigError({ key }))
150
+ );
151
+ };
152
+ var getBigCommerceTimeout = () => {
153
+ return import_effect4.Config.nested(import_effect4.Config.number("TIMEOUT"), "BIGCOMMERCE").pipe(
154
+ import_effect4.Effect.mapError(() => new NoBigCommerceConfigError({ key: "TIMEOUT" })),
155
+ // Default to 30 seconds if not configured
156
+ import_effect4.Effect.orElse(() => import_effect4.Effect.succeed(DEFAULTS.timeout.ms))
157
+ );
158
+ };
159
+ var BigCommerceConfigLive = import_effect4.Layer.effect(
160
+ BigCommerceConfig,
161
+ import_effect4.Effect.gen(function* () {
162
+ const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* import_effect4.Effect.all([
163
+ getBigCommerceConfig("STORE_HASH"),
164
+ getBigCommerceConfig("CLIENT_ID"),
165
+ getBigCommerceConfig("CLIENT_SECRET"),
166
+ getBigCommerceConfig("ACCESS_TOKEN"),
167
+ getBigCommerceTimeout()
168
+ ]);
169
+ return {
170
+ getStoreHash: import_effect4.Effect.succeed(storeHash),
171
+ getClientId: import_effect4.Effect.succeed(clientId),
172
+ getClientSecret: import_effect4.Effect.succeed(clientSecret),
173
+ getAccessToken: import_effect4.Effect.succeed(accessToken),
174
+ getTimeout: import_effect4.Effect.succeed(timeout)
175
+ };
176
+ })
177
+ );
178
+ var BigCommerceConfigTest = import_effect4.Layer.succeed(BigCommerceConfig, {
179
+ getAccessToken: import_effect4.Effect.succeed("test"),
180
+ getClientId: import_effect4.Effect.succeed("test"),
181
+ getClientSecret: import_effect4.Effect.succeed("test"),
182
+ getStoreHash: import_effect4.Effect.succeed("test"),
183
+ getTimeout: import_effect4.Effect.succeed(DEFAULTS.timeout.ms)
184
+ });
185
+
186
+ // src/core/bigcommerce.fetcher.live.ts
187
+ var BigCommerceStatusCodes = {
188
+ UNAUTHORIZED: 401,
189
+ CONFLICT: 409,
190
+ FORBIDDEN: 403,
191
+ NOT_FOUND: 404,
192
+ UNPROCESSABLE_ENTITY: 422,
193
+ INTERNAL_SERVER_ERROR: 500,
194
+ BAD_GATEWAY: 502,
195
+ SERVICE_UNAVAILABLE: 503,
196
+ GATEWAY_TIMEOUT: 504,
197
+ INVALID_REQUEST: 400
198
+ };
199
+ var BigCommerceFetcherLive = import_effect5.Layer.effect(
200
+ BigCommerceFetcher,
201
+ import_effect5.Effect.gen(function* () {
202
+ const config = yield* BigCommerceConfig;
203
+ const storeHash = yield* config.getStoreHash;
204
+ const accessToken = yield* config.getAccessToken;
205
+ const timeout = yield* config.getTimeout;
206
+ return {
207
+ fetch: (params) => {
208
+ const base = getBase(params);
209
+ const headers = {
210
+ Accept: "application/json",
211
+ "Content-Type": "application/json",
212
+ "x-auth-token": accessToken
213
+ };
214
+ if (params.isB2B) {
215
+ headers["x-store-hash"] = storeHash;
216
+ }
217
+ const url = applyParams(base.replace("[storeHash]", storeHash), params.query);
218
+ return import_effect5.Effect.tryPromise({
219
+ try: () => fetch(url, {
220
+ headers,
221
+ signal: AbortSignal.timeout(timeout),
222
+ method: params.method,
223
+ ...params.body && { body: JSON.stringify(params.body) }
224
+ }),
225
+ catch: (error) => {
226
+ if (error instanceof Error && error.name === "TimeoutError") {
227
+ return new BigCommerceConnectionError({
228
+ message: `Request timeout after ${timeout}ms`,
229
+ type: "timeout"
230
+ });
231
+ }
232
+ if (error instanceof Error && error.name === "AbortError") {
233
+ return new BigCommerceConnectionError({
234
+ message: `Request timeout after ${timeout}ms`,
235
+ type: "timeout"
236
+ });
237
+ }
238
+ return new BigCommerceUnknownError({ cause: error });
239
+ }
240
+ }).pipe(
241
+ import_effect5.Effect.tapError(
242
+ (error) => import_effect5.Effect.logError("Failed to fetch from BigCommerce API", error.cause)
243
+ ),
244
+ import_effect5.Effect.flatMap((response) => transformResponse(response, params.resultSchema))
245
+ );
246
+ }
247
+ };
248
+ })
249
+ );
250
+ var applyParams = (url, params) => {
251
+ const base = new URL(url);
252
+ if (!params) {
253
+ return base;
254
+ }
255
+ if (typeof params === "string") {
256
+ base.search = params;
257
+ } else {
258
+ for (const [key, value] of Object.entries(params)) {
259
+ base.searchParams.append(key, `${value}`);
260
+ }
261
+ }
262
+ return base;
263
+ };
264
+ var getBase = ({
265
+ isB2B,
266
+ path,
267
+ version
268
+ }) => {
269
+ if (isB2B) {
270
+ return `${DEFAULTS.bigcommerceUrls.b2b}/${version}/io/${path}`;
271
+ }
272
+ return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;
273
+ };
274
+ function processSuccessResponse(response, schema) {
275
+ return import_effect5.Effect.tryPromise({
276
+ try: () => response.json(),
277
+ catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
278
+ }).pipe(
279
+ import_effect5.Effect.tapError(
280
+ (error) => import_effect5.Effect.logError("Error parsing response from BigCommerce API", error.cause)
281
+ ),
282
+ import_effect5.Effect.tryMap({
283
+ try: (json) => schema.parse(json),
284
+ catch: (error) => new BigCommerceParseResponseError({ error })
285
+ })
286
+ );
287
+ }
288
+ var processErrorResponse = (response) => {
289
+ const code = response.status;
290
+ return import_effect5.Effect.tryPromise({
291
+ try: () => response.json(),
292
+ catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
293
+ }).pipe(
294
+ import_effect5.Effect.tapError((error) => import_effect5.Effect.logError("Error parsing error response", error.cause)),
295
+ import_effect5.Effect.flatMap(
296
+ (errorDetails) => import_effect5.Effect.fail(
297
+ import_effect5.Match.value(code).pipe(
298
+ import_effect5.Match.when(
299
+ BigCommerceStatusCodes.INVALID_REQUEST,
300
+ () => new BigCommerceInvalidRequestError({ errorDetails })
301
+ ),
302
+ import_effect5.Match.when(BigCommerceStatusCodes.UNAUTHORIZED, () => new BigCommerceUnauthorizedError()),
303
+ import_effect5.Match.when(BigCommerceStatusCodes.FORBIDDEN, () => new BigCommerceForbiddenError()),
304
+ import_effect5.Match.when(BigCommerceStatusCodes.NOT_FOUND, () => new BigCommerceNotFoundError()),
305
+ import_effect5.Match.when(
306
+ BigCommerceStatusCodes.CONFLICT,
307
+ () => new BigCommerceConflictError({ details: errorDetails })
308
+ ),
309
+ import_effect5.Match.when(
310
+ BigCommerceStatusCodes.UNPROCESSABLE_ENTITY,
311
+ () => new BigCommerceUnprocessableEntityError({ errorDetails })
312
+ ),
313
+ import_effect5.Match.when(
314
+ (code2) => code2 >= 500,
315
+ () => new BigCommerceConnectionError({
316
+ message: `Server error: ${code}`,
317
+ type: code === BigCommerceStatusCodes.INTERNAL_SERVER_ERROR ? "internalError" : code === BigCommerceStatusCodes.BAD_GATEWAY || code === BigCommerceStatusCodes.GATEWAY_TIMEOUT ? "timeout" : "internalError"
318
+ })
319
+ ),
320
+ import_effect5.Match.orElse(() => new BigCommerceUnknownError({ cause: errorDetails }))
321
+ )
322
+ )
323
+ )
324
+ );
325
+ };
326
+ var transformResponse = (response, schema) => {
327
+ if (response.ok) {
328
+ return processSuccessResponse(response, schema);
329
+ }
330
+ return processErrorResponse(response);
331
+ };
332
+
333
+ // src/validation/index.ts
334
+ var import_effect7 = require("effect");
335
+
336
+ // src/validation/validation.error.ts
337
+ var import_effect6 = require("effect");
338
+ var InputValidationError = class extends import_effect6.Data.TaggedError("InputValidationError") {
339
+ };
340
+
341
+ // src/validation/index.ts
342
+ var validateInput = (schema, data) => {
343
+ return import_effect7.Effect.try({
344
+ try: () => schema.parse(data),
345
+ catch: (error) => new InputValidationError({ input: data, error })
346
+ });
347
+ };
348
+
349
+ // src/bigcommerce-entities/sales-staff/schemas/get-sales-staff.schema.ts
350
+ var z = __toESM(require("zod"));
351
+ var SalesStaffSchema = z.object({
352
+ companyCount: z.number(),
353
+ email: z.string(),
354
+ id: z.number(),
355
+ roleName: z.string(),
356
+ salesRepName: z.string()
357
+ });
358
+ var GetSalesStaffResponseSchema = z.object({
359
+ code: z.number(),
360
+ data: SalesStaffSchema.array(),
361
+ meta: z.object({
362
+ message: z.string(),
363
+ pagination: z.object({
364
+ limit: z.number(),
365
+ offset: z.number(),
366
+ totalCount: z.number()
367
+ })
368
+ })
369
+ });
370
+ var GetSalesStaffCriteriaSchema = z.object({
371
+ limit: z.int().max(DEFAULTS.salesStaff.getBatchSize).optional(),
372
+ offset: z.int().optional()
373
+ });
374
+
375
+ // src/bigcommerce-entities/sales-staff/get-sales-staff.ts
376
+ var findSalesStaff = (criteria) => import_effect8.Effect.gen(function* () {
377
+ const validatedCriteria = yield* validateInput(GetSalesStaffCriteriaSchema, criteria ?? {});
378
+ const fetcher = yield* BigCommerceFetcher;
379
+ return yield* import_effect8.Effect.retry(
380
+ fetcher.fetch({
381
+ isB2B: true,
382
+ method: "GET",
383
+ query: import_qs.default.stringify(validatedCriteria),
384
+ path: "sales-staffs",
385
+ resultSchema: GetSalesStaffResponseSchema,
386
+ version: "v3"
387
+ }),
388
+ DEFAULTS.retry.policy
389
+ );
390
+ });
391
+ var getAllSalesStaffBy = (criteria) => import_effect8.Effect.gen(function* () {
392
+ let hasMore = true;
393
+ const limit = DEFAULTS.salesStaff.getBatchSize;
394
+ let offset = 0;
395
+ const data = [];
396
+ while (hasMore) {
397
+ const response = yield* findSalesStaff({
398
+ limit,
399
+ offset,
400
+ ...criteria
401
+ });
402
+ if (response.data.length) {
403
+ offset += limit;
404
+ data.push(...response.data);
405
+ } else {
406
+ hasMore = false;
407
+ }
408
+ }
409
+ return data;
410
+ });
411
+ // Annotate the CommonJS export names for ESM import in node:
412
+ 0 && (module.exports = {
413
+ GetSalesStaffCriteriaSchema,
414
+ GetSalesStaffResponseSchema,
415
+ SalesStaffSchema,
416
+ findSalesStaff,
417
+ getAllSalesStaffBy
418
+ });
419
+ //# sourceMappingURL=salesStaff.js.map