@edgebound/bigcommerce 0.2.1 → 0.3.1

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.
@@ -323,4 +323,4 @@ export {
323
323
  validateBigCommerceConfig,
324
324
  BigCommerceFetcherLive
325
325
  };
326
- //# sourceMappingURL=chunk-2VMEIQCL.mjs.map
326
+ //# sourceMappingURL=chunk-PAXNZ36X.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';\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.ZodType>(\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"]}
@@ -116,6 +116,7 @@ declare const GetCompanyRolesResponseSchema: z.ZodObject<{
116
116
  }, z.core.$strip>;
117
117
  }, z.core.$strip>;
118
118
  }, z.core.$strip>;
119
+ type GetCompanyRolesResponse = z.output<typeof GetCompanyRolesResponseSchema>;
119
120
 
120
121
  declare const AssignSalesStaffSchema: z.ZodObject<{
121
122
  assignments: z.ZodArray<z.ZodObject<{
@@ -228,4 +229,4 @@ declare const getAllCompanyRolesBy: (criteria?: Omit<z.infer<typeof GetCompanyRo
228
229
 
229
230
  declare const setCompanyPaymentMethods: (input: z.infer<typeof SetCompanyPaymentMethodsSchema>) => Effect.Effect<Record<string, never>, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
230
231
 
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 };
232
+ export { AssignSalesStaffResponseSchema, AssignSalesStaffSchema, CompanyExtraFieldSchema, CompanyRoleSchema, CreateCompanyResponseSchema, CreateCompanySchema, CreateCompanyUserResponseSchema, CreateCompanyUserSchema, GetCompanyExtraFieldsCriteriaSchema, GetCompanyExtraFieldsResponseSchema, GetCompanyRolesCriteriaSchema, type GetCompanyRolesResponse, GetCompanyRolesResponseSchema, SetCompanyCreditResponseSchema, SetCompanyCreditSchema, SetCompanyPaymentMethodsResponseSchema, SetCompanyPaymentMethodsSchema, assignSalesStaffToCompany, createCompany, createCompanyUser, findCompanyExtraFields, findCompanyRoles, getAllCompanyExtraFieldsBy, getAllCompanyRolesBy, setCompanyCredit, setCompanyPaymentMethods };
@@ -116,6 +116,7 @@ declare const GetCompanyRolesResponseSchema: z.ZodObject<{
116
116
  }, z.core.$strip>;
117
117
  }, z.core.$strip>;
118
118
  }, z.core.$strip>;
119
+ type GetCompanyRolesResponse = z.output<typeof GetCompanyRolesResponseSchema>;
119
120
 
120
121
  declare const AssignSalesStaffSchema: z.ZodObject<{
121
122
  assignments: z.ZodArray<z.ZodObject<{
@@ -228,4 +229,4 @@ declare const getAllCompanyRolesBy: (criteria?: Omit<z.infer<typeof GetCompanyRo
228
229
 
229
230
  declare const setCompanyPaymentMethods: (input: z.infer<typeof SetCompanyPaymentMethodsSchema>) => Effect.Effect<Record<string, never>, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
230
231
 
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 };
232
+ export { AssignSalesStaffResponseSchema, AssignSalesStaffSchema, CompanyExtraFieldSchema, CompanyRoleSchema, CreateCompanyResponseSchema, CreateCompanySchema, CreateCompanyUserResponseSchema, CreateCompanyUserSchema, GetCompanyExtraFieldsCriteriaSchema, GetCompanyExtraFieldsResponseSchema, GetCompanyRolesCriteriaSchema, type GetCompanyRolesResponse, GetCompanyRolesResponseSchema, SetCompanyCreditResponseSchema, SetCompanyCreditSchema, SetCompanyPaymentMethodsResponseSchema, SetCompanyPaymentMethodsSchema, assignSalesStaffToCompany, createCompany, createCompanyUser, findCompanyExtraFields, findCompanyRoles, getAllCompanyExtraFieldsBy, getAllCompanyRolesBy, setCompanyCredit, setCompanyPaymentMethods };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bigcommerce-entities/companies/index.ts","../src/bigcommerce-entities/companies/assign-sales-staff.ts","../src/constants.ts","../src/core/bigcommerce.error.ts","../src/core/bigcommerce.fetcher.ts","../src/core/bigcommerce.fetcher.live.ts","../src/core/config.ts","../src/validation/index.ts","../src/validation/validation.error.ts","../src/bigcommerce-entities/companies/schemas/company.schema.ts","../src/bigcommerce-entities/companies/schemas/credit.schemas.ts","../src/bigcommerce-entities/companies/schemas/extra-fields.schema.ts","../src/bigcommerce-entities/companies/schemas/payment-methods.schema.ts","../src/bigcommerce-entities/companies/schemas/roles.ts","../src/bigcommerce-entities/companies/schemas/sales-staff.schema.ts","../src/bigcommerce-entities/companies/schemas/user.schema.ts","../src/bigcommerce-entities/companies/create-company.ts","../src/bigcommerce-entities/companies/create-company-user.ts","../src/bigcommerce-entities/companies/credit.ts","../src/bigcommerce-entities/companies/get-company-fields.ts","../src/bigcommerce-entities/companies/get-company-roles.ts","../src/bigcommerce-entities/companies/set-payment-methods.ts"],"sourcesContent":["export * from './assign-sales-staff';\nexport * from './create-company';\nexport * from './create-company-user';\nexport * from './credit';\nexport * from './get-company-fields';\nexport * from './get-company-roles';\nexport * from './schemas';\nexport * from './set-payment-methods';\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 { AssignSalesStaffResponseSchema, AssignSalesStaffSchema } from './schemas';\nconst assignSalesStaffToCompanyBatch = (\n staffId: string,\n assignments: z.input<typeof AssignSalesStaffSchema>['assignments'],\n) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'PUT',\n path: `sales-staffs/${staffId}`,\n version: 'v3',\n body: assignments,\n resultSchema: AssignSalesStaffResponseSchema,\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const assignSalesStaffToCompany = (input: z.input<typeof AssignSalesStaffSchema>) =>\n Effect.gen(function* () {\n const validatedInput = yield* validateInput(AssignSalesStaffSchema, input);\n return yield* Stream.fromIterable(validatedInput.assignments).pipe(\n Stream.grouped(DEFAULTS.companies.salesStaffAssignments.assignBatchSize),\n Stream.mapEffect(\n (chunk) =>\n assignSalesStaffToCompanyBatch(validatedInput.salesStaffId, Chunk.toArray(chunk)),\n { concurrency: DEFAULTS.companies.salesStaffAssignments.concurrency },\n ),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\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 { 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 { 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","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { InputValidationError } from './validation.error';\nexport const validateInput = <Schema extends z.ZodType>(schema: Schema, data: z.input<Schema>) => {\n return Effect.try({\n try: () => schema.parse(data),\n catch: (error) => new InputValidationError({ input: data, error: error as z.ZodError }),\n });\n};\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class InputValidationError extends Data.TaggedError('InputValidationError')<{\n input: unknown;\n error: z.ZodError;\n}> {}\n","import * as z from 'zod';\nexport const CreateCompanySchema = z.object({\n companyName: z.string(),\n companyPhone: z.string(),\n companyEmail: z.string(),\n addressLine1: z.string(),\n addressLine2: z.string(),\n city: z.string(),\n state: z.string(),\n country: z.string(),\n zipCode: z.string(),\n adminFirstName: z.string(),\n adminLastName: z.string(),\n adminEmail: z.string(),\n adminPhoneNumber: z.string(),\n acceptCreationEmail: z.boolean(),\n uuid: z.string(),\n channelIds: z.array(z.int()),\n originChannelId: z.int(),\n customerGroupId: z.int(),\n extraFields: z.array(\n z.object({\n fieldName: z.string(),\n fieldValue: z.string(),\n }),\n ),\n});\n\nexport const CreateCompanyResponseSchema = z.object({\n data: z.object({\n companyId: z.int(),\n }),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import * as z from 'zod';\nexport const SetCompanyCreditSchema = z.object({\n data: z.object({\n creditEnabled: z.boolean(),\n creditCurrency: z.enum(['MXN']),\n availableCredit: z.number(),\n limitPurchases: z.boolean(),\n creditHold: z.boolean(),\n }),\n companyId: z.int(),\n});\n\nexport const SetCompanyCreditResponseSchema = z.object({});\n","import * as z from 'zod';\nimport { DEFAULTS } from '../../../constants';\nexport const GetCompanyExtraFieldsCriteriaSchema = z.object({\n limit: z.int().max(DEFAULTS.companies.extraFields.getBatchSize).optional(),\n offset: z.int().optional(),\n});\nexport const CompanyExtraFieldSchema = z.object({\n fieldName: z.string(),\n labelName: z.string(),\n listOfValue: z.string().array().optional(),\n maximumLength: z.coerce.number().optional(),\n});\nexport const GetCompanyExtraFieldsResponseSchema = z.object({\n data: CompanyExtraFieldSchema.array(),\n meta: z.object({\n message: z.string(),\n pagination: z.object({\n totalCount: z.number(),\n offset: z.number(),\n limit: z.number(),\n }),\n }),\n});\n","import * as z from 'zod';\nexport const SetCompanyPaymentMethodsSchema = z.object({\n data: z.object({\n payments: z\n .object({\n code: z.string(),\n isEnabled: z.boolean(),\n })\n .array(),\n }),\n companyId: z.int(),\n});\n\nexport const SetCompanyPaymentMethodsResponseSchema = z.object({});\n","import * as z from 'zod';\nexport const CompanyRoleSchema = z.object({\n id: z.int(),\n name: z.string(),\n roleLevel: z.number(),\n roleType: z.number(),\n});\nexport const GetCompanyRolesCriteriaSchema = z.object({\n limit: z.int().optional(),\n offset: z.int().optional(),\n});\nexport const GetCompanyRolesResponseSchema = z.object({\n data: CompanyRoleSchema.array(),\n meta: z.object({\n message: z.string(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n totalCount: z.number(),\n }),\n }),\n});\n","import * as z from 'zod';\nexport const AssignSalesStaffSchema = z.object({\n assignments: z.array(\n z.object({\n assignStatus: z.boolean(),\n companyId: z.int(),\n }),\n ),\n salesStaffId: z.int().transform(String),\n});\n\nexport const AssignSalesStaffResponseSchema = z.object({\n code: z.int(),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import * as z from 'zod';\nexport const CreateCompanyUserSchema = z.object({\n acceptWelcomeEmail: z.boolean(),\n companyId: z.int(),\n companyRoleId: z.int(),\n email: z.email(),\n firstName: z.string(),\n lastName: z.string(),\n phoneNumber: z.string(),\n});\n\nexport const CreateCompanyUserResponseSchema = z.object({\n code: z.number(),\n data: z.object({\n bcId: z.number(),\n userId: z.int(),\n }),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { CreateCompanyResponseSchema, CreateCompanySchema } from './schemas/company.schema';\nexport const createCompany = (data: z.input<typeof CreateCompanySchema>) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedData = yield* validateInput(CreateCompanySchema, data);\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'POST',\n path: 'companies',\n resultSchema: CreateCompanyResponseSchema,\n version: 'v3',\n body: validatedData,\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { CreateCompanyUserResponseSchema, CreateCompanyUserSchema } from './schemas/user.schema';\nexport const createCompanyUser = (data: z.input<typeof CreateCompanyUserSchema>) =>\n Effect.gen(function* () {\n const validatedData = yield* validateInput(CreateCompanyUserSchema, data);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: validatedData,\n isB2B: true,\n method: 'POST',\n path: 'users',\n resultSchema: CreateCompanyUserResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { SetCompanyCreditResponseSchema, SetCompanyCreditSchema } from './schemas/credit.schemas';\nexport const setCompanyCredit = (input: z.infer<typeof SetCompanyCreditSchema>) =>\n Effect.gen(function* () {\n const { companyId, data } = yield* validateInput(SetCompanyCreditSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: true,\n method: 'PUT',\n path: `companies/${companyId}/credit`,\n resultSchema: SetCompanyCreditResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n GetCompanyExtraFieldsCriteriaSchema,\n GetCompanyExtraFieldsResponseSchema,\n} from './schemas/extra-fields.schema';\nexport const findCompanyExtraFields = (\n criteria: z.input<typeof GetCompanyExtraFieldsCriteriaSchema>,\n) =>\n Effect.gen(function* () {\n const validatedCriteria = yield* validateInput(GetCompanyExtraFieldsCriteriaSchema, criteria);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify(validatedCriteria),\n path: 'companies/extra-fields',\n resultSchema: GetCompanyExtraFieldsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const getAllCompanyExtraFieldsBy = (\n criteria?: Omit<z.input<typeof GetCompanyExtraFieldsCriteriaSchema>, 'limit' | 'offset'>,\n) =>\n Effect.gen(function* () {\n let offset = 0;\n const limit = DEFAULTS.companies.extraFields.getBatchSize;\n let hasMore = true;\n const data: z.infer<typeof GetCompanyExtraFieldsResponseSchema>['data'] = [];\n while (hasMore) {\n const response = yield* findCompanyExtraFields({\n ...criteria,\n limit,\n offset,\n });\n if (response.data.length) {\n offset += limit;\n data.push(...response.data);\n } else {\n hasMore = false;\n }\n }\n\n return data;\n });\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { GetCompanyRolesCriteriaSchema, GetCompanyRolesResponseSchema } from './schemas/roles';\nexport const findCompanyRoles = (criteria: z.infer<typeof GetCompanyRolesCriteriaSchema>) =>\n Effect.gen(function* () {\n const validatedCriteria = yield* validateInput(GetCompanyRolesCriteriaSchema, criteria);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify(validatedCriteria),\n path: 'companies/roles',\n resultSchema: GetCompanyRolesResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const getAllCompanyRolesBy = (\n criteria?: Omit<z.infer<typeof GetCompanyRolesCriteriaSchema>, 'limit' | 'offset'>,\n) =>\n Effect.gen(function* () {\n let hasMore = true;\n const data: z.output<typeof GetCompanyRolesResponseSchema>['data'] = [];\n let offset = 0;\n const limit = DEFAULTS.companies.roles.getBatchSize;\n while (hasMore) {\n const response = yield* findCompanyRoles({\n ...criteria,\n limit,\n offset,\n });\n if (response.data.length) {\n offset += limit;\n data.push(...response.data);\n } else {\n hasMore = false;\n }\n }\n return data;\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetCompanyPaymentMethodsResponseSchema,\n SetCompanyPaymentMethodsSchema,\n} from './schemas/payment-methods.schema';\nexport const setCompanyPaymentMethods = (input: z.infer<typeof SetCompanyPaymentMethodsSchema>) =>\n Effect.gen(function* () {\n const { companyId, data } = yield* validateInput(SetCompanyPaymentMethodsSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: true,\n method: 'PUT',\n path: `companies/${companyId}/payments`,\n resultSchema: SetCompanyPaymentMethodsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,iBAAsC;;;ACAtC,oBAAmC;AAE5B,IAAM,WAAW;AAAA,EACtB,OAAO;AAAA,IACL,QAAQ,uBAAS,YAAY,uBAAS,OAAO,GAAG,GAAG,CAAC,EAAE;AAAA,MACpD,uBAAS,UAAU,uBAAS,OAAO,CAAC,CAAC;AAAA,IACvC;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,IAAI;AAAA,EACN;AAAA,EACA,iBAAiB;AAAA,IACf,KAAK;AAAA,IACL,SAAS;AAAA,EACX;AAAA,EACA,WAAW;AAAA,IACT,cAAc;AAAA,EAChB;AAAA,EACA,YAAY;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA,WAAW;AAAA,IACT,uBAAuB;AAAA,MACrB,iBAAiB;AAAA,MACjB,aAAa;AAAA,IACf;AAAA,IACA,aAAa;AAAA,MACX,cAAc;AAAA,IAChB;AAAA,IACA,OAAO;AAAA,MACL,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,WAAW;AAAA,MACT,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,IACrB;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,MACjB,iBAAiB;AAAA,IACnB;AAAA,IACA,UAAU;AAAA,MACR,iBAAiB;AAAA,IACnB;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,iBAAiB;AAAA,EACnB;AACF;;;ACrDA,IAAAC,iBAAqB;AAEd,IAAM,sCAAN,cAAkD,oBAAK;AAAA,EAC5D;AACF,EAEG;AAAC;AAEG,IAAM,+BAAN,cAA2C,oBAAK;AAAA,EACrD;AACF,EAAE;AAAC;AAEI,IAAM,4BAAN,cAAwC,oBAAK,YAAY,2BAA2B,EAAE;AAAC;AAEvF,IAAM,2BAAN,cAAuC,oBAAK,YAAY,0BAA0B,EAAE;AAAC;AAErF,IAAM,2BAAN,cAAuC,oBAAK,YAAY,0BAA0B,EAEtF;AAAC;AAEG,IAAM,6BAAN,cAAyC,oBAAK,YAAY,4BAA4B,EAG1F;AAAC;AAEG,IAAM,0BAAN,cAAsC,oBAAK,YAAY,yBAAyB,EAEpF;AAAC;AAEG,IAAM,kCAAN,cAA8C,oBAAK;AAAA,EACxD;AACF,EAEG;AAAC;AAEG,IAAM,iCAAN,cAA6C,oBAAK;AAAA,EACvD;AACF,EAEG;AAAC;AAEG,IAAM,gCAAN,cAA4C,oBAAK;AAAA,EACtD;AACF,EAEG;AAAC;;;AC7CJ,IAAAC,iBAAgC;AAoBzB,IAAM,qBAAN,cAAiC,uBAAQ,IAAI,oBAAoB,EAWtE,EAAE;AAAC;;;AC/BL,IAAAC,iBAAqC;;;ACArC,IAAAC,iBAAqD;AAI9C,IAAM,2BAAN,cAAuC,oBAAK,YAAY,0BAA0B,EAEtF;AAAC;AAEG,IAAM,oBAAN,cAAgC,uBAAQ,IAAI,mBAAmB,EASpE,EAAE;AAAC;AAEL,IAAM,uBAAuB,CAAC,QAAgB;AAC5C,SAAO,sBAAO,OAAO,sBAAO,OAAO,GAAG,GAAG,aAAa,EAAE;AAAA,IACtD,sBAAO,SAAS,MAAM,IAAI,yBAAyB,EAAE,IAAI,CAAC,CAAC;AAAA,EAC7D;AACF;AAEA,IAAM,wBAAwB,MAAM;AAClC,SAAO,sBAAO,OAAO,sBAAO,OAAO,SAAS,GAAG,aAAa,EAAE;AAAA,IAC5D,sBAAO,SAAS,MAAM,IAAI,yBAAyB,EAAE,KAAK,UAAU,CAAC,CAAC;AAAA;AAAA,IAEtE,sBAAO,OAAO,MAAM,sBAAO,QAAQ,SAAS,QAAQ,EAAE,CAAC;AAAA,EACzD;AACF;AAEO,IAAM,wBAAwB,qBAAM;AAAA,EACzC;AAAA,EACA,sBAAO,IAAI,aAAa;AACtB,UAAM,CAAC,WAAW,UAAU,cAAc,aAAa,OAAO,IAAI,OAAO,sBAAO,IAAI;AAAA,MAClF,qBAAqB,YAAY;AAAA,MACjC,qBAAqB,WAAW;AAAA,MAChC,qBAAqB,eAAe;AAAA,MACpC,qBAAqB,cAAc;AAAA,MACnC,sBAAsB;AAAA,IACxB,CAAC;AAED,WAAO;AAAA,MACL,cAAc,sBAAO,QAAQ,SAAS;AAAA,MACtC,aAAa,sBAAO,QAAQ,QAAQ;AAAA,MACpC,iBAAiB,sBAAO,QAAQ,YAAY;AAAA,MAC5C,gBAAgB,sBAAO,QAAQ,WAAW;AAAA,MAC1C,YAAY,sBAAO,QAAQ,OAAO;AAAA,IACpC;AAAA,EACF,CAAC;AACH;AAEO,IAAM,wBAAwB,qBAAM,QAAQ,mBAAmB;AAAA,EACpE,gBAAgB,sBAAO,QAAQ,MAAM;AAAA,EACrC,aAAa,sBAAO,QAAQ,MAAM;AAAA,EAClC,iBAAiB,sBAAO,QAAQ,MAAM;AAAA,EACtC,cAAc,sBAAO,QAAQ,MAAM;AAAA,EACnC,YAAY,sBAAO,QAAQ,SAAS,QAAQ,EAAE;AAChD,CAAC;;;ADzCD,IAAM,yBAAyB;AAAA,EAC7B,cAAc;AAAA,EACd,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;AAEO,IAAM,yBAIT,qBAAM;AAAA,EACR;AAAA,EACA,sBAAO,IAAI,aAAa;AACtB,UAAM,SAAS,OAAO;AACtB,UAAM,YAAY,OAAO,OAAO;AAChC,UAAM,cAAc,OAAO,OAAO;AAClC,UAAM,UAAU,OAAO,OAAO;AAE9B,WAAO;AAAA,MACL,OAAO,CAAC,WAAW;AACjB,cAAM,OAAO,QAAQ,MAAM;AAC3B,cAAM,UAAkC;AAAA,UACtC,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,gBAAgB;AAAA,QAClB;AAEA,YAAI,OAAO,OAAO;AAChB,kBAAQ,cAAc,IAAI;AAAA,QAC5B;AACA,cAAM,MAAM,YAAY,KAAK,QAAQ,eAAe,SAAS,GAAG,OAAO,KAAK;AAE5E,eAAO,sBAAO,WAAW;AAAA,UACvB,KAAK,MACH,MAAM,KAAK;AAAA,YACT;AAAA,YACA,QAAQ,YAAY,QAAQ,OAAO;AAAA,YACnC,QAAQ,OAAO;AAAA,YACf,GAAI,OAAO,QAAQ,EAAE,MAAM,KAAK,UAAU,OAAO,IAAI,EAAE;AAAA,UACzD,CAAC;AAAA,UACH,OAAO,CAAC,UAAU;AAChB,gBAAI,iBAAiB,SAAS,MAAM,SAAS,gBAAgB;AAC3D,qBAAO,IAAI,2BAA2B;AAAA,gBACpC,SAAS,yBAAyB,OAAO;AAAA,gBACzC,MAAM;AAAA,cACR,CAAC;AAAA,YACH;AACA,gBAAI,iBAAiB,SAAS,MAAM,SAAS,cAAc;AACzD,qBAAO,IAAI,2BAA2B;AAAA,gBACpC,SAAS,yBAAyB,OAAO;AAAA,gBACzC,MAAM;AAAA,cACR,CAAC;AAAA,YACH;AACA,mBAAO,IAAI,wBAAwB,EAAE,OAAO,MAAM,CAAC;AAAA,UACrD;AAAA,QACF,CAAC,EAAE;AAAA,UACD,sBAAO;AAAA,YAAS,CAAC,UACf,sBAAO,SAAS,wCAAwC,MAAM,KAAK;AAAA,UACrE;AAAA,UACA,sBAAO,QAAQ,CAAC,aAAa,kBAAkB,UAAU,OAAO,YAAY,CAAC;AAAA,QAC/E;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;AACA,IAAM,cAAc,CAAC,KAAa,WAA2D;AAC3F,QAAM,OAAO,IAAI,IAAI,GAAG;AACxB,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,MAAI,OAAO,WAAW,UAAU;AAC9B,SAAK,SAAS;AAAA,EAChB,OAAO;AACL,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,WAAK,aAAa,OAAO,KAAK,GAAG,KAAK,EAAE;AAAA,IAC1C;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,UAAU,CAAC;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,MAIc;AACZ,MAAI,OAAO;AACT,WAAO,GAAG,SAAS,gBAAgB,GAAG,IAAI,OAAO,OAAO,IAAI;AAAA,EAC9D;AACA,SAAO,GAAG,SAAS,gBAAgB,OAAO,gBAAgB,OAAO,IAAI,IAAI;AAC3E;AACA,SAAS,uBAAoD,UAAoB,QAAgB;AAC/F,SAAO,sBAAO,WAAW;AAAA,IACvB,KAAK,MAAM,SAAS,KAAK;AAAA,IACzB,OAAO,CAAC,UAAU,IAAI,gCAAgC,EAAE,OAAO,MAAM,CAAC;AAAA,EACxE,CAAC,EAAE;AAAA,IACD,sBAAO;AAAA,MAAS,CAAC,UACf,sBAAO,SAAS,+CAA+C,MAAM,KAAK;AAAA,IAC5E;AAAA,IACA,sBAAO,OAAO;AAAA,MACZ,KAAK,CAAC,SAAS,OAAO,MAAM,IAAI;AAAA,MAChC,OAAO,CAAC,UAAU,IAAI,8BAA8B,EAAE,MAA2B,CAAC;AAAA,IACpF,CAAC;AAAA,EACH;AACF;AACA,IAAM,uBAAuB,CAAC,aAAuB;AACnD,QAAM,OAAO,SAAS;AACtB,SAAO,sBAAO,WAAW;AAAA,IACvB,KAAK,MAAM,SAAS,KAAK;AAAA,IACzB,OAAO,CAAC,UAAU,IAAI,gCAAgC,EAAE,OAAO,MAAM,CAAC;AAAA,EACxE,CAAC,EAAE;AAAA,IACD,sBAAO,SAAS,CAAC,UAAU,sBAAO,SAAS,gCAAgC,MAAM,KAAK,CAAC;AAAA,IACvF,sBAAO;AAAA,MAAQ,CAAC,iBACd,sBAAO;AAAA,QACL,qBAAM,MAAM,IAAI,EAAE;AAAA,UAChB,qBAAM;AAAA,YACJ,uBAAuB;AAAA,YACvB,MAAM,IAAI,+BAA+B,EAAE,aAAa,CAAC;AAAA,UAC3D;AAAA,UACA,qBAAM,KAAK,uBAAuB,cAAc,MAAM,IAAI,6BAA6B,CAAC;AAAA,UACxF,qBAAM,KAAK,uBAAuB,WAAW,MAAM,IAAI,0BAA0B,CAAC;AAAA,UAClF,qBAAM,KAAK,uBAAuB,WAAW,MAAM,IAAI,yBAAyB,CAAC;AAAA,UACjF,qBAAM;AAAA,YACJ,uBAAuB;AAAA,YACvB,MAAM,IAAI,yBAAyB,EAAE,SAAS,aAAa,CAAC;AAAA,UAC9D;AAAA,UACA,qBAAM;AAAA,YACJ,uBAAuB;AAAA,YACvB,MAAM,IAAI,oCAAoC,EAAE,aAAa,CAAC;AAAA,UAChE;AAAA,UACA,qBAAM;AAAA,YACJ,CAACC,UAASA,SAAQ;AAAA,YAClB,MACE,IAAI,2BAA2B;AAAA,cAC7B,SAAS,iBAAiB,IAAI;AAAA,cAC9B,MACE,SAAS,uBAAuB,wBAC5B,kBACA,SAAS,uBAAuB,eAC9B,SAAS,uBAAuB,kBAChC,YACA;AAAA,YACV,CAAC;AAAA,UACL;AAAA,UACA,qBAAM,OAAO,MAAM,IAAI,wBAAwB,EAAE,OAAO,aAAa,CAAC,CAAC;AAAA,QACzE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,oBAAoB,CACxB,UACA,WAC0D;AAC1D,MAAI,SAAS,IAAI;AACf,WAAO,uBAAuB,UAAU,MAAM;AAAA,EAChD;AACA,SAAO,qBAAqB,QAAQ;AACtC;;;AE5LA,IAAAC,iBAAuB;;;ACAvB,IAAAC,iBAAqB;AAEd,IAAM,uBAAN,cAAmC,oBAAK,YAAY,sBAAsB,EAG9E;AAAC;;;ADFG,IAAM,gBAAgB,CAA2B,QAAgB,SAA0B;AAChG,SAAO,sBAAO,IAAI;AAAA,IAChB,KAAK,MAAM,OAAO,MAAM,IAAI;AAAA,IAC5B,OAAO,CAAC,UAAU,IAAI,qBAAqB,EAAE,OAAO,MAAM,MAA2B,CAAC;AAAA,EACxF,CAAC;AACH;;;AERA,QAAmB;AACZ,IAAM,sBAAwB,SAAO;AAAA,EAC1C,aAAe,SAAO;AAAA,EACtB,cAAgB,SAAO;AAAA,EACvB,cAAgB,SAAO;AAAA,EACvB,cAAgB,SAAO;AAAA,EACvB,cAAgB,SAAO;AAAA,EACvB,MAAQ,SAAO;AAAA,EACf,OAAS,SAAO;AAAA,EAChB,SAAW,SAAO;AAAA,EAClB,SAAW,SAAO;AAAA,EAClB,gBAAkB,SAAO;AAAA,EACzB,eAAiB,SAAO;AAAA,EACxB,YAAc,SAAO;AAAA,EACrB,kBAAoB,SAAO;AAAA,EAC3B,qBAAuB,UAAQ;AAAA,EAC/B,MAAQ,SAAO;AAAA,EACf,YAAc,QAAQ,MAAI,CAAC;AAAA,EAC3B,iBAAmB,MAAI;AAAA,EACvB,iBAAmB,MAAI;AAAA,EACvB,aAAe;AAAA,IACX,SAAO;AAAA,MACP,WAAa,SAAO;AAAA,MACpB,YAAc,SAAO;AAAA,IACvB,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,8BAAgC,SAAO;AAAA,EAClD,MAAQ,SAAO;AAAA,IACb,WAAa,MAAI;AAAA,EACnB,CAAC;AAAA,EACD,MAAQ,SAAO;AAAA,IACb,SAAW,SAAO;AAAA,EACpB,CAAC;AACH,CAAC;;;ACnCD,IAAAC,KAAmB;AACZ,IAAM,yBAA2B,UAAO;AAAA,EAC7C,MAAQ,UAAO;AAAA,IACb,eAAiB,WAAQ;AAAA,IACzB,gBAAkB,QAAK,CAAC,KAAK,CAAC;AAAA,IAC9B,iBAAmB,UAAO;AAAA,IAC1B,gBAAkB,WAAQ;AAAA,IAC1B,YAAc,WAAQ;AAAA,EACxB,CAAC;AAAA,EACD,WAAa,OAAI;AACnB,CAAC;AAEM,IAAM,iCAAmC,UAAO,CAAC,CAAC;;;ACZzD,IAAAC,KAAmB;AAEZ,IAAM,sCAAwC,UAAO;AAAA,EAC1D,OAAS,OAAI,EAAE,IAAI,SAAS,UAAU,YAAY,YAAY,EAAE,SAAS;AAAA,EACzE,QAAU,OAAI,EAAE,SAAS;AAC3B,CAAC;AACM,IAAM,0BAA4B,UAAO;AAAA,EAC9C,WAAa,UAAO;AAAA,EACpB,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO,EAAE,MAAM,EAAE,SAAS;AAAA,EACzC,eAAiB,UAAO,OAAO,EAAE,SAAS;AAC5C,CAAC;AACM,IAAM,sCAAwC,UAAO;AAAA,EAC1D,MAAM,wBAAwB,MAAM;AAAA,EACpC,MAAQ,UAAO;AAAA,IACb,SAAW,UAAO;AAAA,IAClB,YAAc,UAAO;AAAA,MACnB,YAAc,UAAO;AAAA,MACrB,QAAU,UAAO;AAAA,MACjB,OAAS,UAAO;AAAA,IAClB,CAAC;AAAA,EACH,CAAC;AACH,CAAC;;;ACtBD,IAAAC,KAAmB;AACZ,IAAM,iCAAmC,UAAO;AAAA,EACrD,MAAQ,UAAO;AAAA,IACb,UACG,UAAO;AAAA,MACN,MAAQ,UAAO;AAAA,MACf,WAAa,WAAQ;AAAA,IACvB,CAAC,EACA,MAAM;AAAA,EACX,CAAC;AAAA,EACD,WAAa,OAAI;AACnB,CAAC;AAEM,IAAM,yCAA2C,UAAO,CAAC,CAAC;;;ACbjE,IAAAC,KAAmB;AACZ,IAAM,oBAAsB,UAAO;AAAA,EACxC,IAAM,OAAI;AAAA,EACV,MAAQ,UAAO;AAAA,EACf,WAAa,UAAO;AAAA,EACpB,UAAY,UAAO;AACrB,CAAC;AACM,IAAM,gCAAkC,UAAO;AAAA,EACpD,OAAS,OAAI,EAAE,SAAS;AAAA,EACxB,QAAU,OAAI,EAAE,SAAS;AAC3B,CAAC;AACM,IAAM,gCAAkC,UAAO;AAAA,EACpD,MAAM,kBAAkB,MAAM;AAAA,EAC9B,MAAQ,UAAO;AAAA,IACb,SAAW,UAAO;AAAA,IAClB,YAAc,UAAO;AAAA,MACnB,OAAS,UAAO;AAAA,MAChB,QAAU,UAAO;AAAA,MACjB,YAAc,UAAO;AAAA,IACvB,CAAC;AAAA,EACH,CAAC;AACH,CAAC;;;ACrBD,IAAAC,KAAmB;AACZ,IAAM,yBAA2B,UAAO;AAAA,EAC7C,aAAe;AAAA,IACX,UAAO;AAAA,MACP,cAAgB,WAAQ;AAAA,MACxB,WAAa,OAAI;AAAA,IACnB,CAAC;AAAA,EACH;AAAA,EACA,cAAgB,OAAI,EAAE,UAAU,MAAM;AACxC,CAAC;AAEM,IAAM,iCAAmC,UAAO;AAAA,EACrD,MAAQ,OAAI;AAAA,EACZ,MAAQ,UAAO;AAAA,IACb,SAAW,UAAO;AAAA,EACpB,CAAC;AACH,CAAC;;;AChBD,IAAAC,KAAmB;AACZ,IAAM,0BAA4B,UAAO;AAAA,EAC9C,oBAAsB,WAAQ;AAAA,EAC9B,WAAa,OAAI;AAAA,EACjB,eAAiB,OAAI;AAAA,EACrB,OAAS,SAAM;AAAA,EACf,WAAa,UAAO;AAAA,EACpB,UAAY,UAAO;AAAA,EACnB,aAAe,UAAO;AACxB,CAAC;AAEM,IAAM,kCAAoC,UAAO;AAAA,EACtD,MAAQ,UAAO;AAAA,EACf,MAAQ,UAAO;AAAA,IACb,MAAQ,UAAO;AAAA,IACf,QAAU,OAAI;AAAA,EAChB,CAAC;AAAA,EACD,MAAQ,UAAO;AAAA,IACb,SAAW,UAAO;AAAA,EACpB,CAAC;AACH,CAAC;;;AddD,IAAM,iCAAiC,CACrC,SACA,gBAEA,sBAAO,IAAI,aAAa;AACtB,QAAM,UAAU,OAAO;AACvB,SAAO,OAAO,sBAAO;AAAA,IACnB,QAAQ,MAAM;AAAA,MACZ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM,gBAAgB,OAAO;AAAA,MAC7B,SAAS;AAAA,MACT,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,CAAC;AAAA,IACD,SAAS,MAAM;AAAA,EACjB;AACF,CAAC;AAEI,IAAM,4BAA4B,CAAC,UACxC,sBAAO,IAAI,aAAa;AACtB,QAAM,iBAAiB,OAAO,cAAc,wBAAwB,KAAK;AACzE,SAAO,OAAO,sBAAO,aAAa,eAAe,WAAW,EAAE;AAAA,IAC5D,sBAAO,QAAQ,SAAS,UAAU,sBAAsB,eAAe;AAAA,IACvE,sBAAO;AAAA,MACL,CAAC,UACC,+BAA+B,eAAe,cAAc,qBAAM,QAAQ,KAAK,CAAC;AAAA,MAClF,EAAE,aAAa,SAAS,UAAU,sBAAsB,YAAY;AAAA,IACtE;AAAA,IACA,sBAAO;AAAA,IACP,sBAAO,IAAI,qBAAM,OAAO;AAAA,EAC1B;AACF,CAAC;;;AetCH,IAAAC,iBAAuB;AAMhB,IAAM,gBAAgB,CAAC,SAC5B,sBAAO,IAAI,aAAa;AACtB,QAAM,UAAU,OAAO;AACvB,QAAM,gBAAgB,OAAO,cAAc,qBAAqB,IAAI;AACpE,SAAO,OAAO,sBAAO;AAAA,IACnB,QAAQ,MAAM;AAAA,MACZ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,cAAc;AAAA,MACd,SAAS;AAAA,MACT,MAAM;AAAA,IACR,CAAC;AAAA,IACD,SAAS,MAAM;AAAA,EACjB;AACF,CAAC;;;ACrBH,IAAAC,kBAAuB;AAMhB,IAAM,oBAAoB,CAAC,SAChC,uBAAO,IAAI,aAAa;AACtB,QAAM,gBAAgB,OAAO,cAAc,yBAAyB,IAAI;AACxE,QAAM,UAAU,OAAO;AAEvB,SAAO,OAAO,uBAAO;AAAA,IACnB,QAAQ,MAAM;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,cAAc;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,IACD,SAAS,MAAM;AAAA,EACjB;AACF,CAAC;;;ACtBH,IAAAC,kBAAuB;AAMhB,IAAM,mBAAmB,CAAC,UAC/B,uBAAO,IAAI,aAAa;AACtB,QAAM,EAAE,WAAW,KAAK,IAAI,OAAO,cAAc,wBAAwB,KAAK;AAC9E,QAAM,UAAU,OAAO;AAEvB,SAAO,OAAO,uBAAO;AAAA,IACnB,QAAQ,MAAM;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM,aAAa,SAAS;AAAA,MAC5B,cAAc;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,IACD,SAAS,MAAM;AAAA,EACjB;AACF,CAAC;;;ACtBH,IAAAC,kBAAuB;AACvB,8BAA0B;AASnB,IAAM,yBAAyB,CACpC,aAEA,uBAAO,IAAI,aAAa;AACtB,QAAM,oBAAoB,OAAO,cAAc,qCAAqC,QAAQ;AAC5F,QAAM,UAAU,OAAO;AAEvB,SAAO,OAAO,uBAAO;AAAA,IACnB,QAAQ,MAAM;AAAA,MACZ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,WAAO,mCAAU,iBAAiB;AAAA,MAClC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,IACD,SAAS,MAAM;AAAA,EACjB;AACF,CAAC;AAEI,IAAM,6BAA6B,CACxC,aAEA,uBAAO,IAAI,aAAa;AACtB,MAAI,SAAS;AACb,QAAM,QAAQ,SAAS,UAAU,YAAY;AAC7C,MAAI,UAAU;AACd,QAAM,OAAoE,CAAC;AAC3E,SAAO,SAAS;AACd,UAAM,WAAW,OAAO,uBAAuB;AAAA,MAC7C,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,SAAS,KAAK,QAAQ;AACxB,gBAAU;AACV,WAAK,KAAK,GAAG,SAAS,IAAI;AAAA,IAC5B,OAAO;AACL,gBAAU;AAAA,IACZ;AAAA,EACF;AAEA,SAAO;AACT,CAAC;;;ACrDH,IAAAC,kBAAuB;AACvB,IAAAC,2BAA0B;AAMnB,IAAM,mBAAmB,CAAC,aAC/B,uBAAO,IAAI,aAAa;AACtB,QAAM,oBAAoB,OAAO,cAAc,+BAA+B,QAAQ;AACtF,QAAM,UAAU,OAAO;AAEvB,SAAO,OAAO,uBAAO;AAAA,IACnB,QAAQ,MAAM;AAAA,MACZ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,WAAO,oCAAU,iBAAiB;AAAA,MAClC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,IACD,SAAS,MAAM;AAAA,EACjB;AACF,CAAC;AAEI,IAAM,uBAAuB,CAClC,aAEA,uBAAO,IAAI,aAAa;AACtB,MAAI,UAAU;AACd,QAAM,OAA+D,CAAC;AACtE,MAAI,SAAS;AACb,QAAM,QAAQ,SAAS,UAAU,MAAM;AACvC,SAAO,SAAS;AACd,UAAM,WAAW,OAAO,iBAAiB;AAAA,MACvC,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,SAAS,KAAK,QAAQ;AACxB,gBAAU;AACV,WAAK,KAAK,GAAG,SAAS,IAAI;AAAA,IAC5B,OAAO;AACL,gBAAU;AAAA,IACZ;AAAA,EACF;AACA,SAAO;AACT,CAAC;;;AC/CH,IAAAC,kBAAuB;AAShB,IAAM,2BAA2B,CAAC,UACvC,uBAAO,IAAI,aAAa;AACtB,QAAM,EAAE,WAAW,KAAK,IAAI,OAAO,cAAc,gCAAgC,KAAK;AACtF,QAAM,UAAU,OAAO;AAEvB,SAAO,OAAO,uBAAO;AAAA,IACnB,QAAQ,MAAM;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM,aAAa,SAAS;AAAA,MAC5B,cAAc;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,IACD,SAAS,MAAM;AAAA,EACjB;AACF,CAAC;","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","z","z","z","z","z","z","import_effect","import_effect","import_effect","import_effect","import_effect","import_node_querystring","import_effect"]}
1
+ {"version":3,"sources":["../src/bigcommerce-entities/companies/index.ts","../src/bigcommerce-entities/companies/assign-sales-staff.ts","../src/constants.ts","../src/core/bigcommerce.error.ts","../src/core/bigcommerce.fetcher.ts","../src/core/bigcommerce.fetcher.live.ts","../src/core/config.ts","../src/validation/index.ts","../src/validation/validation.error.ts","../src/bigcommerce-entities/companies/schemas/company.schema.ts","../src/bigcommerce-entities/companies/schemas/credit.schemas.ts","../src/bigcommerce-entities/companies/schemas/extra-fields.schema.ts","../src/bigcommerce-entities/companies/schemas/payment-methods.schema.ts","../src/bigcommerce-entities/companies/schemas/roles.ts","../src/bigcommerce-entities/companies/schemas/sales-staff.schema.ts","../src/bigcommerce-entities/companies/schemas/user.schema.ts","../src/bigcommerce-entities/companies/create-company.ts","../src/bigcommerce-entities/companies/create-company-user.ts","../src/bigcommerce-entities/companies/credit.ts","../src/bigcommerce-entities/companies/get-company-fields.ts","../src/bigcommerce-entities/companies/get-company-roles.ts","../src/bigcommerce-entities/companies/set-payment-methods.ts"],"sourcesContent":["export * from './assign-sales-staff';\nexport * from './create-company';\nexport * from './create-company-user';\nexport * from './credit';\nexport * from './get-company-fields';\nexport * from './get-company-roles';\nexport * from './schemas';\nexport * from './set-payment-methods';\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 { AssignSalesStaffResponseSchema, AssignSalesStaffSchema } from './schemas';\nconst assignSalesStaffToCompanyBatch = (\n staffId: string,\n assignments: z.input<typeof AssignSalesStaffSchema>['assignments'],\n) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'PUT',\n path: `sales-staffs/${staffId}`,\n version: 'v3',\n body: assignments,\n resultSchema: AssignSalesStaffResponseSchema,\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const assignSalesStaffToCompany = (input: z.input<typeof AssignSalesStaffSchema>) =>\n Effect.gen(function* () {\n const validatedInput = yield* validateInput(AssignSalesStaffSchema, input);\n return yield* Stream.fromIterable(validatedInput.assignments).pipe(\n Stream.grouped(DEFAULTS.companies.salesStaffAssignments.assignBatchSize),\n Stream.mapEffect(\n (chunk) =>\n assignSalesStaffToCompanyBatch(validatedInput.salesStaffId, Chunk.toArray(chunk)),\n { concurrency: DEFAULTS.companies.salesStaffAssignments.concurrency },\n ),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\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 { 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';\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.ZodType>(\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 { 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","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { InputValidationError } from './validation.error';\nexport const validateInput = <Schema extends z.ZodType>(schema: Schema, data: z.input<Schema>) => {\n return Effect.try({\n try: () => schema.parse(data),\n catch: (error) => new InputValidationError({ input: data, error: error as z.ZodError }),\n });\n};\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class InputValidationError extends Data.TaggedError('InputValidationError')<{\n input: unknown;\n error: z.ZodError;\n}> {}\n","import * as z from 'zod';\nexport const CreateCompanySchema = z.object({\n companyName: z.string(),\n companyPhone: z.string(),\n companyEmail: z.string(),\n addressLine1: z.string(),\n addressLine2: z.string(),\n city: z.string(),\n state: z.string(),\n country: z.string(),\n zipCode: z.string(),\n adminFirstName: z.string(),\n adminLastName: z.string(),\n adminEmail: z.string(),\n adminPhoneNumber: z.string(),\n acceptCreationEmail: z.boolean(),\n uuid: z.string(),\n channelIds: z.array(z.int()),\n originChannelId: z.int(),\n customerGroupId: z.int(),\n extraFields: z.array(\n z.object({\n fieldName: z.string(),\n fieldValue: z.string(),\n }),\n ),\n});\n\nexport const CreateCompanyResponseSchema = z.object({\n data: z.object({\n companyId: z.int(),\n }),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import * as z from 'zod';\nexport const SetCompanyCreditSchema = z.object({\n data: z.object({\n creditEnabled: z.boolean(),\n creditCurrency: z.enum(['MXN']),\n availableCredit: z.number(),\n limitPurchases: z.boolean(),\n creditHold: z.boolean(),\n }),\n companyId: z.int(),\n});\n\nexport const SetCompanyCreditResponseSchema = z.object({});\n","import * as z from 'zod';\nimport { DEFAULTS } from '../../../constants';\nexport const GetCompanyExtraFieldsCriteriaSchema = z.object({\n limit: z.int().max(DEFAULTS.companies.extraFields.getBatchSize).optional(),\n offset: z.int().optional(),\n});\nexport const CompanyExtraFieldSchema = z.object({\n fieldName: z.string(),\n labelName: z.string(),\n listOfValue: z.string().array().optional(),\n maximumLength: z.coerce.number().optional(),\n});\nexport const GetCompanyExtraFieldsResponseSchema = z.object({\n data: CompanyExtraFieldSchema.array(),\n meta: z.object({\n message: z.string(),\n pagination: z.object({\n totalCount: z.number(),\n offset: z.number(),\n limit: z.number(),\n }),\n }),\n});\n","import * as z from 'zod';\nexport const SetCompanyPaymentMethodsSchema = z.object({\n data: z.object({\n payments: z\n .object({\n code: z.string(),\n isEnabled: z.boolean(),\n })\n .array(),\n }),\n companyId: z.int(),\n});\n\nexport const SetCompanyPaymentMethodsResponseSchema = z.object({});\n","import * as z from 'zod';\nexport const CompanyRoleSchema = z.object({\n id: z.int(),\n name: z.string(),\n roleLevel: z.number(),\n roleType: z.number(),\n});\nexport const GetCompanyRolesCriteriaSchema = z.object({\n limit: z.int().optional(),\n offset: z.int().optional(),\n});\nexport const GetCompanyRolesResponseSchema = z.object({\n data: CompanyRoleSchema.array(),\n meta: z.object({\n message: z.string(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n totalCount: z.number(),\n }),\n }),\n});\nexport type GetCompanyRolesResponse = z.output<typeof GetCompanyRolesResponseSchema>;\n","import * as z from 'zod';\nexport const AssignSalesStaffSchema = z.object({\n assignments: z.array(\n z.object({\n assignStatus: z.boolean(),\n companyId: z.int(),\n }),\n ),\n salesStaffId: z.int().transform(String),\n});\n\nexport const AssignSalesStaffResponseSchema = z.object({\n code: z.int(),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import * as z from 'zod';\nexport const CreateCompanyUserSchema = z.object({\n acceptWelcomeEmail: z.boolean(),\n companyId: z.int(),\n companyRoleId: z.int(),\n email: z.email(),\n firstName: z.string(),\n lastName: z.string(),\n phoneNumber: z.string(),\n});\n\nexport const CreateCompanyUserResponseSchema = z.object({\n code: z.number(),\n data: z.object({\n bcId: z.number(),\n userId: z.int(),\n }),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { CreateCompanyResponseSchema, CreateCompanySchema } from './schemas/company.schema';\nexport const createCompany = (data: z.input<typeof CreateCompanySchema>) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedData = yield* validateInput(CreateCompanySchema, data);\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'POST',\n path: 'companies',\n resultSchema: CreateCompanyResponseSchema,\n version: 'v3',\n body: validatedData,\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { CreateCompanyUserResponseSchema, CreateCompanyUserSchema } from './schemas/user.schema';\nexport const createCompanyUser = (data: z.input<typeof CreateCompanyUserSchema>) =>\n Effect.gen(function* () {\n const validatedData = yield* validateInput(CreateCompanyUserSchema, data);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: validatedData,\n isB2B: true,\n method: 'POST',\n path: 'users',\n resultSchema: CreateCompanyUserResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { SetCompanyCreditResponseSchema, SetCompanyCreditSchema } from './schemas/credit.schemas';\nexport const setCompanyCredit = (input: z.infer<typeof SetCompanyCreditSchema>) =>\n Effect.gen(function* () {\n const { companyId, data } = yield* validateInput(SetCompanyCreditSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: true,\n method: 'PUT',\n path: `companies/${companyId}/credit`,\n resultSchema: SetCompanyCreditResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n GetCompanyExtraFieldsCriteriaSchema,\n GetCompanyExtraFieldsResponseSchema,\n} from './schemas/extra-fields.schema';\nexport const findCompanyExtraFields = (\n criteria: z.input<typeof GetCompanyExtraFieldsCriteriaSchema>,\n) =>\n Effect.gen(function* () {\n const validatedCriteria = yield* validateInput(GetCompanyExtraFieldsCriteriaSchema, criteria);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify(validatedCriteria),\n path: 'companies/extra-fields',\n resultSchema: GetCompanyExtraFieldsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const getAllCompanyExtraFieldsBy = (\n criteria?: Omit<z.input<typeof GetCompanyExtraFieldsCriteriaSchema>, 'limit' | 'offset'>,\n) =>\n Effect.gen(function* () {\n let offset = 0;\n const limit = DEFAULTS.companies.extraFields.getBatchSize;\n let hasMore = true;\n const data: z.infer<typeof GetCompanyExtraFieldsResponseSchema>['data'] = [];\n while (hasMore) {\n const response = yield* findCompanyExtraFields({\n ...criteria,\n limit,\n offset,\n });\n if (response.data.length) {\n offset += limit;\n data.push(...response.data);\n } else {\n hasMore = false;\n }\n }\n\n return data;\n });\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n GetCompanyRolesCriteriaSchema,\n GetCompanyRolesResponseSchema,\n type GetCompanyRolesResponse,\n} from './schemas/roles';\nexport const findCompanyRoles = (criteria: z.infer<typeof GetCompanyRolesCriteriaSchema>) =>\n Effect.gen(function* () {\n const validatedCriteria = yield* validateInput(GetCompanyRolesCriteriaSchema, criteria);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify(validatedCriteria),\n path: 'companies/roles',\n resultSchema: GetCompanyRolesResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const getAllCompanyRolesBy = (\n criteria?: Omit<z.infer<typeof GetCompanyRolesCriteriaSchema>, 'limit' | 'offset'>,\n) =>\n Effect.gen(function* () {\n let hasMore = true;\n const data: GetCompanyRolesResponse['data'] = [];\n let offset = 0;\n const limit = DEFAULTS.companies.roles.getBatchSize;\n while (hasMore) {\n const response = yield* findCompanyRoles({\n ...criteria,\n limit,\n offset,\n });\n if (response.data.length) {\n offset += limit;\n data.push(...response.data);\n } else {\n hasMore = false;\n }\n }\n return data;\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetCompanyPaymentMethodsResponseSchema,\n SetCompanyPaymentMethodsSchema,\n} from './schemas/payment-methods.schema';\nexport const setCompanyPaymentMethods = (input: z.infer<typeof SetCompanyPaymentMethodsSchema>) =>\n Effect.gen(function* () {\n const { companyId, data } = yield* validateInput(SetCompanyPaymentMethodsSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: true,\n method: 'PUT',\n path: `companies/${companyId}/payments`,\n resultSchema: SetCompanyPaymentMethodsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n"],"mappings":"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","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","z","z","z","z","z","z","import_effect","import_effect","import_effect","import_effect","import_effect","import_node_querystring","import_effect"]}
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  BigCommerceFetcher,
6
6
  DEFAULTS
7
- } from "./chunk-2VMEIQCL.mjs";
7
+ } from "./chunk-PAXNZ36X.mjs";
8
8
 
9
9
  // src/bigcommerce-entities/companies/assign-sales-staff.ts
10
10
  import { Chunk, Effect, Stream } from "effect";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bigcommerce-entities/companies/assign-sales-staff.ts","../src/bigcommerce-entities/companies/schemas/company.schema.ts","../src/bigcommerce-entities/companies/schemas/credit.schemas.ts","../src/bigcommerce-entities/companies/schemas/extra-fields.schema.ts","../src/bigcommerce-entities/companies/schemas/payment-methods.schema.ts","../src/bigcommerce-entities/companies/schemas/roles.ts","../src/bigcommerce-entities/companies/schemas/sales-staff.schema.ts","../src/bigcommerce-entities/companies/schemas/user.schema.ts","../src/bigcommerce-entities/companies/create-company.ts","../src/bigcommerce-entities/companies/create-company-user.ts","../src/bigcommerce-entities/companies/credit.ts","../src/bigcommerce-entities/companies/get-company-fields.ts","../src/bigcommerce-entities/companies/get-company-roles.ts","../src/bigcommerce-entities/companies/set-payment-methods.ts"],"sourcesContent":["import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { AssignSalesStaffResponseSchema, AssignSalesStaffSchema } from './schemas';\nconst assignSalesStaffToCompanyBatch = (\n staffId: string,\n assignments: z.input<typeof AssignSalesStaffSchema>['assignments'],\n) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'PUT',\n path: `sales-staffs/${staffId}`,\n version: 'v3',\n body: assignments,\n resultSchema: AssignSalesStaffResponseSchema,\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const assignSalesStaffToCompany = (input: z.input<typeof AssignSalesStaffSchema>) =>\n Effect.gen(function* () {\n const validatedInput = yield* validateInput(AssignSalesStaffSchema, input);\n return yield* Stream.fromIterable(validatedInput.assignments).pipe(\n Stream.grouped(DEFAULTS.companies.salesStaffAssignments.assignBatchSize),\n Stream.mapEffect(\n (chunk) =>\n assignSalesStaffToCompanyBatch(validatedInput.salesStaffId, Chunk.toArray(chunk)),\n { concurrency: DEFAULTS.companies.salesStaffAssignments.concurrency },\n ),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n });\n","import * as z from 'zod';\nexport const CreateCompanySchema = z.object({\n companyName: z.string(),\n companyPhone: z.string(),\n companyEmail: z.string(),\n addressLine1: z.string(),\n addressLine2: z.string(),\n city: z.string(),\n state: z.string(),\n country: z.string(),\n zipCode: z.string(),\n adminFirstName: z.string(),\n adminLastName: z.string(),\n adminEmail: z.string(),\n adminPhoneNumber: z.string(),\n acceptCreationEmail: z.boolean(),\n uuid: z.string(),\n channelIds: z.array(z.int()),\n originChannelId: z.int(),\n customerGroupId: z.int(),\n extraFields: z.array(\n z.object({\n fieldName: z.string(),\n fieldValue: z.string(),\n }),\n ),\n});\n\nexport const CreateCompanyResponseSchema = z.object({\n data: z.object({\n companyId: z.int(),\n }),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import * as z from 'zod';\nexport const SetCompanyCreditSchema = z.object({\n data: z.object({\n creditEnabled: z.boolean(),\n creditCurrency: z.enum(['MXN']),\n availableCredit: z.number(),\n limitPurchases: z.boolean(),\n creditHold: z.boolean(),\n }),\n companyId: z.int(),\n});\n\nexport const SetCompanyCreditResponseSchema = z.object({});\n","import * as z from 'zod';\nimport { DEFAULTS } from '../../../constants';\nexport const GetCompanyExtraFieldsCriteriaSchema = z.object({\n limit: z.int().max(DEFAULTS.companies.extraFields.getBatchSize).optional(),\n offset: z.int().optional(),\n});\nexport const CompanyExtraFieldSchema = z.object({\n fieldName: z.string(),\n labelName: z.string(),\n listOfValue: z.string().array().optional(),\n maximumLength: z.coerce.number().optional(),\n});\nexport const GetCompanyExtraFieldsResponseSchema = z.object({\n data: CompanyExtraFieldSchema.array(),\n meta: z.object({\n message: z.string(),\n pagination: z.object({\n totalCount: z.number(),\n offset: z.number(),\n limit: z.number(),\n }),\n }),\n});\n","import * as z from 'zod';\nexport const SetCompanyPaymentMethodsSchema = z.object({\n data: z.object({\n payments: z\n .object({\n code: z.string(),\n isEnabled: z.boolean(),\n })\n .array(),\n }),\n companyId: z.int(),\n});\n\nexport const SetCompanyPaymentMethodsResponseSchema = z.object({});\n","import * as z from 'zod';\nexport const CompanyRoleSchema = z.object({\n id: z.int(),\n name: z.string(),\n roleLevel: z.number(),\n roleType: z.number(),\n});\nexport const GetCompanyRolesCriteriaSchema = z.object({\n limit: z.int().optional(),\n offset: z.int().optional(),\n});\nexport const GetCompanyRolesResponseSchema = z.object({\n data: CompanyRoleSchema.array(),\n meta: z.object({\n message: z.string(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n totalCount: z.number(),\n }),\n }),\n});\n","import * as z from 'zod';\nexport const AssignSalesStaffSchema = z.object({\n assignments: z.array(\n z.object({\n assignStatus: z.boolean(),\n companyId: z.int(),\n }),\n ),\n salesStaffId: z.int().transform(String),\n});\n\nexport const AssignSalesStaffResponseSchema = z.object({\n code: z.int(),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import * as z from 'zod';\nexport const CreateCompanyUserSchema = z.object({\n acceptWelcomeEmail: z.boolean(),\n companyId: z.int(),\n companyRoleId: z.int(),\n email: z.email(),\n firstName: z.string(),\n lastName: z.string(),\n phoneNumber: z.string(),\n});\n\nexport const CreateCompanyUserResponseSchema = z.object({\n code: z.number(),\n data: z.object({\n bcId: z.number(),\n userId: z.int(),\n }),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { CreateCompanyResponseSchema, CreateCompanySchema } from './schemas/company.schema';\nexport const createCompany = (data: z.input<typeof CreateCompanySchema>) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedData = yield* validateInput(CreateCompanySchema, data);\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'POST',\n path: 'companies',\n resultSchema: CreateCompanyResponseSchema,\n version: 'v3',\n body: validatedData,\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { CreateCompanyUserResponseSchema, CreateCompanyUserSchema } from './schemas/user.schema';\nexport const createCompanyUser = (data: z.input<typeof CreateCompanyUserSchema>) =>\n Effect.gen(function* () {\n const validatedData = yield* validateInput(CreateCompanyUserSchema, data);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: validatedData,\n isB2B: true,\n method: 'POST',\n path: 'users',\n resultSchema: CreateCompanyUserResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { SetCompanyCreditResponseSchema, SetCompanyCreditSchema } from './schemas/credit.schemas';\nexport const setCompanyCredit = (input: z.infer<typeof SetCompanyCreditSchema>) =>\n Effect.gen(function* () {\n const { companyId, data } = yield* validateInput(SetCompanyCreditSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: true,\n method: 'PUT',\n path: `companies/${companyId}/credit`,\n resultSchema: SetCompanyCreditResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n GetCompanyExtraFieldsCriteriaSchema,\n GetCompanyExtraFieldsResponseSchema,\n} from './schemas/extra-fields.schema';\nexport const findCompanyExtraFields = (\n criteria: z.input<typeof GetCompanyExtraFieldsCriteriaSchema>,\n) =>\n Effect.gen(function* () {\n const validatedCriteria = yield* validateInput(GetCompanyExtraFieldsCriteriaSchema, criteria);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify(validatedCriteria),\n path: 'companies/extra-fields',\n resultSchema: GetCompanyExtraFieldsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const getAllCompanyExtraFieldsBy = (\n criteria?: Omit<z.input<typeof GetCompanyExtraFieldsCriteriaSchema>, 'limit' | 'offset'>,\n) =>\n Effect.gen(function* () {\n let offset = 0;\n const limit = DEFAULTS.companies.extraFields.getBatchSize;\n let hasMore = true;\n const data: z.infer<typeof GetCompanyExtraFieldsResponseSchema>['data'] = [];\n while (hasMore) {\n const response = yield* findCompanyExtraFields({\n ...criteria,\n limit,\n offset,\n });\n if (response.data.length) {\n offset += limit;\n data.push(...response.data);\n } else {\n hasMore = false;\n }\n }\n\n return data;\n });\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { GetCompanyRolesCriteriaSchema, GetCompanyRolesResponseSchema } from './schemas/roles';\nexport const findCompanyRoles = (criteria: z.infer<typeof GetCompanyRolesCriteriaSchema>) =>\n Effect.gen(function* () {\n const validatedCriteria = yield* validateInput(GetCompanyRolesCriteriaSchema, criteria);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify(validatedCriteria),\n path: 'companies/roles',\n resultSchema: GetCompanyRolesResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const getAllCompanyRolesBy = (\n criteria?: Omit<z.infer<typeof GetCompanyRolesCriteriaSchema>, 'limit' | 'offset'>,\n) =>\n Effect.gen(function* () {\n let hasMore = true;\n const data: z.output<typeof GetCompanyRolesResponseSchema>['data'] = [];\n let offset = 0;\n const limit = DEFAULTS.companies.roles.getBatchSize;\n while (hasMore) {\n const response = yield* findCompanyRoles({\n ...criteria,\n limit,\n offset,\n });\n if (response.data.length) {\n offset += limit;\n data.push(...response.data);\n } else {\n hasMore = false;\n }\n }\n return data;\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetCompanyPaymentMethodsResponseSchema,\n SetCompanyPaymentMethodsSchema,\n} from './schemas/payment-methods.schema';\nexport const setCompanyPaymentMethods = (input: z.infer<typeof SetCompanyPaymentMethodsSchema>) =>\n Effect.gen(function* () {\n const { companyId, data } = yield* validateInput(SetCompanyPaymentMethodsSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: true,\n method: 'PUT',\n path: `companies/${companyId}/payments`,\n resultSchema: SetCompanyPaymentMethodsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n"],"mappings":"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","names":["z","z","z","z","z","z","Effect","Effect","Effect","Effect","Effect","Effect","Effect","Effect","Effect","stringify","Effect","stringify","Effect","Effect"]}
1
+ {"version":3,"sources":["../src/bigcommerce-entities/companies/assign-sales-staff.ts","../src/bigcommerce-entities/companies/schemas/company.schema.ts","../src/bigcommerce-entities/companies/schemas/credit.schemas.ts","../src/bigcommerce-entities/companies/schemas/extra-fields.schema.ts","../src/bigcommerce-entities/companies/schemas/payment-methods.schema.ts","../src/bigcommerce-entities/companies/schemas/roles.ts","../src/bigcommerce-entities/companies/schemas/sales-staff.schema.ts","../src/bigcommerce-entities/companies/schemas/user.schema.ts","../src/bigcommerce-entities/companies/create-company.ts","../src/bigcommerce-entities/companies/create-company-user.ts","../src/bigcommerce-entities/companies/credit.ts","../src/bigcommerce-entities/companies/get-company-fields.ts","../src/bigcommerce-entities/companies/get-company-roles.ts","../src/bigcommerce-entities/companies/set-payment-methods.ts"],"sourcesContent":["import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { AssignSalesStaffResponseSchema, AssignSalesStaffSchema } from './schemas';\nconst assignSalesStaffToCompanyBatch = (\n staffId: string,\n assignments: z.input<typeof AssignSalesStaffSchema>['assignments'],\n) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'PUT',\n path: `sales-staffs/${staffId}`,\n version: 'v3',\n body: assignments,\n resultSchema: AssignSalesStaffResponseSchema,\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const assignSalesStaffToCompany = (input: z.input<typeof AssignSalesStaffSchema>) =>\n Effect.gen(function* () {\n const validatedInput = yield* validateInput(AssignSalesStaffSchema, input);\n return yield* Stream.fromIterable(validatedInput.assignments).pipe(\n Stream.grouped(DEFAULTS.companies.salesStaffAssignments.assignBatchSize),\n Stream.mapEffect(\n (chunk) =>\n assignSalesStaffToCompanyBatch(validatedInput.salesStaffId, Chunk.toArray(chunk)),\n { concurrency: DEFAULTS.companies.salesStaffAssignments.concurrency },\n ),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n });\n","import * as z from 'zod';\nexport const CreateCompanySchema = z.object({\n companyName: z.string(),\n companyPhone: z.string(),\n companyEmail: z.string(),\n addressLine1: z.string(),\n addressLine2: z.string(),\n city: z.string(),\n state: z.string(),\n country: z.string(),\n zipCode: z.string(),\n adminFirstName: z.string(),\n adminLastName: z.string(),\n adminEmail: z.string(),\n adminPhoneNumber: z.string(),\n acceptCreationEmail: z.boolean(),\n uuid: z.string(),\n channelIds: z.array(z.int()),\n originChannelId: z.int(),\n customerGroupId: z.int(),\n extraFields: z.array(\n z.object({\n fieldName: z.string(),\n fieldValue: z.string(),\n }),\n ),\n});\n\nexport const CreateCompanyResponseSchema = z.object({\n data: z.object({\n companyId: z.int(),\n }),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import * as z from 'zod';\nexport const SetCompanyCreditSchema = z.object({\n data: z.object({\n creditEnabled: z.boolean(),\n creditCurrency: z.enum(['MXN']),\n availableCredit: z.number(),\n limitPurchases: z.boolean(),\n creditHold: z.boolean(),\n }),\n companyId: z.int(),\n});\n\nexport const SetCompanyCreditResponseSchema = z.object({});\n","import * as z from 'zod';\nimport { DEFAULTS } from '../../../constants';\nexport const GetCompanyExtraFieldsCriteriaSchema = z.object({\n limit: z.int().max(DEFAULTS.companies.extraFields.getBatchSize).optional(),\n offset: z.int().optional(),\n});\nexport const CompanyExtraFieldSchema = z.object({\n fieldName: z.string(),\n labelName: z.string(),\n listOfValue: z.string().array().optional(),\n maximumLength: z.coerce.number().optional(),\n});\nexport const GetCompanyExtraFieldsResponseSchema = z.object({\n data: CompanyExtraFieldSchema.array(),\n meta: z.object({\n message: z.string(),\n pagination: z.object({\n totalCount: z.number(),\n offset: z.number(),\n limit: z.number(),\n }),\n }),\n});\n","import * as z from 'zod';\nexport const SetCompanyPaymentMethodsSchema = z.object({\n data: z.object({\n payments: z\n .object({\n code: z.string(),\n isEnabled: z.boolean(),\n })\n .array(),\n }),\n companyId: z.int(),\n});\n\nexport const SetCompanyPaymentMethodsResponseSchema = z.object({});\n","import * as z from 'zod';\nexport const CompanyRoleSchema = z.object({\n id: z.int(),\n name: z.string(),\n roleLevel: z.number(),\n roleType: z.number(),\n});\nexport const GetCompanyRolesCriteriaSchema = z.object({\n limit: z.int().optional(),\n offset: z.int().optional(),\n});\nexport const GetCompanyRolesResponseSchema = z.object({\n data: CompanyRoleSchema.array(),\n meta: z.object({\n message: z.string(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n totalCount: z.number(),\n }),\n }),\n});\nexport type GetCompanyRolesResponse = z.output<typeof GetCompanyRolesResponseSchema>;\n","import * as z from 'zod';\nexport const AssignSalesStaffSchema = z.object({\n assignments: z.array(\n z.object({\n assignStatus: z.boolean(),\n companyId: z.int(),\n }),\n ),\n salesStaffId: z.int().transform(String),\n});\n\nexport const AssignSalesStaffResponseSchema = z.object({\n code: z.int(),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import * as z from 'zod';\nexport const CreateCompanyUserSchema = z.object({\n acceptWelcomeEmail: z.boolean(),\n companyId: z.int(),\n companyRoleId: z.int(),\n email: z.email(),\n firstName: z.string(),\n lastName: z.string(),\n phoneNumber: z.string(),\n});\n\nexport const CreateCompanyUserResponseSchema = z.object({\n code: z.number(),\n data: z.object({\n bcId: z.number(),\n userId: z.int(),\n }),\n meta: z.object({\n message: z.string(),\n }),\n});\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { CreateCompanyResponseSchema, CreateCompanySchema } from './schemas/company.schema';\nexport const createCompany = (data: z.input<typeof CreateCompanySchema>) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedData = yield* validateInput(CreateCompanySchema, data);\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'POST',\n path: 'companies',\n resultSchema: CreateCompanyResponseSchema,\n version: 'v3',\n body: validatedData,\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { CreateCompanyUserResponseSchema, CreateCompanyUserSchema } from './schemas/user.schema';\nexport const createCompanyUser = (data: z.input<typeof CreateCompanyUserSchema>) =>\n Effect.gen(function* () {\n const validatedData = yield* validateInput(CreateCompanyUserSchema, data);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: validatedData,\n isB2B: true,\n method: 'POST',\n path: 'users',\n resultSchema: CreateCompanyUserResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { SetCompanyCreditResponseSchema, SetCompanyCreditSchema } from './schemas/credit.schemas';\nexport const setCompanyCredit = (input: z.infer<typeof SetCompanyCreditSchema>) =>\n Effect.gen(function* () {\n const { companyId, data } = yield* validateInput(SetCompanyCreditSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: true,\n method: 'PUT',\n path: `companies/${companyId}/credit`,\n resultSchema: SetCompanyCreditResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n GetCompanyExtraFieldsCriteriaSchema,\n GetCompanyExtraFieldsResponseSchema,\n} from './schemas/extra-fields.schema';\nexport const findCompanyExtraFields = (\n criteria: z.input<typeof GetCompanyExtraFieldsCriteriaSchema>,\n) =>\n Effect.gen(function* () {\n const validatedCriteria = yield* validateInput(GetCompanyExtraFieldsCriteriaSchema, criteria);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify(validatedCriteria),\n path: 'companies/extra-fields',\n resultSchema: GetCompanyExtraFieldsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const getAllCompanyExtraFieldsBy = (\n criteria?: Omit<z.input<typeof GetCompanyExtraFieldsCriteriaSchema>, 'limit' | 'offset'>,\n) =>\n Effect.gen(function* () {\n let offset = 0;\n const limit = DEFAULTS.companies.extraFields.getBatchSize;\n let hasMore = true;\n const data: z.infer<typeof GetCompanyExtraFieldsResponseSchema>['data'] = [];\n while (hasMore) {\n const response = yield* findCompanyExtraFields({\n ...criteria,\n limit,\n offset,\n });\n if (response.data.length) {\n offset += limit;\n data.push(...response.data);\n } else {\n hasMore = false;\n }\n }\n\n return data;\n });\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n GetCompanyRolesCriteriaSchema,\n GetCompanyRolesResponseSchema,\n type GetCompanyRolesResponse,\n} from './schemas/roles';\nexport const findCompanyRoles = (criteria: z.infer<typeof GetCompanyRolesCriteriaSchema>) =>\n Effect.gen(function* () {\n const validatedCriteria = yield* validateInput(GetCompanyRolesCriteriaSchema, criteria);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify(validatedCriteria),\n path: 'companies/roles',\n resultSchema: GetCompanyRolesResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n\nexport const getAllCompanyRolesBy = (\n criteria?: Omit<z.infer<typeof GetCompanyRolesCriteriaSchema>, 'limit' | 'offset'>,\n) =>\n Effect.gen(function* () {\n let hasMore = true;\n const data: GetCompanyRolesResponse['data'] = [];\n let offset = 0;\n const limit = DEFAULTS.companies.roles.getBatchSize;\n while (hasMore) {\n const response = yield* findCompanyRoles({\n ...criteria,\n limit,\n offset,\n });\n if (response.data.length) {\n offset += limit;\n data.push(...response.data);\n } else {\n hasMore = false;\n }\n }\n return data;\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetCompanyPaymentMethodsResponseSchema,\n SetCompanyPaymentMethodsSchema,\n} from './schemas/payment-methods.schema';\nexport const setCompanyPaymentMethods = (input: z.infer<typeof SetCompanyPaymentMethodsSchema>) =>\n Effect.gen(function* () {\n const { companyId, data } = yield* validateInput(SetCompanyPaymentMethodsSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: true,\n method: 'PUT',\n path: `companies/${companyId}/payments`,\n resultSchema: SetCompanyPaymentMethodsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n"],"mappings":"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","names":["z","z","z","z","z","z","Effect","Effect","Effect","Effect","Effect","Effect","Effect","Effect","Effect","stringify","Effect","stringify","Effect","Effect"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bigcommerce-entities/customers/index.ts","../src/bigcommerce-entities/customers/create-customer-group.ts","../src/constants.ts","../src/core/bigcommerce.error.ts","../src/core/bigcommerce.fetcher.ts","../src/core/bigcommerce.fetcher.live.ts","../src/core/config.ts","../src/validation/index.ts","../src/validation/validation.error.ts","../src/bigcommerce-entities/customers/schemas/customer-group.schema.ts","../src/bigcommerce-entities/customers/find-customers.ts","../src/bigcommerce-entities/customers/schemas/customer.schema.ts","../src/bigcommerce-entities/customers/schemas/find-customer.criteria.ts","../src/bigcommerce-entities/customers/get-all-customer-groups.ts","../src/bigcommerce-entities/customers/get-customer.ts","../src/bigcommerce-entities/customers/set-customer-group-price-list.ts"],"sourcesContent":["export * from './create-customer-group';\nexport * from './find-customers';\nexport * from './get-all-customer-groups';\nexport * from './get-customer';\nexport * from './schemas';\nexport * from './set-customer-group-price-list';\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n CreateCustomerGroupResponseSchema,\n CreateCustomerGroupSchema,\n} from './schemas/customer-group.schema';\nexport const createCustomerGroup = (data: z.input<typeof CreateCustomerGroupSchema>) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedBody = yield* validateInput(CreateCustomerGroupSchema, data);\n return yield* Effect.retry(\n fetcher.fetch({\n body: validatedBody,\n isB2B: false,\n method: 'POST',\n path: 'customer_groups',\n resultSchema: CreateCustomerGroupResponseSchema,\n version: 'v2',\n }),\n DEFAULTS.retry.policy,\n );\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 { 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 { 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","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { InputValidationError } from './validation.error';\nexport const validateInput = <Schema extends z.ZodType>(schema: Schema, data: z.input<Schema>) => {\n return Effect.try({\n try: () => schema.parse(data),\n catch: (error) => new InputValidationError({ input: data, error: error as z.ZodError }),\n });\n};\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class InputValidationError extends Data.TaggedError('InputValidationError')<{\n input: unknown;\n error: z.ZodError;\n}> {}\n","import * as z from 'zod';\nimport { DEFAULTS } from '../../../constants';\nexport const CreateCustomerGroupSchema = z.object({\n name: z.string(),\n discount_rules: z.array(\n z.object({\n type: z.literal('price_list'),\n price_list_id: z.int(),\n }),\n ),\n});\n\nexport const CreateCustomerGroupResponseSchema = z.object({\n id: z.int(),\n});\n\nexport const CustomerGroupSchema = z.object({\n id: z.int(),\n name: z.string(),\n is_default: z.boolean(),\n is_group_for_guests: z.boolean(),\n});\n\nexport const FindCustomerGroupsCriteriaSchema = z.object({\n limit: z.int().max(DEFAULTS.customers.getBatchSize).optional(),\n page: z.int().positive().optional(),\n});\n\nexport const SetCustomerGroupPriceListSchema = z.object({\n data: z.object({\n discount_rules: z\n .object({\n type: z.literal('price_list'),\n price_list_id: z.int(),\n })\n .array(),\n }),\n customerGroupId: z.int(),\n});\n\nexport const SetCustomerGroupPriceListResponseSchema = z.object({\n id: z.int(),\n name: z.string(),\n});\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { FindCustomerResponse, type CustomerSchema } from './schemas/customer.schema';\nimport { FindCustomersCriteriaSchema } from './schemas/find-customer.criteria';\nexport const findCustomers = (criteria?: z.input<typeof FindCustomersCriteriaSchema>) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedQuery = yield* validateInput(FindCustomersCriteriaSchema, criteria ?? {});\n return yield* fetcher.fetch({\n method: 'GET',\n path: `customers`,\n isB2B: false,\n version: 'v3',\n resultSchema: FindCustomerResponse,\n query: stringify(validatedQuery),\n });\n });\n};\n\nexport const getAllCustomersBy = (\n criteria: Omit<z.input<typeof FindCustomersCriteriaSchema>, 'page' | 'limit'>,\n) => {\n return Effect.gen(function* () {\n const allCustomers: z.infer<typeof CustomerSchema>[] = [];\n let page = 1;\n let hasMoreCustomers = true;\n\n while (hasMoreCustomers) {\n const customers = yield* findCustomers({\n ...criteria,\n page,\n limit: DEFAULTS.customers.getBatchSize,\n });\n\n if (customers.meta.pagination.links.next) {\n allCustomers.push(...customers.data);\n page++;\n } else {\n hasMoreCustomers = false;\n }\n }\n\n return allCustomers;\n });\n};\n","import * as z from 'zod';\n\nexport const CustomerSchema = z.object({\n email: z.email(),\n first_name: z.string(),\n last_name: z.string(),\n company: z.string().optional(),\n phone: z.string(),\n customer_group_id: z.int(),\n id: z.int(),\n channel_ids: z.array(z.int()),\n});\n\nexport const FindCustomerResponse = z.object({\n data: z.array(CustomerSchema),\n meta: z.object({\n pagination: z.object({\n total: z.int(),\n count: z.int(),\n per_page: z.int(),\n current_page: z.int(),\n total_pages: z.int(),\n links: z.object({\n previous: z.string().optional().nullable(),\n current: z.string(),\n next: z.string().optional().nullable(),\n }),\n }),\n }),\n});\n","import * as z from 'zod';\nexport const FindCustomersCriteriaSchema = z.object({\n 'id:in': z\n .array(z.int())\n .transform((ids) => ids.join(','))\n .optional(),\n page: z.int().optional(),\n limit: z.int().optional(),\n 'company:in': z\n .array(z.string())\n .transform((companies) => companies.join(','))\n .optional(),\n 'customer_group_id:in': z\n .array(z.int())\n .transform((ids) => ids.join(','))\n .optional(),\n});\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n CustomerGroupSchema,\n FindCustomerGroupsCriteriaSchema,\n} from './schemas/customer-group.schema';\nconst FindCustomerResponse = z.union([\n z.array(CustomerGroupSchema),\n z.literal(''),\n z.literal(null),\n]);\nexport const findCustomersGroups = (criteria?: z.input<typeof FindCustomerGroupsCriteriaSchema>) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedQuery = yield* validateInput(FindCustomerGroupsCriteriaSchema, criteria ?? {});\n const response = yield* fetcher.fetch({\n method: 'GET',\n path: `customers`,\n isB2B: false,\n version: 'v3',\n resultSchema: FindCustomerResponse,\n query: stringify(validatedQuery),\n });\n return response || [];\n });\n\nexport const getAllCustomerGroupsBy = (\n criteria?: Omit<z.input<typeof FindCustomerGroupsCriteriaSchema>, 'page' | 'limit'>,\n) =>\n Effect.gen(function* () {\n const all: z.infer<typeof CustomerGroupSchema>[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const groups = yield* findCustomersGroups({\n ...criteria,\n page,\n limit: DEFAULTS.customers.getBatchSize,\n });\n\n if (groups.length) {\n all.push(...groups);\n page++;\n } else {\n hasMore = false;\n }\n }\n\n return all;\n });\n","import { Effect } from 'effect';\nimport { findCustomers } from './find-customers';\n\nexport const getCustomer = (customerId: number) => {\n return findCustomers({\n 'id:in': [customerId],\n }).pipe(Effect.map((response) => response.data[0]));\n};\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetCustomerGroupPriceListResponseSchema,\n SetCustomerGroupPriceListSchema,\n} from './schemas/customer-group.schema';\nexport const setCustomerGroupPriceList = (input: z.input<typeof SetCustomerGroupPriceListSchema>) =>\n Effect.gen(function* () {\n const { customerGroupId, data } = yield* validateInput(SetCustomerGroupPriceListSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: false,\n method: 'PUT',\n path: `customer_groups/${customerGroupId}`,\n resultSchema: SetCustomerGroupPriceListResponseSchema,\n version: 'v2',\n }),\n DEFAULTS.retry.policy,\n );\n });\n"],"mappings":"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","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","import_effect","z","z","import_effect","import_node_querystring","z","FindCustomerResponse","import_effect","import_effect"]}
1
+ {"version":3,"sources":["../src/bigcommerce-entities/customers/index.ts","../src/bigcommerce-entities/customers/create-customer-group.ts","../src/constants.ts","../src/core/bigcommerce.error.ts","../src/core/bigcommerce.fetcher.ts","../src/core/bigcommerce.fetcher.live.ts","../src/core/config.ts","../src/validation/index.ts","../src/validation/validation.error.ts","../src/bigcommerce-entities/customers/schemas/customer-group.schema.ts","../src/bigcommerce-entities/customers/find-customers.ts","../src/bigcommerce-entities/customers/schemas/customer.schema.ts","../src/bigcommerce-entities/customers/schemas/find-customer.criteria.ts","../src/bigcommerce-entities/customers/get-all-customer-groups.ts","../src/bigcommerce-entities/customers/get-customer.ts","../src/bigcommerce-entities/customers/set-customer-group-price-list.ts"],"sourcesContent":["export * from './create-customer-group';\nexport * from './find-customers';\nexport * from './get-all-customer-groups';\nexport * from './get-customer';\nexport * from './schemas';\nexport * from './set-customer-group-price-list';\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n CreateCustomerGroupResponseSchema,\n CreateCustomerGroupSchema,\n} from './schemas/customer-group.schema';\nexport const createCustomerGroup = (data: z.input<typeof CreateCustomerGroupSchema>) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedBody = yield* validateInput(CreateCustomerGroupSchema, data);\n return yield* Effect.retry(\n fetcher.fetch({\n body: validatedBody,\n isB2B: false,\n method: 'POST',\n path: 'customer_groups',\n resultSchema: CreateCustomerGroupResponseSchema,\n version: 'v2',\n }),\n DEFAULTS.retry.policy,\n );\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 { 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';\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.ZodType>(\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 { 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","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { InputValidationError } from './validation.error';\nexport const validateInput = <Schema extends z.ZodType>(schema: Schema, data: z.input<Schema>) => {\n return Effect.try({\n try: () => schema.parse(data),\n catch: (error) => new InputValidationError({ input: data, error: error as z.ZodError }),\n });\n};\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class InputValidationError extends Data.TaggedError('InputValidationError')<{\n input: unknown;\n error: z.ZodError;\n}> {}\n","import * as z from 'zod';\nimport { DEFAULTS } from '../../../constants';\nexport const CreateCustomerGroupSchema = z.object({\n name: z.string(),\n discount_rules: z.array(\n z.object({\n type: z.literal('price_list'),\n price_list_id: z.int(),\n }),\n ),\n});\n\nexport const CreateCustomerGroupResponseSchema = z.object({\n id: z.int(),\n});\n\nexport const CustomerGroupSchema = z.object({\n id: z.int(),\n name: z.string(),\n is_default: z.boolean(),\n is_group_for_guests: z.boolean(),\n});\n\nexport const FindCustomerGroupsCriteriaSchema = z.object({\n limit: z.int().max(DEFAULTS.customers.getBatchSize).optional(),\n page: z.int().positive().optional(),\n});\n\nexport const SetCustomerGroupPriceListSchema = z.object({\n data: z.object({\n discount_rules: z\n .object({\n type: z.literal('price_list'),\n price_list_id: z.int(),\n })\n .array(),\n }),\n customerGroupId: z.int(),\n});\n\nexport const SetCustomerGroupPriceListResponseSchema = z.object({\n id: z.int(),\n name: z.string(),\n});\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { FindCustomerResponse, type CustomerSchema } from './schemas/customer.schema';\nimport { FindCustomersCriteriaSchema } from './schemas/find-customer.criteria';\nexport const findCustomers = (criteria?: z.input<typeof FindCustomersCriteriaSchema>) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedQuery = yield* validateInput(FindCustomersCriteriaSchema, criteria ?? {});\n return yield* fetcher.fetch({\n method: 'GET',\n path: `customers`,\n isB2B: false,\n version: 'v3',\n resultSchema: FindCustomerResponse,\n query: stringify(validatedQuery),\n });\n });\n};\n\nexport const getAllCustomersBy = (\n criteria: Omit<z.input<typeof FindCustomersCriteriaSchema>, 'page' | 'limit'>,\n) => {\n return Effect.gen(function* () {\n const allCustomers: z.infer<typeof CustomerSchema>[] = [];\n let page = 1;\n let hasMoreCustomers = true;\n\n while (hasMoreCustomers) {\n const customers = yield* findCustomers({\n ...criteria,\n page,\n limit: DEFAULTS.customers.getBatchSize,\n });\n\n if (customers.meta.pagination.links.next) {\n allCustomers.push(...customers.data);\n page++;\n } else {\n hasMoreCustomers = false;\n }\n }\n\n return allCustomers;\n });\n};\n","import * as z from 'zod';\n\nexport const CustomerSchema = z.object({\n email: z.email(),\n first_name: z.string(),\n last_name: z.string(),\n company: z.string().optional(),\n phone: z.string(),\n customer_group_id: z.int(),\n id: z.int(),\n channel_ids: z.array(z.int()),\n});\n\nexport const FindCustomerResponse = z.object({\n data: z.array(CustomerSchema),\n meta: z.object({\n pagination: z.object({\n total: z.int(),\n count: z.int(),\n per_page: z.int(),\n current_page: z.int(),\n total_pages: z.int(),\n links: z.object({\n previous: z.string().optional().nullable(),\n current: z.string(),\n next: z.string().optional().nullable(),\n }),\n }),\n }),\n});\n","import * as z from 'zod';\nexport const FindCustomersCriteriaSchema = z.object({\n 'id:in': z\n .array(z.int())\n .transform((ids) => ids.join(','))\n .optional(),\n page: z.int().optional(),\n limit: z.int().optional(),\n 'company:in': z\n .array(z.string())\n .transform((companies) => companies.join(','))\n .optional(),\n 'customer_group_id:in': z\n .array(z.int())\n .transform((ids) => ids.join(','))\n .optional(),\n});\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n CustomerGroupSchema,\n FindCustomerGroupsCriteriaSchema,\n} from './schemas/customer-group.schema';\nconst FindCustomerResponse = z.union([\n z.array(CustomerGroupSchema),\n z.literal(''),\n z.literal(null),\n]);\nexport const findCustomersGroups = (criteria?: z.input<typeof FindCustomerGroupsCriteriaSchema>) =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedQuery = yield* validateInput(FindCustomerGroupsCriteriaSchema, criteria ?? {});\n const response = yield* fetcher.fetch({\n method: 'GET',\n path: `customers`,\n isB2B: false,\n version: 'v3',\n resultSchema: FindCustomerResponse,\n query: stringify(validatedQuery),\n });\n return response || [];\n });\n\nexport const getAllCustomerGroupsBy = (\n criteria?: Omit<z.input<typeof FindCustomerGroupsCriteriaSchema>, 'page' | 'limit'>,\n) =>\n Effect.gen(function* () {\n const all: z.infer<typeof CustomerGroupSchema>[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const groups = yield* findCustomersGroups({\n ...criteria,\n page,\n limit: DEFAULTS.customers.getBatchSize,\n });\n\n if (groups.length) {\n all.push(...groups);\n page++;\n } else {\n hasMore = false;\n }\n }\n\n return all;\n });\n","import { Effect } from 'effect';\nimport { findCustomers } from './find-customers';\n\nexport const getCustomer = (customerId: number) => {\n return findCustomers({\n 'id:in': [customerId],\n }).pipe(Effect.map((response) => response.data[0]));\n};\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetCustomerGroupPriceListResponseSchema,\n SetCustomerGroupPriceListSchema,\n} from './schemas/customer-group.schema';\nexport const setCustomerGroupPriceList = (input: z.input<typeof SetCustomerGroupPriceListSchema>) =>\n Effect.gen(function* () {\n const { customerGroupId, data } = yield* validateInput(SetCustomerGroupPriceListSchema, input);\n const fetcher = yield* BigCommerceFetcher;\n\n return yield* Effect.retry(\n fetcher.fetch({\n body: data,\n isB2B: false,\n method: 'PUT',\n path: `customer_groups/${customerGroupId}`,\n resultSchema: SetCustomerGroupPriceListResponseSchema,\n version: 'v2',\n }),\n DEFAULTS.retry.policy,\n );\n });\n"],"mappings":"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","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","import_effect","z","z","import_effect","import_node_querystring","z","FindCustomerResponse","import_effect","import_effect"]}
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  BigCommerceFetcher,
6
6
  DEFAULTS
7
- } from "./chunk-2VMEIQCL.mjs";
7
+ } from "./chunk-PAXNZ36X.mjs";
8
8
 
9
9
  // src/bigcommerce-entities/customers/create-customer-group.ts
10
10
  import { Effect } from "effect";