@edgebound/bigcommerce 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 qs from 'qs';\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: qs.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 qs from 'qs';\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: qs.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","qs","import_effect","import_qs","z","FindCustomerResponse","qs","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";
@@ -66,7 +66,7 @@ var createCustomerGroup = (data) => Effect.gen(function* () {
66
66
 
67
67
  // src/bigcommerce-entities/customers/find-customers.ts
68
68
  import { Effect as Effect2 } from "effect";
69
- import qs from "qs";
69
+ import { stringify } from "querystring";
70
70
 
71
71
  // src/bigcommerce-entities/customers/schemas/customer.schema.ts
72
72
  import * as z2 from "zod";
@@ -119,7 +119,7 @@ var findCustomers = (criteria) => {
119
119
  isB2B: false,
120
120
  version: "v3",
121
121
  resultSchema: FindCustomerResponse,
122
- query: qs.stringify(validatedQuery)
122
+ query: stringify(validatedQuery)
123
123
  });
124
124
  });
125
125
  };
@@ -147,7 +147,7 @@ var getAllCustomersBy = (criteria) => {
147
147
 
148
148
  // src/bigcommerce-entities/customers/get-all-customer-groups.ts
149
149
  import { Effect as Effect3 } from "effect";
150
- import qs2 from "qs";
150
+ import { stringify as stringify2 } from "querystring";
151
151
  import * as z4 from "zod";
152
152
  var FindCustomerResponse2 = z4.union([
153
153
  z4.array(CustomerGroupSchema),
@@ -163,7 +163,7 @@ var findCustomersGroups = (criteria) => Effect3.gen(function* () {
163
163
  isB2B: false,
164
164
  version: "v3",
165
165
  resultSchema: FindCustomerResponse2,
166
- query: qs2.stringify(validatedQuery)
166
+ query: stringify2(validatedQuery)
167
167
  });
168
168
  return response || [];
169
169
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bigcommerce-entities/customers/create-customer-group.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":["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 * 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 qs from 'qs';\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: qs.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 qs from 'qs';\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: qs.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":["Effect","z","z","Effect","Effect","qs","z","FindCustomerResponse","Effect","qs","Effect","Effect","Effect","Effect"]}
1
+ {"version":3,"sources":["../src/bigcommerce-entities/customers/create-customer-group.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":["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 * 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":["Effect","z","z","Effect","Effect","stringify","z","FindCustomerResponse","Effect","stringify","Effect","Effect","Effect","Effect"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts","../src/core/bigcommerce.error.ts","../src/core/bigcommerce.fetcher.ts","../src/core/bigcommerce.fetcher.live.ts","../src/constants.ts","../src/core/config.ts"],"sourcesContent":["export * from './bigcommerce.error';\nexport * from './bigcommerce.fetcher';\nexport * from './bigcommerce.fetcher.live';\nexport * from './config';\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 { 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":["import_effect","import_effect","import_effect","import_effect","code"]}
1
+ {"version":3,"sources":["../src/core/index.ts","../src/core/bigcommerce.error.ts","../src/core/bigcommerce.fetcher.ts","../src/core/bigcommerce.fetcher.live.ts","../src/constants.ts","../src/core/config.ts"],"sourcesContent":["export * from './bigcommerce.error';\nexport * from './bigcommerce.fetcher';\nexport * from './bigcommerce.fetcher.live';\nexport * from './config';\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 { 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":["import_effect","import_effect","import_effect","import_effect","code"]}
package/dist/index.mjs CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  BigCommerceUnprocessableEntityError,
17
17
  NoBigCommerceConfigError,
18
18
  validateBigCommerceConfig
19
- } from "./chunk-2VMEIQCL.mjs";
19
+ } from "./chunk-PAXNZ36X.mjs";
20
20
  export {
21
21
  BigCommerceConfig,
22
22
  BigCommerceConfigLive,
package/dist/orders.d.mts CHANGED
@@ -420,6 +420,7 @@ declare const OrderProductSchema: z.ZodObject<{
420
420
  cost_price_ex_tax: z.ZodCoercedNumber<unknown>;
421
421
  cost_price_tax: z.ZodCoercedNumber<unknown>;
422
422
  }, z.core.$strip>;
423
+ type OrderProduct = z.output<typeof OrderProductSchema>;
423
424
 
424
425
  declare const OrderShippingAddressSchema: z.ZodObject<{
425
426
  first_name: z.ZodString;
@@ -1629,6 +1630,7 @@ declare const OrderShippingAddressSchema: z.ZodObject<{
1629
1630
  shipping_method: z.ZodString;
1630
1631
  }, z.core.$strip>;
1631
1632
  }, z.core.$strip>;
1633
+ type OrderShippingAddress = z.output<typeof OrderShippingAddressSchema>;
1632
1634
 
1633
1635
  declare const OrderSchema: z.ZodObject<{
1634
1636
  id: z.ZodNumber;
@@ -1732,5 +1734,6 @@ declare const OrderSchema: z.ZodObject<{
1732
1734
  store_default_to_transactional_exchange_rate: z.ZodString;
1733
1735
  custom_status: z.ZodString;
1734
1736
  }, z.core.$strip>;
1737
+ type Order = z.output<typeof OrderSchema>;
1735
1738
 
1736
- export { FindOrdersCriteriaSchema, OrderProductSchema, OrderSchema, OrderShippingAddressSchema, findOrders, getAllOrderProducts, getAllOrderShippingAddresses, getAllOrdersBy, getOrder };
1739
+ export { FindOrdersCriteriaSchema, type Order, type OrderProduct, OrderProductSchema, OrderSchema, type OrderShippingAddress, OrderShippingAddressSchema, findOrders, getAllOrderProducts, getAllOrderShippingAddresses, getAllOrdersBy, getOrder };
package/dist/orders.d.ts CHANGED
@@ -420,6 +420,7 @@ declare const OrderProductSchema: z.ZodObject<{
420
420
  cost_price_ex_tax: z.ZodCoercedNumber<unknown>;
421
421
  cost_price_tax: z.ZodCoercedNumber<unknown>;
422
422
  }, z.core.$strip>;
423
+ type OrderProduct = z.output<typeof OrderProductSchema>;
423
424
 
424
425
  declare const OrderShippingAddressSchema: z.ZodObject<{
425
426
  first_name: z.ZodString;
@@ -1629,6 +1630,7 @@ declare const OrderShippingAddressSchema: z.ZodObject<{
1629
1630
  shipping_method: z.ZodString;
1630
1631
  }, z.core.$strip>;
1631
1632
  }, z.core.$strip>;
1633
+ type OrderShippingAddress = z.output<typeof OrderShippingAddressSchema>;
1632
1634
 
1633
1635
  declare const OrderSchema: z.ZodObject<{
1634
1636
  id: z.ZodNumber;
@@ -1732,5 +1734,6 @@ declare const OrderSchema: z.ZodObject<{
1732
1734
  store_default_to_transactional_exchange_rate: z.ZodString;
1733
1735
  custom_status: z.ZodString;
1734
1736
  }, z.core.$strip>;
1737
+ type Order = z.output<typeof OrderSchema>;
1735
1738
 
1736
- export { FindOrdersCriteriaSchema, OrderProductSchema, OrderSchema, OrderShippingAddressSchema, findOrders, getAllOrderProducts, getAllOrderShippingAddresses, getAllOrdersBy, getOrder };
1739
+ export { FindOrdersCriteriaSchema, type Order, type OrderProduct, OrderProductSchema, OrderSchema, type OrderShippingAddress, OrderShippingAddressSchema, findOrders, getAllOrderProducts, getAllOrderShippingAddresses, getAllOrdersBy, getOrder };