@edgebound/bigcommerce 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-GYWUKI2C.mjs → chunk-XONZC4AG.mjs} +2 -1
- package/dist/chunk-XONZC4AG.mjs.map +1 -0
- package/dist/customers.d.mts +2 -3
- package/dist/customers.d.ts +2 -3
- package/dist/customers.js.map +1 -1
- package/dist/customers.mjs.map +1 -1
- package/dist/orders.d.mts +4 -5
- package/dist/orders.d.ts +4 -5
- package/dist/orders.js +6 -0
- package/dist/orders.js.map +1 -1
- package/dist/orders.mjs +7 -2
- package/dist/orders.mjs.map +1 -1
- package/dist/products.d.mts +2 -4
- package/dist/products.d.ts +2 -4
- package/dist/products.js.map +1 -1
- package/dist/products.mjs.map +1 -1
- package/dist/status.schema-BgztUtGy.d.mts +39 -0
- package/dist/status.schema-BgztUtGy.d.ts +39 -0
- package/dist/webhooks.d.mts +7 -29
- package/dist/webhooks.d.ts +7 -29
- package/dist/webhooks.js +6 -5
- package/dist/webhooks.js.map +1 -1
- package/dist/webhooks.mjs +7 -6
- package/dist/webhooks.mjs.map +1 -1
- package/package.json +7 -3
- package/dist/chunk-GYWUKI2C.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/orders/schemas/status.schema.ts"],"sourcesContent":["import * as z from 'zod';\nexport const OrderStatusNameEnumSchema = z.enum([\n 'Incomplete',\n 'Pending',\n 'Shipped',\n 'Partially Shipped',\n 'Refunded',\n 'Cancelled',\n 'Declined',\n 'Awaiting Payment',\n 'Awaiting Pickup',\n 'Awaiting Shipment',\n 'Completed',\n 'Awaiting Fulfillment',\n 'Manual Verification Required',\n 'Disputed',\n 'Partially Refunded',\n]);\nexport enum OrderStatusEnum {\n Incomplete = 0,\n Pending = 1,\n Shipped = 2,\n PartiallyShipped = 3,\n Refunded = 4,\n Cancelled = 5,\n Declined = 6,\n AwaitingPayment = 7,\n AwaitingPickup = 8,\n AwaitingShipment = 9,\n Completed = 10,\n AwaitingFulfillment = 11,\n ManualVerificationRequired = 12,\n Disputed = 13,\n PartiallyRefunded = 14,\n}\nexport const OrderStatusSchema = z.enum(OrderStatusEnum);\n"],"mappings":";AAAA,YAAY,OAAO;AACZ,IAAM,4BAA8B,OAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAK,kBAAL,kBAAKA,qBAAL;AACL,EAAAA,kCAAA,gBAAa,KAAb;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,sBAAmB,KAAnB;AACA,EAAAA,kCAAA,cAAW,KAAX;AACA,EAAAA,kCAAA,eAAY,KAAZ;AACA,EAAAA,kCAAA,cAAW,KAAX;AACA,EAAAA,kCAAA,qBAAkB,KAAlB;AACA,EAAAA,kCAAA,oBAAiB,KAAjB;AACA,EAAAA,kCAAA,sBAAmB,KAAnB;AACA,EAAAA,kCAAA,eAAY,MAAZ;AACA,EAAAA,kCAAA,yBAAsB,MAAtB;AACA,EAAAA,kCAAA,gCAA6B,MAA7B;AACA,EAAAA,kCAAA,cAAW,MAAX;AACA,EAAAA,kCAAA,uBAAoB,MAApB;AAfU,SAAAA;AAAA,GAAA;AAiBL,IAAM,oBAAsB,OAAK,eAAe;","names":["OrderStatusEnum"]}
|
package/dist/customers.d.mts
CHANGED
|
@@ -12,9 +12,8 @@ declare const FindCustomersCriteriaSchema: z.ZodObject<{
|
|
|
12
12
|
'company:in': z.ZodOptional<z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<string, string[]>>>;
|
|
13
13
|
'customer_group_id:in': z.ZodOptional<z.ZodPipe<z.ZodArray<z.ZodInt>, z.ZodTransform<string, number[]>>>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
|
-
type FindCustomersCriteriaInput = z.input<typeof FindCustomersCriteriaSchema>;
|
|
16
15
|
|
|
17
|
-
declare const findCustomers: (criteria?:
|
|
16
|
+
declare const findCustomers: (criteria?: z.input<typeof FindCustomersCriteriaSchema>) => Effect.Effect<{
|
|
18
17
|
data: {
|
|
19
18
|
email: string;
|
|
20
19
|
first_name: string;
|
|
@@ -40,7 +39,7 @@ declare const findCustomers: (criteria?: FindCustomersCriteriaInput) => Effect.E
|
|
|
40
39
|
};
|
|
41
40
|
};
|
|
42
41
|
}, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
|
|
43
|
-
declare const getAllCustomersBy: (criteria: Omit<
|
|
42
|
+
declare const getAllCustomersBy: (criteria: Omit<z.input<typeof FindCustomersCriteriaSchema>, "page" | "limit">) => Effect.Effect<{
|
|
44
43
|
email: string;
|
|
45
44
|
first_name: string;
|
|
46
45
|
last_name: string;
|
package/dist/customers.d.ts
CHANGED
|
@@ -12,9 +12,8 @@ declare const FindCustomersCriteriaSchema: z.ZodObject<{
|
|
|
12
12
|
'company:in': z.ZodOptional<z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<string, string[]>>>;
|
|
13
13
|
'customer_group_id:in': z.ZodOptional<z.ZodPipe<z.ZodArray<z.ZodInt>, z.ZodTransform<string, number[]>>>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
|
-
type FindCustomersCriteriaInput = z.input<typeof FindCustomersCriteriaSchema>;
|
|
16
15
|
|
|
17
|
-
declare const findCustomers: (criteria?:
|
|
16
|
+
declare const findCustomers: (criteria?: z.input<typeof FindCustomersCriteriaSchema>) => Effect.Effect<{
|
|
18
17
|
data: {
|
|
19
18
|
email: string;
|
|
20
19
|
first_name: string;
|
|
@@ -40,7 +39,7 @@ declare const findCustomers: (criteria?: FindCustomersCriteriaInput) => Effect.E
|
|
|
40
39
|
};
|
|
41
40
|
};
|
|
42
41
|
}, SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
|
|
43
|
-
declare const getAllCustomersBy: (criteria: Omit<
|
|
42
|
+
declare const getAllCustomersBy: (criteria: Omit<z.input<typeof FindCustomersCriteriaSchema>, "page" | "limit">) => Effect.Effect<{
|
|
44
43
|
email: string;
|
|
45
44
|
first_name: string;
|
|
46
45
|
last_name: string;
|
package/dist/customers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/customers/index.ts","../src/bigcommerce-entities/customers/find-customers.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.schema.ts","../src/bigcommerce-entities/customers/schemas/find-customer.criteria.ts","../src/bigcommerce-entities/customers/get-customer.ts"],"sourcesContent":["export * from './find-customers';\nexport * from './get-customer';\n","import { Effect } from 'effect';\nimport { GET_CUSTOMERS_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { FindCustomerResponse, type Customer } from './schemas/customer.schema';\nimport {\n FindCustomersCriteriaSchema,\n type FindCustomersCriteriaInput,\n} from './schemas/find-customer.criteria';\n\nexport const findCustomers = (criteria?: FindCustomersCriteriaInput) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedResponse = yield* validateInput(FindCustomersCriteriaSchema, criteria ?? {});\n const query: Record<string, string> = {};\n for (const [key, value] of Object.entries(validatedResponse)) {\n if (value !== undefined) {\n query[key] = `${value}`;\n }\n }\n return yield* fetcher.fetch({\n method: 'GET',\n path: `customers`,\n isB2B: false,\n version: 'v3',\n resultSchema: FindCustomerResponse,\n query,\n });\n });\n};\n\nexport const getAllCustomersBy = (criteria: Omit<FindCustomersCriteriaInput, 'page' | 'limit'>) => {\n return Effect.gen(function* () {\n const allCustomers: Customer[] = [];\n let page = 1;\n let hasMoreCustomers = true;\n\n while (hasMoreCustomers) {\n const customers = yield* findCustomers({\n ...criteria,\n page,\n limit: GET_CUSTOMERS_BATCH_SIZE,\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 { Duration, Schedule } from 'effect';\n\nexport const DEFAULT_TIMEOUT_MS = 30000;\nexport const API_BASE_URLS = {\n B2B: 'https://api-b2b.bigcommerce.com/api',\n REGULAR: 'https://api.bigcommerce.com/stores',\n} as const;\nexport const GET_ORDER_BATCH_SIZE = 250;\nexport const UPDATE_PRODUCT_BATCH_SIZE = 5;\nexport const UPDATE_INVENTORY_BATCH_SIZE = 2000;\nexport const UPDATE_INVENTORY_CONCURRENCY = 2;\nexport const DEFAULT_RETRY_TIMES = 2;\nexport const DEFAULT_RETRY_WAIT = 200;\nexport const DEFAULT_RETRY_SCHEDULE = Schedule.exponential(Duration.millis(DEFAULT_RETRY_WAIT));\nexport const RETRY_POLICY_WITH_BACKOFF = Schedule.exponential(\n Duration.millis(DEFAULT_RETRY_WAIT),\n 2,\n).pipe(Schedule.intersect(Schedule.recurs(DEFAULT_RETRY_TIMES)));\nexport const GET_CUSTOMERS_BATCH_SIZE = 100;\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>,\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>,\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 { API_BASE_URLS } 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 } 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.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 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>): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\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 `${API_BASE_URLS.B2B}/${version}/io/${path}`;\n }\n return `${API_BASE_URLS.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 { DEFAULT_TIMEOUT_MS } 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, string>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError, string>;\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(DEFAULT_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(DEFAULT_TIMEOUT_MS),\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';\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\nexport type Customer = z.output<typeof CustomerSchema>;\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\nexport type FindCustomersCriteriaInput = z.input<typeof FindCustomersCriteriaSchema>;\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"],"mappings":"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","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","z","import_effect"]}
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/customers/index.ts","../src/bigcommerce-entities/customers/find-customers.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.schema.ts","../src/bigcommerce-entities/customers/schemas/find-customer.criteria.ts","../src/bigcommerce-entities/customers/get-customer.ts"],"sourcesContent":["export * from './find-customers';\nexport * from './get-customer';\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_CUSTOMERS_BATCH_SIZE } 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 validatedResponse = yield* validateInput(FindCustomersCriteriaSchema, criteria ?? {});\n const query: Record<string, string> = {};\n for (const [key, value] of Object.entries(validatedResponse)) {\n if (value !== undefined) {\n query[key] = `${value}`;\n }\n }\n return yield* fetcher.fetch({\n method: 'GET',\n path: `customers`,\n isB2B: false,\n version: 'v3',\n resultSchema: FindCustomerResponse,\n query,\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: GET_CUSTOMERS_BATCH_SIZE,\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 { Duration, Schedule } from 'effect';\n\nexport const DEFAULT_TIMEOUT_MS = 30000;\nexport const API_BASE_URLS = {\n B2B: 'https://api-b2b.bigcommerce.com/api',\n REGULAR: 'https://api.bigcommerce.com/stores',\n} as const;\nexport const GET_ORDER_BATCH_SIZE = 250;\nexport const UPDATE_PRODUCT_BATCH_SIZE = 5;\nexport const UPDATE_INVENTORY_BATCH_SIZE = 2000;\nexport const UPDATE_INVENTORY_CONCURRENCY = 2;\nexport const DEFAULT_RETRY_TIMES = 2;\nexport const DEFAULT_RETRY_WAIT = 200;\nexport const DEFAULT_RETRY_SCHEDULE = Schedule.exponential(Duration.millis(DEFAULT_RETRY_WAIT));\nexport const RETRY_POLICY_WITH_BACKOFF = Schedule.exponential(\n Duration.millis(DEFAULT_RETRY_WAIT),\n 2,\n).pipe(Schedule.intersect(Schedule.recurs(DEFAULT_RETRY_TIMES)));\nexport const GET_CUSTOMERS_BATCH_SIZE = 100;\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>,\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>,\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 { API_BASE_URLS } 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 } 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.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 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>): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\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 `${API_BASE_URLS.B2B}/${version}/io/${path}`;\n }\n return `${API_BASE_URLS.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 { DEFAULT_TIMEOUT_MS } 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, string>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError, string>;\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(DEFAULT_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(DEFAULT_TIMEOUT_MS),\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';\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 { 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"],"mappings":"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","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","z","import_effect"]}
|
package/dist/customers.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../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-customer.ts"],"sourcesContent":["import { Effect } from 'effect';\nimport { GET_CUSTOMERS_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { FindCustomerResponse, type
|
|
1
|
+
{"version":3,"sources":["../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-customer.ts"],"sourcesContent":["import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_CUSTOMERS_BATCH_SIZE } 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 validatedResponse = yield* validateInput(FindCustomersCriteriaSchema, criteria ?? {});\n const query: Record<string, string> = {};\n for (const [key, value] of Object.entries(validatedResponse)) {\n if (value !== undefined) {\n query[key] = `${value}`;\n }\n }\n return yield* fetcher.fetch({\n method: 'GET',\n path: `customers`,\n isB2B: false,\n version: 'v3',\n resultSchema: FindCustomerResponse,\n query,\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: GET_CUSTOMERS_BATCH_SIZE,\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 { 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"],"mappings":";;;;;;;;;AAAA,SAAS,cAAc;;;ACAvB,YAAY,OAAO;AAEZ,IAAM,iBAAmB,SAAO;AAAA,EACrC,OAAS,QAAM;AAAA,EACf,YAAc,SAAO;AAAA,EACrB,WAAa,SAAO;AAAA,EACpB,SAAW,SAAO,EAAE,SAAS;AAAA,EAC7B,OAAS,SAAO;AAAA,EAChB,mBAAqB,MAAI;AAAA,EACzB,IAAM,MAAI;AAAA,EACV,aAAe,QAAQ,MAAI,CAAC;AAC9B,CAAC;AAEM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,MAAQ,QAAM,cAAc;AAAA,EAC5B,MAAQ,SAAO;AAAA,IACb,YAAc,SAAO;AAAA,MACnB,OAAS,MAAI;AAAA,MACb,OAAS,MAAI;AAAA,MACb,UAAY,MAAI;AAAA,MAChB,cAAgB,MAAI;AAAA,MACpB,aAAe,MAAI;AAAA,MACnB,OAAS,SAAO;AAAA,QACd,UAAY,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QACzC,SAAW,SAAO;AAAA,QAClB,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MACvC,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH,CAAC;;;AC7BD,YAAYA,QAAO;AACZ,IAAM,8BAAgC,UAAO;AAAA,EAClD,SACG,SAAQ,OAAI,CAAC,EACb,UAAU,CAAC,QAAQ,IAAI,KAAK,GAAG,CAAC,EAChC,SAAS;AAAA,EACZ,MAAQ,OAAI,EAAE,SAAS;AAAA,EACvB,OAAS,OAAI,EAAE,SAAS;AAAA,EACxB,cACG,SAAQ,UAAO,CAAC,EAChB,UAAU,CAAC,cAAc,UAAU,KAAK,GAAG,CAAC,EAC5C,SAAS;AAAA,EACZ,wBACG,SAAQ,OAAI,CAAC,EACb,UAAU,CAAC,QAAQ,IAAI,KAAK,GAAG,CAAC,EAChC,SAAS;AACd,CAAC;;;AFTM,IAAM,gBAAgB,CAAC,aAA2D;AACvF,SAAO,OAAO,IAAI,aAAa;AAC7B,UAAM,UAAU,OAAO;AACvB,UAAM,oBAAoB,OAAO,cAAc,6BAA6B,YAAY,CAAC,CAAC;AAC1F,UAAM,QAAgC,CAAC;AACvC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,iBAAiB,GAAG;AAC5D,UAAI,UAAU,QAAW;AACvB,cAAM,GAAG,IAAI,GAAG,KAAK;AAAA,MACvB;AAAA,IACF;AACA,WAAO,OAAO,QAAQ,MAAM;AAAA,MAC1B,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AAEO,IAAM,oBAAoB,CAC/B,aACG;AACH,SAAO,OAAO,IAAI,aAAa;AAC7B,UAAM,eAAiD,CAAC;AACxD,QAAI,OAAO;AACX,QAAI,mBAAmB;AAEvB,WAAO,kBAAkB;AACvB,YAAM,YAAY,OAAO,cAAc;AAAA,QACrC,GAAG;AAAA,QACH;AAAA,QACA,OAAO;AAAA,MACT,CAAC;AAED,UAAI,UAAU,KAAK,WAAW,MAAM,MAAM;AACxC,qBAAa,KAAK,GAAG,UAAU,IAAI;AACnC;AAAA,MACF,OAAO;AACL,2BAAmB;AAAA,MACrB;AAAA,IACF;AAEA,WAAO;AAAA,EACT,CAAC;AACH;;;AGrDA,SAAS,UAAAC,eAAc;AAGhB,IAAM,cAAc,CAAC,eAAuB;AACjD,SAAO,cAAc;AAAA,IACnB,SAAS,CAAC,UAAU;AAAA,EACtB,CAAC,EAAE,KAAKC,QAAO,IAAI,CAAC,aAAa,SAAS,KAAK,CAAC,CAAC,CAAC;AACpD;","names":["z","Effect","Effect"]}
|
package/dist/orders.d.mts
CHANGED
|
@@ -2,6 +2,7 @@ import { I as InputValidationError } from './validation.error-CHLpPYC_.mjs';
|
|
|
2
2
|
import { S as SomeBigCommerceError, B as BigCommerceFetcher } from './bigcommerce.fetcher-D1TyK4y4.mjs';
|
|
3
3
|
import { Effect } from 'effect';
|
|
4
4
|
import * as z from 'zod';
|
|
5
|
+
export { O as OrderStatusEnum, a as OrderStatusNameEnumSchema, b as OrderStatusSchema } from './status.schema-BgztUtGy.mjs';
|
|
5
6
|
import 'effect/Cause';
|
|
6
7
|
import 'effect/Types';
|
|
7
8
|
|
|
@@ -20,9 +21,8 @@ declare const FindOrdersCriteriaSchema: z.ZodObject<{
|
|
|
20
21
|
sort: z.ZodOptional<z.ZodString>;
|
|
21
22
|
channel_id: z.ZodOptional<z.ZodInt>;
|
|
22
23
|
}, z.core.$strip>;
|
|
23
|
-
type FindOrdersCriteriaInput = z.input<typeof FindOrdersCriteriaSchema>;
|
|
24
24
|
|
|
25
|
-
declare const findOrders: (criteria?:
|
|
25
|
+
declare const findOrders: (criteria?: z.input<typeof FindOrdersCriteriaSchema>) => Effect.Effect<{
|
|
26
26
|
id: number;
|
|
27
27
|
customer_id: number;
|
|
28
28
|
date_created: string;
|
|
@@ -108,7 +108,7 @@ declare const findOrders: (criteria?: FindOrdersCriteriaInput) => Effect.Effect<
|
|
|
108
108
|
store_default_to_transactional_exchange_rate: string;
|
|
109
109
|
custom_status: string;
|
|
110
110
|
}[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
|
|
111
|
-
declare const getAllOrdersBy: (criteria: Omit<
|
|
111
|
+
declare const getAllOrdersBy: (criteria: Omit<z.input<typeof FindOrdersCriteriaSchema>, "page" | "limit">) => Effect.Effect<{
|
|
112
112
|
id: number;
|
|
113
113
|
customer_id: number;
|
|
114
114
|
date_created: string;
|
|
@@ -411,6 +411,5 @@ declare const OrderSchema: z.ZodObject<{
|
|
|
411
411
|
store_default_to_transactional_exchange_rate: z.ZodString;
|
|
412
412
|
custom_status: z.ZodString;
|
|
413
413
|
}, z.core.$strip>;
|
|
414
|
-
type Order = z.output<typeof OrderSchema>;
|
|
415
414
|
|
|
416
|
-
export {
|
|
415
|
+
export { OrderSchema, findOrders, getAllOrderProducts, getAllOrdersBy, getOrder };
|
package/dist/orders.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { I as InputValidationError } from './validation.error-CHLpPYC_.js';
|
|
|
2
2
|
import { S as SomeBigCommerceError, B as BigCommerceFetcher } from './bigcommerce.fetcher-D1TyK4y4.js';
|
|
3
3
|
import { Effect } from 'effect';
|
|
4
4
|
import * as z from 'zod';
|
|
5
|
+
export { O as OrderStatusEnum, a as OrderStatusNameEnumSchema, b as OrderStatusSchema } from './status.schema-BgztUtGy.js';
|
|
5
6
|
import 'effect/Cause';
|
|
6
7
|
import 'effect/Types';
|
|
7
8
|
|
|
@@ -20,9 +21,8 @@ declare const FindOrdersCriteriaSchema: z.ZodObject<{
|
|
|
20
21
|
sort: z.ZodOptional<z.ZodString>;
|
|
21
22
|
channel_id: z.ZodOptional<z.ZodInt>;
|
|
22
23
|
}, z.core.$strip>;
|
|
23
|
-
type FindOrdersCriteriaInput = z.input<typeof FindOrdersCriteriaSchema>;
|
|
24
24
|
|
|
25
|
-
declare const findOrders: (criteria?:
|
|
25
|
+
declare const findOrders: (criteria?: z.input<typeof FindOrdersCriteriaSchema>) => Effect.Effect<{
|
|
26
26
|
id: number;
|
|
27
27
|
customer_id: number;
|
|
28
28
|
date_created: string;
|
|
@@ -108,7 +108,7 @@ declare const findOrders: (criteria?: FindOrdersCriteriaInput) => Effect.Effect<
|
|
|
108
108
|
store_default_to_transactional_exchange_rate: string;
|
|
109
109
|
custom_status: string;
|
|
110
110
|
}[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
|
|
111
|
-
declare const getAllOrdersBy: (criteria: Omit<
|
|
111
|
+
declare const getAllOrdersBy: (criteria: Omit<z.input<typeof FindOrdersCriteriaSchema>, "page" | "limit">) => Effect.Effect<{
|
|
112
112
|
id: number;
|
|
113
113
|
customer_id: number;
|
|
114
114
|
date_created: string;
|
|
@@ -411,6 +411,5 @@ declare const OrderSchema: z.ZodObject<{
|
|
|
411
411
|
store_default_to_transactional_exchange_rate: z.ZodString;
|
|
412
412
|
custom_status: z.ZodString;
|
|
413
413
|
}, z.core.$strip>;
|
|
414
|
-
type Order = z.output<typeof OrderSchema>;
|
|
415
414
|
|
|
416
|
-
export {
|
|
415
|
+
export { OrderSchema, findOrders, getAllOrderProducts, getAllOrdersBy, getOrder };
|
package/dist/orders.js
CHANGED
|
@@ -31,6 +31,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var orders_exports = {};
|
|
32
32
|
__export(orders_exports, {
|
|
33
33
|
OrderSchema: () => OrderSchema,
|
|
34
|
+
OrderStatusEnum: () => OrderStatusEnum,
|
|
35
|
+
OrderStatusNameEnumSchema: () => OrderStatusNameEnumSchema,
|
|
36
|
+
OrderStatusSchema: () => OrderStatusSchema,
|
|
34
37
|
findOrders: () => findOrders,
|
|
35
38
|
getAllOrderProducts: () => getAllOrderProducts,
|
|
36
39
|
getAllOrdersBy: () => getAllOrdersBy,
|
|
@@ -600,6 +603,9 @@ var getAllOrderProducts = (orderId) => {
|
|
|
600
603
|
// Annotate the CommonJS export names for ESM import in node:
|
|
601
604
|
0 && (module.exports = {
|
|
602
605
|
OrderSchema,
|
|
606
|
+
OrderStatusEnum,
|
|
607
|
+
OrderStatusNameEnumSchema,
|
|
608
|
+
OrderStatusSchema,
|
|
603
609
|
findOrders,
|
|
604
610
|
getAllOrderProducts,
|
|
605
611
|
getAllOrdersBy,
|
package/dist/orders.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/orders/index.ts","../src/bigcommerce-entities/orders/find-orders.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/orders/schemas/order.schema.ts","../src/bigcommerce-entities/addresses/schemas/address.schema.ts","../src/bigcommerce-entities/addresses/schemas/form-field.schema.ts","../src/bigcommerce-entities/orders/schemas/status.schema.ts","../src/bigcommerce-entities/orders/schemas/find-orders.criteria.ts","../src/bigcommerce-entities/orders/get-order.ts","../src/bigcommerce-entities/orders/get-products.ts","../src/bigcommerce-entities/orders/schemas/order-product.schema.ts"],"sourcesContent":["export * from './find-orders';\nexport * from './get-order';\nexport * from './get-products';\nexport * from './schemas';\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { OrderSchema, type Order } from './schemas';\nimport {\n FindOrdersCriteriaSchema,\n type FindOrdersCriteriaInput,\n} from './schemas/find-orders.criteria';\n\nconst OrderArraySchema = z.union([z.array(OrderSchema), z.literal(''), z.literal(null)]);\n\nexport const findOrders = (criteria?: FindOrdersCriteriaInput) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedResponse = yield* validateInput(FindOrdersCriteriaSchema, criteria ?? {});\n const query: Record<string, string> = {};\n for (const [key, value] of Object.entries(validatedResponse)) {\n if (value !== undefined) {\n query[key] = `${value}`;\n }\n }\n const orders = yield* fetcher.fetch({\n query,\n isB2B: false,\n method: 'GET',\n path: 'orders',\n version: 'v2',\n resultSchema: OrderArraySchema,\n });\n return orders || [];\n });\n};\n\nexport const getAllOrdersBy = (criteria: Omit<FindOrdersCriteriaInput, 'page' | 'limit'>) => {\n return Effect.gen(function* () {\n const allOrders: Order[] = [];\n let page = 1;\n let hasMoreOrders = true;\n\n while (hasMoreOrders) {\n const orders = yield* findOrders({\n ...criteria,\n page,\n limit: GET_ORDER_BATCH_SIZE,\n });\n\n if (orders.length === 0) {\n hasMoreOrders = false;\n } else {\n allOrders.push(...orders);\n page++;\n }\n }\n\n return allOrders;\n });\n};\n","import { Duration, Schedule } from 'effect';\n\nexport const DEFAULT_TIMEOUT_MS = 30000;\nexport const API_BASE_URLS = {\n B2B: 'https://api-b2b.bigcommerce.com/api',\n REGULAR: 'https://api.bigcommerce.com/stores',\n} as const;\nexport const GET_ORDER_BATCH_SIZE = 250;\nexport const UPDATE_PRODUCT_BATCH_SIZE = 5;\nexport const UPDATE_INVENTORY_BATCH_SIZE = 2000;\nexport const UPDATE_INVENTORY_CONCURRENCY = 2;\nexport const DEFAULT_RETRY_TIMES = 2;\nexport const DEFAULT_RETRY_WAIT = 200;\nexport const DEFAULT_RETRY_SCHEDULE = Schedule.exponential(Duration.millis(DEFAULT_RETRY_WAIT));\nexport const RETRY_POLICY_WITH_BACKOFF = Schedule.exponential(\n Duration.millis(DEFAULT_RETRY_WAIT),\n 2,\n).pipe(Schedule.intersect(Schedule.recurs(DEFAULT_RETRY_TIMES)));\nexport const GET_CUSTOMERS_BATCH_SIZE = 100;\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>,\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>,\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 { API_BASE_URLS } 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 } 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.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 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>): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\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 `${API_BASE_URLS.B2B}/${version}/io/${path}`;\n }\n return `${API_BASE_URLS.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 { DEFAULT_TIMEOUT_MS } 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, string>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError, string>;\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(DEFAULT_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(DEFAULT_TIMEOUT_MS),\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 { AddressSchema } from '../../addresses/schemas/address.schema';\nimport { OrderStatusNameEnumSchema } from './status.schema';\n\nexport const OrderSchema = z.object({\n id: z.number(),\n customer_id: z.number(),\n date_created: z.string(),\n is_tax_inclusive_pricing: z.boolean(),\n date_modified: z.string(),\n date_shipped: z.string(),\n status_id: z.number(),\n status: OrderStatusNameEnumSchema,\n subtotal_ex_tax: z.string(),\n subtotal_inc_tax: z.string(),\n subtotal_tax: z.string(),\n base_shipping_cost: z.string(),\n shipping_cost_ex_tax: z.string(),\n shipping_cost_inc_tax: z.string(),\n shipping_cost_tax: z.string(),\n shipping_cost_tax_class_id: z.number(),\n base_handling_cost: z.string(),\n handling_cost_ex_tax: z.string(),\n handling_cost_inc_tax: z.string(),\n handling_cost_tax: z.string(),\n handling_cost_tax_class_id: z.number(),\n base_wrapping_cost: z.string(),\n wrapping_cost_ex_tax: z.string(),\n wrapping_cost_inc_tax: z.string(),\n wrapping_cost_tax: z.string(),\n wrapping_cost_tax_class_id: z.number(),\n total_ex_tax: z.string(),\n total_inc_tax: z.string(),\n total_tax: z.string(),\n items_total: z.number(),\n items_shipped: z.number(),\n payment_method: z.string(),\n payment_provider_id: z.string(),\n payment_status: z.string(),\n refunded_amount: z.string(),\n order_is_digital: z.boolean(),\n store_credit_amount: z.string(),\n gift_certificate_amount: z.string(),\n ip_address: z.string(),\n ip_address_v6: z.string(),\n geoip_country: z.string(),\n geoip_country_iso2: z.string(),\n currency_id: z.number(),\n currency_code: z.string(),\n currency_exchange_rate: z.string(),\n default_currency_id: z.number(),\n default_currency_code: z.string(),\n staff_notes: z.string(),\n customer_message: z.string(),\n discount_amount: z.string(),\n coupon_discount: z.string(),\n shipping_address_count: z.number(),\n is_deleted: z.boolean(),\n ebay_order_id: z.string(),\n cart_id: z.string(),\n billing_address: AddressSchema,\n is_email_opt_in: z.boolean(),\n order_source: z.string(),\n channel_id: z.number(),\n external_source: z.string(),\n external_id: z.string().nullable(),\n tax_provider_id: z.string(),\n customer_locale: z.string(),\n external_order_id: z.string().nullable(),\n store_default_currency_code: z.string(),\n store_default_to_transactional_exchange_rate: z.string(),\n custom_status: z.string(),\n});\nexport type Order = z.output<typeof OrderSchema>;\n","import * as z from 'zod';\nimport { AddressFormFieldSchema } from './form-field.schema';\n\nexport const AddressSchema = z.object({\n first_name: z.string(),\n last_name: z.string(),\n company: z.string(),\n street_1: z.string(),\n street_2: z.string(),\n city: z.string(),\n state: z.string(),\n zip: z.string(),\n country: z.string(),\n country_iso2: z.string(),\n phone: z.string(),\n email: z.string(),\n form_fields: z.array(AddressFormFieldSchema),\n});\nexport type Address = z.output<typeof AddressSchema>;\n","import * as z from 'zod';\n\nexport const AddressFormFieldSchema = z.object({\n name: z.string(),\n value: z.string(),\n});\nexport type AddressFormField = z.output<typeof AddressFormFieldSchema>;\n","import * as z from 'zod';\nexport const OrderStatusNameEnumSchema = z.enum([\n 'Incomplete',\n 'Pending',\n 'Shipped',\n 'Partially Shipped',\n 'Refunded',\n 'Cancelled',\n 'Declined',\n 'Awaiting Payment',\n 'Awaiting Pickup',\n 'Awaiting Shipment',\n 'Completed',\n 'Awaiting Fulfillment',\n 'Manual Verification Required',\n 'Disputed',\n 'Partially Refunded',\n]);\nexport enum OrderStatusEnum {\n Incomplete = 0,\n Pending = 1,\n Shipped = 2,\n PartiallyShipped = 3,\n Refunded = 4,\n Cancelled = 5,\n Declined = 6,\n AwaitingPayment = 7,\n AwaitingPickup = 8,\n AwaitingShipment = 9,\n Completed = 10,\n AwaitingFulfillment = 11,\n ManualVerificationRequired = 12,\n Disputed = 13,\n PartiallyRefunded = 14,\n}\nexport const OrderStatusSchema = z.enum(OrderStatusEnum);\n\nexport type OrderStatusName = z.output<typeof OrderStatusNameEnumSchema>;\nexport type OrderStatus = z.output<typeof OrderStatusSchema>;\n","import * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../../constants';\n\nexport const FindOrdersCriteriaSchema = z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n status_id: z.number().optional(),\n cart_id: z.string().optional(),\n payment_method: z.string().optional(),\n min_date_created: z.iso.datetime({ offset: true }).optional(),\n max_date_created: z.iso.datetime({ offset: true }).optional(),\n min_date_modified: z.iso.datetime({ offset: true }).optional(),\n max_date_modified: z.iso.datetime({ offset: true }).optional(),\n page: z.number().min(1).optional(),\n limit: z.number().min(1).max(GET_ORDER_BATCH_SIZE).optional(),\n // Allowed: id | customer_id | date_created | date_modified | status_id | channel_id | external_id;\n sort: z.string().optional(),\n channel_id: z.int().optional(),\n});\n\nexport type FindOrdersCriteriaInput = z.input<typeof FindOrdersCriteriaSchema>;\n","import { Effect } from 'effect';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderSchema } from './schemas';\n\nexport const getOrder = (orderId: string) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* fetcher.fetch({\n isB2B: false,\n method: 'GET',\n path: `orders/${orderId}`,\n resultSchema: OrderSchema,\n version: 'v2',\n });\n });\n};\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderProductSchema, type OrderProduct } from './schemas/order-product.schema';\nconst getOrderProducts = ({\n orderId,\n limit = GET_ORDER_BATCH_SIZE,\n page,\n}: {\n orderId: number;\n limit?: number;\n page: number;\n}) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* fetcher.fetch({\n method: 'GET',\n path: `orders/${orderId}/products`,\n isB2B: false,\n version: 'v2',\n resultSchema: z.union([z.array(OrderProductSchema), z.literal(''), z.literal(null)]),\n query: {\n limit: `${limit}`,\n page: `${page}`,\n },\n });\n }).pipe(Effect.map((arr) => arr || []));\n};\n\nexport const getAllOrderProducts = (orderId: number) => {\n return Effect.gen(function* () {\n const all: OrderProduct[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const result = yield* getOrderProducts({\n orderId,\n page,\n limit: GET_ORDER_BATCH_SIZE,\n });\n\n if (result.length) {\n all.push(...result);\n page++;\n } else {\n hasMore = false;\n }\n }\n\n return all;\n });\n};\n","import * as z from 'zod';\nexport const OrderProductSchema = z.object({\n id: z.int(),\n order_id: z.int(),\n product_id: z.int(),\n variant_id: z.int(),\n order_address_id: z.int(),\n sku: z.string(),\n type: z.enum(['physical', 'digital']),\n base_price: z.coerce.number(),\n price_ex_tax: z.coerce.number(),\n price_inc_tax: z.coerce.number(),\n price_tax: z.coerce.number(),\n base_total: z.coerce.number(),\n total_ex_tax: z.coerce.number(),\n total_inc_tax: z.coerce.number(),\n total_tax: z.coerce.number(),\n weight: z.coerce.number(),\n width: z.coerce.number(),\n height: z.coerce.number(),\n depth: z.coerce.number(),\n quantity: z.int(),\n base_cost_price: z.coerce.number(),\n cost_price_inc_tax: z.coerce.number(),\n cost_price_ex_tax: z.coerce.number(),\n cost_price_tax: z.coerce.number(),\n});\n\nexport type OrderProduct = z.output<typeof OrderProductSchema>;\n"],"mappings":"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","names":["import_effect","z","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","z","z","z","OrderStatusEnum","z","import_effect","import_effect","z","z"]}
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/orders/index.ts","../src/bigcommerce-entities/orders/find-orders.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/orders/schemas/order.schema.ts","../src/bigcommerce-entities/addresses/schemas/address.schema.ts","../src/bigcommerce-entities/addresses/schemas/form-field.schema.ts","../src/bigcommerce-entities/orders/schemas/status.schema.ts","../src/bigcommerce-entities/orders/schemas/find-orders.criteria.ts","../src/bigcommerce-entities/orders/get-order.ts","../src/bigcommerce-entities/orders/get-products.ts","../src/bigcommerce-entities/orders/schemas/order-product.schema.ts"],"sourcesContent":["export * from './find-orders';\nexport * from './get-order';\nexport * from './get-products';\nexport * from './schemas';\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { OrderSchema } from './schemas';\nimport { FindOrdersCriteriaSchema } from './schemas/find-orders.criteria';\n\nconst OrderArraySchema = z.union([z.array(OrderSchema), z.literal(''), z.literal(null)]);\n\nexport const findOrders = (criteria?: z.input<typeof FindOrdersCriteriaSchema>) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedResponse = yield* validateInput(FindOrdersCriteriaSchema, criteria ?? {});\n const query: Record<string, string> = {};\n for (const [key, value] of Object.entries(validatedResponse)) {\n if (value !== undefined) {\n query[key] = `${value}`;\n }\n }\n const orders = yield* fetcher.fetch({\n query,\n isB2B: false,\n method: 'GET',\n path: 'orders',\n version: 'v2',\n resultSchema: OrderArraySchema,\n });\n return orders || [];\n });\n};\n\nexport const getAllOrdersBy = (\n criteria: Omit<z.input<typeof FindOrdersCriteriaSchema>, 'page' | 'limit'>,\n) => {\n return Effect.gen(function* () {\n const allOrders: z.output<typeof OrderSchema>[] = [];\n let page = 1;\n let hasMoreOrders = true;\n\n while (hasMoreOrders) {\n const orders = yield* findOrders({\n ...criteria,\n page,\n limit: GET_ORDER_BATCH_SIZE,\n });\n\n if (orders.length === 0) {\n hasMoreOrders = false;\n } else {\n allOrders.push(...orders);\n page++;\n }\n }\n\n return allOrders;\n });\n};\n","import { Duration, Schedule } from 'effect';\n\nexport const DEFAULT_TIMEOUT_MS = 30000;\nexport const API_BASE_URLS = {\n B2B: 'https://api-b2b.bigcommerce.com/api',\n REGULAR: 'https://api.bigcommerce.com/stores',\n} as const;\nexport const GET_ORDER_BATCH_SIZE = 250;\nexport const UPDATE_PRODUCT_BATCH_SIZE = 5;\nexport const UPDATE_INVENTORY_BATCH_SIZE = 2000;\nexport const UPDATE_INVENTORY_CONCURRENCY = 2;\nexport const DEFAULT_RETRY_TIMES = 2;\nexport const DEFAULT_RETRY_WAIT = 200;\nexport const DEFAULT_RETRY_SCHEDULE = Schedule.exponential(Duration.millis(DEFAULT_RETRY_WAIT));\nexport const RETRY_POLICY_WITH_BACKOFF = Schedule.exponential(\n Duration.millis(DEFAULT_RETRY_WAIT),\n 2,\n).pipe(Schedule.intersect(Schedule.recurs(DEFAULT_RETRY_TIMES)));\nexport const GET_CUSTOMERS_BATCH_SIZE = 100;\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>,\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>,\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 { API_BASE_URLS } 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 } 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.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 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>): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\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 `${API_BASE_URLS.B2B}/${version}/io/${path}`;\n }\n return `${API_BASE_URLS.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 { DEFAULT_TIMEOUT_MS } 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, string>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError, string>;\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(DEFAULT_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(DEFAULT_TIMEOUT_MS),\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 { AddressSchema } from '../../addresses/schemas/address.schema';\nimport { OrderStatusNameEnumSchema } from './status.schema';\n\nexport const OrderSchema = z.object({\n id: z.number(),\n customer_id: z.number(),\n date_created: z.string(),\n is_tax_inclusive_pricing: z.boolean(),\n date_modified: z.string(),\n date_shipped: z.string(),\n status_id: z.number(),\n status: OrderStatusNameEnumSchema,\n subtotal_ex_tax: z.string(),\n subtotal_inc_tax: z.string(),\n subtotal_tax: z.string(),\n base_shipping_cost: z.string(),\n shipping_cost_ex_tax: z.string(),\n shipping_cost_inc_tax: z.string(),\n shipping_cost_tax: z.string(),\n shipping_cost_tax_class_id: z.number(),\n base_handling_cost: z.string(),\n handling_cost_ex_tax: z.string(),\n handling_cost_inc_tax: z.string(),\n handling_cost_tax: z.string(),\n handling_cost_tax_class_id: z.number(),\n base_wrapping_cost: z.string(),\n wrapping_cost_ex_tax: z.string(),\n wrapping_cost_inc_tax: z.string(),\n wrapping_cost_tax: z.string(),\n wrapping_cost_tax_class_id: z.number(),\n total_ex_tax: z.string(),\n total_inc_tax: z.string(),\n total_tax: z.string(),\n items_total: z.number(),\n items_shipped: z.number(),\n payment_method: z.string(),\n payment_provider_id: z.string(),\n payment_status: z.string(),\n refunded_amount: z.string(),\n order_is_digital: z.boolean(),\n store_credit_amount: z.string(),\n gift_certificate_amount: z.string(),\n ip_address: z.string(),\n ip_address_v6: z.string(),\n geoip_country: z.string(),\n geoip_country_iso2: z.string(),\n currency_id: z.number(),\n currency_code: z.string(),\n currency_exchange_rate: z.string(),\n default_currency_id: z.number(),\n default_currency_code: z.string(),\n staff_notes: z.string(),\n customer_message: z.string(),\n discount_amount: z.string(),\n coupon_discount: z.string(),\n shipping_address_count: z.number(),\n is_deleted: z.boolean(),\n ebay_order_id: z.string(),\n cart_id: z.string(),\n billing_address: AddressSchema,\n is_email_opt_in: z.boolean(),\n order_source: z.string(),\n channel_id: z.number(),\n external_source: z.string(),\n external_id: z.string().nullable(),\n tax_provider_id: z.string(),\n customer_locale: z.string(),\n external_order_id: z.string().nullable(),\n store_default_currency_code: z.string(),\n store_default_to_transactional_exchange_rate: z.string(),\n custom_status: z.string(),\n});\n","import * as z from 'zod';\nimport { AddressFormFieldSchema } from './form-field.schema';\n\nexport const AddressSchema = z.object({\n first_name: z.string(),\n last_name: z.string(),\n company: z.string(),\n street_1: z.string(),\n street_2: z.string(),\n city: z.string(),\n state: z.string(),\n zip: z.string(),\n country: z.string(),\n country_iso2: z.string(),\n phone: z.string(),\n email: z.string(),\n form_fields: z.array(AddressFormFieldSchema),\n});\n","import * as z from 'zod';\n\nexport const AddressFormFieldSchema = z.object({\n name: z.string(),\n value: z.string(),\n});\n","import * as z from 'zod';\nexport const OrderStatusNameEnumSchema = z.enum([\n 'Incomplete',\n 'Pending',\n 'Shipped',\n 'Partially Shipped',\n 'Refunded',\n 'Cancelled',\n 'Declined',\n 'Awaiting Payment',\n 'Awaiting Pickup',\n 'Awaiting Shipment',\n 'Completed',\n 'Awaiting Fulfillment',\n 'Manual Verification Required',\n 'Disputed',\n 'Partially Refunded',\n]);\nexport enum OrderStatusEnum {\n Incomplete = 0,\n Pending = 1,\n Shipped = 2,\n PartiallyShipped = 3,\n Refunded = 4,\n Cancelled = 5,\n Declined = 6,\n AwaitingPayment = 7,\n AwaitingPickup = 8,\n AwaitingShipment = 9,\n Completed = 10,\n AwaitingFulfillment = 11,\n ManualVerificationRequired = 12,\n Disputed = 13,\n PartiallyRefunded = 14,\n}\nexport const OrderStatusSchema = z.enum(OrderStatusEnum);\n","import * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../../constants';\n\nexport const FindOrdersCriteriaSchema = z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n status_id: z.number().optional(),\n cart_id: z.string().optional(),\n payment_method: z.string().optional(),\n min_date_created: z.iso.datetime({ offset: true }).optional(),\n max_date_created: z.iso.datetime({ offset: true }).optional(),\n min_date_modified: z.iso.datetime({ offset: true }).optional(),\n max_date_modified: z.iso.datetime({ offset: true }).optional(),\n page: z.number().min(1).optional(),\n limit: z.number().min(1).max(GET_ORDER_BATCH_SIZE).optional(),\n // Allowed: id | customer_id | date_created | date_modified | status_id | channel_id | external_id;\n sort: z.string().optional(),\n channel_id: z.int().optional(),\n});\n","import { Effect } from 'effect';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderSchema } from './schemas';\n\nexport const getOrder = (orderId: string) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* fetcher.fetch({\n isB2B: false,\n method: 'GET',\n path: `orders/${orderId}`,\n resultSchema: OrderSchema,\n version: 'v2',\n });\n });\n};\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderProductSchema } from './schemas/order-product.schema';\nconst getOrderProducts = ({\n orderId,\n limit = GET_ORDER_BATCH_SIZE,\n page,\n}: {\n orderId: number;\n limit?: number;\n page: number;\n}) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* fetcher.fetch({\n method: 'GET',\n path: `orders/${orderId}/products`,\n isB2B: false,\n version: 'v2',\n resultSchema: z.union([z.array(OrderProductSchema), z.literal(''), z.literal(null)]),\n query: {\n limit: `${limit}`,\n page: `${page}`,\n },\n });\n }).pipe(Effect.map((arr) => arr || []));\n};\n\nexport const getAllOrderProducts = (orderId: number) => {\n return Effect.gen(function* () {\n const all: z.output<typeof OrderProductSchema>[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const result = yield* getOrderProducts({\n orderId,\n page,\n limit: GET_ORDER_BATCH_SIZE,\n });\n\n if (result.length) {\n all.push(...result);\n page++;\n } else {\n hasMore = false;\n }\n }\n\n return all;\n });\n};\n","import * as z from 'zod';\nexport const OrderProductSchema = z.object({\n id: z.int(),\n order_id: z.int(),\n product_id: z.int(),\n variant_id: z.int(),\n order_address_id: z.int(),\n sku: z.string(),\n type: z.enum(['physical', 'digital']),\n base_price: z.coerce.number(),\n price_ex_tax: z.coerce.number(),\n price_inc_tax: z.coerce.number(),\n price_tax: z.coerce.number(),\n base_total: z.coerce.number(),\n total_ex_tax: z.coerce.number(),\n total_inc_tax: z.coerce.number(),\n total_tax: z.coerce.number(),\n weight: z.coerce.number(),\n width: z.coerce.number(),\n height: z.coerce.number(),\n depth: z.coerce.number(),\n quantity: z.int(),\n base_cost_price: z.coerce.number(),\n cost_price_inc_tax: z.coerce.number(),\n cost_price_ex_tax: z.coerce.number(),\n cost_price_tax: z.coerce.number(),\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,iBAAuB;AACvB,IAAAC,KAAmB;;;ACDnB,oBAAmC;AAE5B,IAAM,qBAAqB;AAC3B,IAAM,gBAAgB;AAAA,EAC3B,KAAK;AAAA,EACL,SAAS;AACX;AACO,IAAM,uBAAuB;AAI7B,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB,uBAAS,YAAY,uBAAS,OAAO,kBAAkB,CAAC;AACvF,IAAM,4BAA4B,uBAAS;AAAA,EAChD,uBAAS,OAAO,kBAAkB;AAAA,EAClC;AACF,EAAE,KAAK,uBAAS,UAAU,uBAAS,OAAO,mBAAmB,CAAC,CAAC;;;ACjB/D,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,kBAAkB,CAAC;AAAA,EACxD;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,kBAAkB;AAC/C,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,yBAAyB,qBAAM;AAAA,EAC1C;AAAA,EACA,sBAAO,IAAI,aAAa;AACtB,UAAM,SAAS,OAAO;AACtB,UAAM,YAAY,OAAO,OAAO;AAChC,UAAM,cAAc,OAAO,OAAO;AAClC,UAAM,UAAU,OAAO,OAAO;AAC9B,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,WAAkD;AAClF,QAAM,OAAO,IAAI,IAAI,GAAG;AACxB,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,SAAK,aAAa,OAAO,KAAK,GAAG,KAAK,EAAE;AAAA,EAC1C;AACA,SAAO;AACT;AAEA,IAAM,UAAU,CAAC;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,MAIc;AACZ,MAAI,OAAO;AACT,WAAO,GAAG,cAAc,GAAG,IAAI,OAAO,OAAO,IAAI;AAAA,EACnD;AACA,SAAO,GAAG,cAAc,OAAO,gBAAgB,OAAO,IAAI,IAAI;AAChE;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;;;AEnLA,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,IAAAC,KAAmB;;;ACAnB,IAAAC,KAAmB;;;ACAnB,QAAmB;AAEZ,IAAM,yBAA2B,SAAO;AAAA,EAC7C,MAAQ,SAAO;AAAA,EACf,OAAS,SAAO;AAClB,CAAC;;;ADFM,IAAM,gBAAkB,UAAO;AAAA,EACpC,YAAc,UAAO;AAAA,EACrB,WAAa,UAAO;AAAA,EACpB,SAAW,UAAO;AAAA,EAClB,UAAY,UAAO;AAAA,EACnB,UAAY,UAAO;AAAA,EACnB,MAAQ,UAAO;AAAA,EACf,OAAS,UAAO;AAAA,EAChB,KAAO,UAAO;AAAA,EACd,SAAW,UAAO;AAAA,EAClB,cAAgB,UAAO;AAAA,EACvB,OAAS,UAAO;AAAA,EAChB,OAAS,UAAO;AAAA,EAChB,aAAe,SAAM,sBAAsB;AAC7C,CAAC;;;AEjBD,IAAAC,KAAmB;AACZ,IAAM,4BAA8B,QAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAK,kBAAL,kBAAKC,qBAAL;AACL,EAAAA,kCAAA,gBAAa,KAAb;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,sBAAmB,KAAnB;AACA,EAAAA,kCAAA,cAAW,KAAX;AACA,EAAAA,kCAAA,eAAY,KAAZ;AACA,EAAAA,kCAAA,cAAW,KAAX;AACA,EAAAA,kCAAA,qBAAkB,KAAlB;AACA,EAAAA,kCAAA,oBAAiB,KAAjB;AACA,EAAAA,kCAAA,sBAAmB,KAAnB;AACA,EAAAA,kCAAA,eAAY,MAAZ;AACA,EAAAA,kCAAA,yBAAsB,MAAtB;AACA,EAAAA,kCAAA,gCAA6B,MAA7B;AACA,EAAAA,kCAAA,cAAW,MAAX;AACA,EAAAA,kCAAA,uBAAoB,MAApB;AAfU,SAAAA;AAAA,GAAA;AAiBL,IAAM,oBAAsB,QAAK,eAAe;;;AH/BhD,IAAM,cAAgB,UAAO;AAAA,EAClC,IAAM,UAAO;AAAA,EACb,aAAe,UAAO;AAAA,EACtB,cAAgB,UAAO;AAAA,EACvB,0BAA4B,WAAQ;AAAA,EACpC,eAAiB,UAAO;AAAA,EACxB,cAAgB,UAAO;AAAA,EACvB,WAAa,UAAO;AAAA,EACpB,QAAQ;AAAA,EACR,iBAAmB,UAAO;AAAA,EAC1B,kBAAoB,UAAO;AAAA,EAC3B,cAAgB,UAAO;AAAA,EACvB,oBAAsB,UAAO;AAAA,EAC7B,sBAAwB,UAAO;AAAA,EAC/B,uBAAyB,UAAO;AAAA,EAChC,mBAAqB,UAAO;AAAA,EAC5B,4BAA8B,UAAO;AAAA,EACrC,oBAAsB,UAAO;AAAA,EAC7B,sBAAwB,UAAO;AAAA,EAC/B,uBAAyB,UAAO;AAAA,EAChC,mBAAqB,UAAO;AAAA,EAC5B,4BAA8B,UAAO;AAAA,EACrC,oBAAsB,UAAO;AAAA,EAC7B,sBAAwB,UAAO;AAAA,EAC/B,uBAAyB,UAAO;AAAA,EAChC,mBAAqB,UAAO;AAAA,EAC5B,4BAA8B,UAAO;AAAA,EACrC,cAAgB,UAAO;AAAA,EACvB,eAAiB,UAAO;AAAA,EACxB,WAAa,UAAO;AAAA,EACpB,aAAe,UAAO;AAAA,EACtB,eAAiB,UAAO;AAAA,EACxB,gBAAkB,UAAO;AAAA,EACzB,qBAAuB,UAAO;AAAA,EAC9B,gBAAkB,UAAO;AAAA,EACzB,iBAAmB,UAAO;AAAA,EAC1B,kBAAoB,WAAQ;AAAA,EAC5B,qBAAuB,UAAO;AAAA,EAC9B,yBAA2B,UAAO;AAAA,EAClC,YAAc,UAAO;AAAA,EACrB,eAAiB,UAAO;AAAA,EACxB,eAAiB,UAAO;AAAA,EACxB,oBAAsB,UAAO;AAAA,EAC7B,aAAe,UAAO;AAAA,EACtB,eAAiB,UAAO;AAAA,EACxB,wBAA0B,UAAO;AAAA,EACjC,qBAAuB,UAAO;AAAA,EAC9B,uBAAyB,UAAO;AAAA,EAChC,aAAe,UAAO;AAAA,EACtB,kBAAoB,UAAO;AAAA,EAC3B,iBAAmB,UAAO;AAAA,EAC1B,iBAAmB,UAAO;AAAA,EAC1B,wBAA0B,UAAO;AAAA,EACjC,YAAc,WAAQ;AAAA,EACtB,eAAiB,UAAO;AAAA,EACxB,SAAW,UAAO;AAAA,EAClB,iBAAiB;AAAA,EACjB,iBAAmB,WAAQ;AAAA,EAC3B,cAAgB,UAAO;AAAA,EACvB,YAAc,UAAO;AAAA,EACrB,iBAAmB,UAAO;AAAA,EAC1B,aAAe,UAAO,EAAE,SAAS;AAAA,EACjC,iBAAmB,UAAO;AAAA,EAC1B,iBAAmB,UAAO;AAAA,EAC1B,mBAAqB,UAAO,EAAE,SAAS;AAAA,EACvC,6BAA+B,UAAO;AAAA,EACtC,8CAAgD,UAAO;AAAA,EACvD,eAAiB,UAAO;AAC1B,CAAC;;;AIxED,IAAAC,KAAmB;AAGZ,IAAM,2BAA6B,UAAO;AAAA,EAC/C,aAAe,UAAO,EAAE,SAAS;AAAA,EACjC,OAAS,UAAO,EAAE,SAAS;AAAA,EAC3B,WAAa,UAAO,EAAE,SAAS;AAAA,EAC/B,SAAW,UAAO,EAAE,SAAS;AAAA,EAC7B,gBAAkB,UAAO,EAAE,SAAS;AAAA,EACpC,kBAAoB,OAAI,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAC5D,kBAAoB,OAAI,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAC5D,mBAAqB,OAAI,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAC7D,mBAAqB,OAAI,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAC7D,MAAQ,UAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACjC,OAAS,UAAO,EAAE,IAAI,CAAC,EAAE,IAAI,oBAAoB,EAAE,SAAS;AAAA;AAAA,EAE5D,MAAQ,UAAO,EAAE,SAAS;AAAA,EAC1B,YAAc,OAAI,EAAE,SAAS;AAC/B,CAAC;;;AZVD,IAAM,mBAAqB,SAAM,CAAG,SAAM,WAAW,GAAK,WAAQ,EAAE,GAAK,WAAQ,IAAI,CAAC,CAAC;AAEhF,IAAM,aAAa,CAAC,aAAwD;AACjF,SAAO,sBAAO,IAAI,aAAa;AAC7B,UAAM,UAAU,OAAO;AACvB,UAAM,oBAAoB,OAAO,cAAc,0BAA0B,YAAY,CAAC,CAAC;AACvF,UAAM,QAAgC,CAAC;AACvC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,iBAAiB,GAAG;AAC5D,UAAI,UAAU,QAAW;AACvB,cAAM,GAAG,IAAI,GAAG,KAAK;AAAA,MACvB;AAAA,IACF;AACA,UAAM,SAAS,OAAO,QAAQ,MAAM;AAAA,MAClC;AAAA,MACA,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,cAAc;AAAA,IAChB,CAAC;AACD,WAAO,UAAU,CAAC;AAAA,EACpB,CAAC;AACH;AAEO,IAAM,iBAAiB,CAC5B,aACG;AACH,SAAO,sBAAO,IAAI,aAAa;AAC7B,UAAM,YAA4C,CAAC;AACnD,QAAI,OAAO;AACX,QAAI,gBAAgB;AAEpB,WAAO,eAAe;AACpB,YAAM,SAAS,OAAO,WAAW;AAAA,QAC/B,GAAG;AAAA,QACH;AAAA,QACA,OAAO;AAAA,MACT,CAAC;AAED,UAAI,OAAO,WAAW,GAAG;AACvB,wBAAgB;AAAA,MAClB,OAAO;AACL,kBAAU,KAAK,GAAG,MAAM;AACxB;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT,CAAC;AACH;;;AazDA,IAAAC,iBAAuB;AAIhB,IAAM,WAAW,CAAC,YAAoB;AAC3C,SAAO,sBAAO,IAAI,aAAa;AAC7B,UAAM,UAAU,OAAO;AACvB,WAAO,OAAO,QAAQ,MAAM;AAAA,MAC1B,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM,UAAU,OAAO;AAAA,MACvB,cAAc;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,EACH,CAAC;AACH;;;ACfA,IAAAC,kBAAuB;AACvB,IAAAC,KAAmB;;;ACDnB,IAAAC,KAAmB;AACZ,IAAM,qBAAuB,UAAO;AAAA,EACzC,IAAM,OAAI;AAAA,EACV,UAAY,OAAI;AAAA,EAChB,YAAc,OAAI;AAAA,EAClB,YAAc,OAAI;AAAA,EAClB,kBAAoB,OAAI;AAAA,EACxB,KAAO,UAAO;AAAA,EACd,MAAQ,QAAK,CAAC,YAAY,SAAS,CAAC;AAAA,EACpC,YAAc,UAAO,OAAO;AAAA,EAC5B,cAAgB,UAAO,OAAO;AAAA,EAC9B,eAAiB,UAAO,OAAO;AAAA,EAC/B,WAAa,UAAO,OAAO;AAAA,EAC3B,YAAc,UAAO,OAAO;AAAA,EAC5B,cAAgB,UAAO,OAAO;AAAA,EAC9B,eAAiB,UAAO,OAAO;AAAA,EAC/B,WAAa,UAAO,OAAO;AAAA,EAC3B,QAAU,UAAO,OAAO;AAAA,EACxB,OAAS,UAAO,OAAO;AAAA,EACvB,QAAU,UAAO,OAAO;AAAA,EACxB,OAAS,UAAO,OAAO;AAAA,EACvB,UAAY,OAAI;AAAA,EAChB,iBAAmB,UAAO,OAAO;AAAA,EACjC,oBAAsB,UAAO,OAAO;AAAA,EACpC,mBAAqB,UAAO,OAAO;AAAA,EACnC,gBAAkB,UAAO,OAAO;AAClC,CAAC;;;ADrBD,IAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA,QAAQ;AAAA,EACR;AACF,MAIM;AACJ,SAAO,uBAAO,IAAI,aAAa;AAC7B,UAAM,UAAU,OAAO;AACvB,WAAO,OAAO,QAAQ,MAAM;AAAA,MAC1B,QAAQ;AAAA,MACR,MAAM,UAAU,OAAO;AAAA,MACvB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAgB,SAAM,CAAG,SAAM,kBAAkB,GAAK,WAAQ,EAAE,GAAK,WAAQ,IAAI,CAAC,CAAC;AAAA,MACnF,OAAO;AAAA,QACL,OAAO,GAAG,KAAK;AAAA,QACf,MAAM,GAAG,IAAI;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH,CAAC,EAAE,KAAK,uBAAO,IAAI,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC;AACxC;AAEO,IAAM,sBAAsB,CAAC,YAAoB;AACtD,SAAO,uBAAO,IAAI,aAAa;AAC7B,UAAM,MAA6C,CAAC;AACpD,QAAI,OAAO;AACX,QAAI,UAAU;AAEd,WAAO,SAAS;AACd,YAAM,SAAS,OAAO,iBAAiB;AAAA,QACrC;AAAA,QACA;AAAA,QACA,OAAO;AAAA,MACT,CAAC;AAED,UAAI,OAAO,QAAQ;AACjB,YAAI,KAAK,GAAG,MAAM;AAClB;AAAA,MACF,OAAO;AACL,kBAAU;AAAA,MACZ;AAAA,IACF;AAEA,WAAO;AAAA,EACT,CAAC;AACH;","names":["import_effect","z","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","z","z","z","OrderStatusEnum","z","import_effect","import_effect","z","z"]}
|
package/dist/orders.mjs
CHANGED
|
@@ -6,8 +6,10 @@ import {
|
|
|
6
6
|
GET_ORDER_BATCH_SIZE
|
|
7
7
|
} from "./chunk-7GBRYAQG.mjs";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
OrderStatusEnum,
|
|
10
|
+
OrderStatusNameEnumSchema,
|
|
11
|
+
OrderStatusSchema
|
|
12
|
+
} from "./chunk-XONZC4AG.mjs";
|
|
11
13
|
|
|
12
14
|
// src/bigcommerce-entities/orders/find-orders.ts
|
|
13
15
|
import { Effect } from "effect";
|
|
@@ -270,6 +272,9 @@ var getAllOrderProducts = (orderId) => {
|
|
|
270
272
|
};
|
|
271
273
|
export {
|
|
272
274
|
OrderSchema,
|
|
275
|
+
OrderStatusEnum,
|
|
276
|
+
OrderStatusNameEnumSchema,
|
|
277
|
+
OrderStatusSchema,
|
|
273
278
|
findOrders,
|
|
274
279
|
getAllOrderProducts,
|
|
275
280
|
getAllOrdersBy,
|
package/dist/orders.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/orders/find-orders.ts","../src/bigcommerce-entities/orders/schemas/order.schema.ts","../src/bigcommerce-entities/addresses/schemas/address.schema.ts","../src/bigcommerce-entities/addresses/schemas/form-field.schema.ts","../src/bigcommerce-entities/orders/schemas/find-orders.criteria.ts","../src/bigcommerce-entities/orders/get-order.ts","../src/bigcommerce-entities/orders/get-products.ts","../src/bigcommerce-entities/orders/schemas/order-product.schema.ts"],"sourcesContent":["import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { OrderSchema, type Order } from './schemas';\nimport {\n FindOrdersCriteriaSchema,\n type FindOrdersCriteriaInput,\n} from './schemas/find-orders.criteria';\n\nconst OrderArraySchema = z.union([z.array(OrderSchema), z.literal(''), z.literal(null)]);\n\nexport const findOrders = (criteria?: FindOrdersCriteriaInput) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedResponse = yield* validateInput(FindOrdersCriteriaSchema, criteria ?? {});\n const query: Record<string, string> = {};\n for (const [key, value] of Object.entries(validatedResponse)) {\n if (value !== undefined) {\n query[key] = `${value}`;\n }\n }\n const orders = yield* fetcher.fetch({\n query,\n isB2B: false,\n method: 'GET',\n path: 'orders',\n version: 'v2',\n resultSchema: OrderArraySchema,\n });\n return orders || [];\n });\n};\n\nexport const getAllOrdersBy = (criteria: Omit<FindOrdersCriteriaInput, 'page' | 'limit'>) => {\n return Effect.gen(function* () {\n const allOrders: Order[] = [];\n let page = 1;\n let hasMoreOrders = true;\n\n while (hasMoreOrders) {\n const orders = yield* findOrders({\n ...criteria,\n page,\n limit: GET_ORDER_BATCH_SIZE,\n });\n\n if (orders.length === 0) {\n hasMoreOrders = false;\n } else {\n allOrders.push(...orders);\n page++;\n }\n }\n\n return allOrders;\n });\n};\n","import * as z from 'zod';\nimport { AddressSchema } from '../../addresses/schemas/address.schema';\nimport { OrderStatusNameEnumSchema } from './status.schema';\n\nexport const OrderSchema = z.object({\n id: z.number(),\n customer_id: z.number(),\n date_created: z.string(),\n is_tax_inclusive_pricing: z.boolean(),\n date_modified: z.string(),\n date_shipped: z.string(),\n status_id: z.number(),\n status: OrderStatusNameEnumSchema,\n subtotal_ex_tax: z.string(),\n subtotal_inc_tax: z.string(),\n subtotal_tax: z.string(),\n base_shipping_cost: z.string(),\n shipping_cost_ex_tax: z.string(),\n shipping_cost_inc_tax: z.string(),\n shipping_cost_tax: z.string(),\n shipping_cost_tax_class_id: z.number(),\n base_handling_cost: z.string(),\n handling_cost_ex_tax: z.string(),\n handling_cost_inc_tax: z.string(),\n handling_cost_tax: z.string(),\n handling_cost_tax_class_id: z.number(),\n base_wrapping_cost: z.string(),\n wrapping_cost_ex_tax: z.string(),\n wrapping_cost_inc_tax: z.string(),\n wrapping_cost_tax: z.string(),\n wrapping_cost_tax_class_id: z.number(),\n total_ex_tax: z.string(),\n total_inc_tax: z.string(),\n total_tax: z.string(),\n items_total: z.number(),\n items_shipped: z.number(),\n payment_method: z.string(),\n payment_provider_id: z.string(),\n payment_status: z.string(),\n refunded_amount: z.string(),\n order_is_digital: z.boolean(),\n store_credit_amount: z.string(),\n gift_certificate_amount: z.string(),\n ip_address: z.string(),\n ip_address_v6: z.string(),\n geoip_country: z.string(),\n geoip_country_iso2: z.string(),\n currency_id: z.number(),\n currency_code: z.string(),\n currency_exchange_rate: z.string(),\n default_currency_id: z.number(),\n default_currency_code: z.string(),\n staff_notes: z.string(),\n customer_message: z.string(),\n discount_amount: z.string(),\n coupon_discount: z.string(),\n shipping_address_count: z.number(),\n is_deleted: z.boolean(),\n ebay_order_id: z.string(),\n cart_id: z.string(),\n billing_address: AddressSchema,\n is_email_opt_in: z.boolean(),\n order_source: z.string(),\n channel_id: z.number(),\n external_source: z.string(),\n external_id: z.string().nullable(),\n tax_provider_id: z.string(),\n customer_locale: z.string(),\n external_order_id: z.string().nullable(),\n store_default_currency_code: z.string(),\n store_default_to_transactional_exchange_rate: z.string(),\n custom_status: z.string(),\n});\nexport type Order = z.output<typeof OrderSchema>;\n","import * as z from 'zod';\nimport { AddressFormFieldSchema } from './form-field.schema';\n\nexport const AddressSchema = z.object({\n first_name: z.string(),\n last_name: z.string(),\n company: z.string(),\n street_1: z.string(),\n street_2: z.string(),\n city: z.string(),\n state: z.string(),\n zip: z.string(),\n country: z.string(),\n country_iso2: z.string(),\n phone: z.string(),\n email: z.string(),\n form_fields: z.array(AddressFormFieldSchema),\n});\nexport type Address = z.output<typeof AddressSchema>;\n","import * as z from 'zod';\n\nexport const AddressFormFieldSchema = z.object({\n name: z.string(),\n value: z.string(),\n});\nexport type AddressFormField = z.output<typeof AddressFormFieldSchema>;\n","import * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../../constants';\n\nexport const FindOrdersCriteriaSchema = z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n status_id: z.number().optional(),\n cart_id: z.string().optional(),\n payment_method: z.string().optional(),\n min_date_created: z.iso.datetime({ offset: true }).optional(),\n max_date_created: z.iso.datetime({ offset: true }).optional(),\n min_date_modified: z.iso.datetime({ offset: true }).optional(),\n max_date_modified: z.iso.datetime({ offset: true }).optional(),\n page: z.number().min(1).optional(),\n limit: z.number().min(1).max(GET_ORDER_BATCH_SIZE).optional(),\n // Allowed: id | customer_id | date_created | date_modified | status_id | channel_id | external_id;\n sort: z.string().optional(),\n channel_id: z.int().optional(),\n});\n\nexport type FindOrdersCriteriaInput = z.input<typeof FindOrdersCriteriaSchema>;\n","import { Effect } from 'effect';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderSchema } from './schemas';\n\nexport const getOrder = (orderId: string) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* fetcher.fetch({\n isB2B: false,\n method: 'GET',\n path: `orders/${orderId}`,\n resultSchema: OrderSchema,\n version: 'v2',\n });\n });\n};\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderProductSchema, type OrderProduct } from './schemas/order-product.schema';\nconst getOrderProducts = ({\n orderId,\n limit = GET_ORDER_BATCH_SIZE,\n page,\n}: {\n orderId: number;\n limit?: number;\n page: number;\n}) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* fetcher.fetch({\n method: 'GET',\n path: `orders/${orderId}/products`,\n isB2B: false,\n version: 'v2',\n resultSchema: z.union([z.array(OrderProductSchema), z.literal(''), z.literal(null)]),\n query: {\n limit: `${limit}`,\n page: `${page}`,\n },\n });\n }).pipe(Effect.map((arr) => arr || []));\n};\n\nexport const getAllOrderProducts = (orderId: number) => {\n return Effect.gen(function* () {\n const all: OrderProduct[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const result = yield* getOrderProducts({\n orderId,\n page,\n limit: GET_ORDER_BATCH_SIZE,\n });\n\n if (result.length) {\n all.push(...result);\n page++;\n } else {\n hasMore = false;\n }\n }\n\n return all;\n });\n};\n","import * as z from 'zod';\nexport const OrderProductSchema = z.object({\n id: z.int(),\n order_id: z.int(),\n product_id: z.int(),\n variant_id: z.int(),\n order_address_id: z.int(),\n sku: z.string(),\n type: z.enum(['physical', 'digital']),\n base_price: z.coerce.number(),\n price_ex_tax: z.coerce.number(),\n price_inc_tax: z.coerce.number(),\n price_tax: z.coerce.number(),\n base_total: z.coerce.number(),\n total_ex_tax: z.coerce.number(),\n total_inc_tax: z.coerce.number(),\n total_tax: z.coerce.number(),\n weight: z.coerce.number(),\n width: z.coerce.number(),\n height: z.coerce.number(),\n depth: z.coerce.number(),\n quantity: z.int(),\n base_cost_price: z.coerce.number(),\n cost_price_inc_tax: z.coerce.number(),\n cost_price_ex_tax: z.coerce.number(),\n cost_price_tax: z.coerce.number(),\n});\n\nexport type OrderProduct = z.output<typeof OrderProductSchema>;\n"],"mappings":"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","names":["z","z","z","z","Effect","Effect","Effect","z","z","Effect"]}
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/orders/find-orders.ts","../src/bigcommerce-entities/orders/schemas/order.schema.ts","../src/bigcommerce-entities/addresses/schemas/address.schema.ts","../src/bigcommerce-entities/addresses/schemas/form-field.schema.ts","../src/bigcommerce-entities/orders/schemas/find-orders.criteria.ts","../src/bigcommerce-entities/orders/get-order.ts","../src/bigcommerce-entities/orders/get-products.ts","../src/bigcommerce-entities/orders/schemas/order-product.schema.ts"],"sourcesContent":["import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { OrderSchema } from './schemas';\nimport { FindOrdersCriteriaSchema } from './schemas/find-orders.criteria';\n\nconst OrderArraySchema = z.union([z.array(OrderSchema), z.literal(''), z.literal(null)]);\n\nexport const findOrders = (criteria?: z.input<typeof FindOrdersCriteriaSchema>) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n const validatedResponse = yield* validateInput(FindOrdersCriteriaSchema, criteria ?? {});\n const query: Record<string, string> = {};\n for (const [key, value] of Object.entries(validatedResponse)) {\n if (value !== undefined) {\n query[key] = `${value}`;\n }\n }\n const orders = yield* fetcher.fetch({\n query,\n isB2B: false,\n method: 'GET',\n path: 'orders',\n version: 'v2',\n resultSchema: OrderArraySchema,\n });\n return orders || [];\n });\n};\n\nexport const getAllOrdersBy = (\n criteria: Omit<z.input<typeof FindOrdersCriteriaSchema>, 'page' | 'limit'>,\n) => {\n return Effect.gen(function* () {\n const allOrders: z.output<typeof OrderSchema>[] = [];\n let page = 1;\n let hasMoreOrders = true;\n\n while (hasMoreOrders) {\n const orders = yield* findOrders({\n ...criteria,\n page,\n limit: GET_ORDER_BATCH_SIZE,\n });\n\n if (orders.length === 0) {\n hasMoreOrders = false;\n } else {\n allOrders.push(...orders);\n page++;\n }\n }\n\n return allOrders;\n });\n};\n","import * as z from 'zod';\nimport { AddressSchema } from '../../addresses/schemas/address.schema';\nimport { OrderStatusNameEnumSchema } from './status.schema';\n\nexport const OrderSchema = z.object({\n id: z.number(),\n customer_id: z.number(),\n date_created: z.string(),\n is_tax_inclusive_pricing: z.boolean(),\n date_modified: z.string(),\n date_shipped: z.string(),\n status_id: z.number(),\n status: OrderStatusNameEnumSchema,\n subtotal_ex_tax: z.string(),\n subtotal_inc_tax: z.string(),\n subtotal_tax: z.string(),\n base_shipping_cost: z.string(),\n shipping_cost_ex_tax: z.string(),\n shipping_cost_inc_tax: z.string(),\n shipping_cost_tax: z.string(),\n shipping_cost_tax_class_id: z.number(),\n base_handling_cost: z.string(),\n handling_cost_ex_tax: z.string(),\n handling_cost_inc_tax: z.string(),\n handling_cost_tax: z.string(),\n handling_cost_tax_class_id: z.number(),\n base_wrapping_cost: z.string(),\n wrapping_cost_ex_tax: z.string(),\n wrapping_cost_inc_tax: z.string(),\n wrapping_cost_tax: z.string(),\n wrapping_cost_tax_class_id: z.number(),\n total_ex_tax: z.string(),\n total_inc_tax: z.string(),\n total_tax: z.string(),\n items_total: z.number(),\n items_shipped: z.number(),\n payment_method: z.string(),\n payment_provider_id: z.string(),\n payment_status: z.string(),\n refunded_amount: z.string(),\n order_is_digital: z.boolean(),\n store_credit_amount: z.string(),\n gift_certificate_amount: z.string(),\n ip_address: z.string(),\n ip_address_v6: z.string(),\n geoip_country: z.string(),\n geoip_country_iso2: z.string(),\n currency_id: z.number(),\n currency_code: z.string(),\n currency_exchange_rate: z.string(),\n default_currency_id: z.number(),\n default_currency_code: z.string(),\n staff_notes: z.string(),\n customer_message: z.string(),\n discount_amount: z.string(),\n coupon_discount: z.string(),\n shipping_address_count: z.number(),\n is_deleted: z.boolean(),\n ebay_order_id: z.string(),\n cart_id: z.string(),\n billing_address: AddressSchema,\n is_email_opt_in: z.boolean(),\n order_source: z.string(),\n channel_id: z.number(),\n external_source: z.string(),\n external_id: z.string().nullable(),\n tax_provider_id: z.string(),\n customer_locale: z.string(),\n external_order_id: z.string().nullable(),\n store_default_currency_code: z.string(),\n store_default_to_transactional_exchange_rate: z.string(),\n custom_status: z.string(),\n});\n","import * as z from 'zod';\nimport { AddressFormFieldSchema } from './form-field.schema';\n\nexport const AddressSchema = z.object({\n first_name: z.string(),\n last_name: z.string(),\n company: z.string(),\n street_1: z.string(),\n street_2: z.string(),\n city: z.string(),\n state: z.string(),\n zip: z.string(),\n country: z.string(),\n country_iso2: z.string(),\n phone: z.string(),\n email: z.string(),\n form_fields: z.array(AddressFormFieldSchema),\n});\n","import * as z from 'zod';\n\nexport const AddressFormFieldSchema = z.object({\n name: z.string(),\n value: z.string(),\n});\n","import * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../../constants';\n\nexport const FindOrdersCriteriaSchema = z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n status_id: z.number().optional(),\n cart_id: z.string().optional(),\n payment_method: z.string().optional(),\n min_date_created: z.iso.datetime({ offset: true }).optional(),\n max_date_created: z.iso.datetime({ offset: true }).optional(),\n min_date_modified: z.iso.datetime({ offset: true }).optional(),\n max_date_modified: z.iso.datetime({ offset: true }).optional(),\n page: z.number().min(1).optional(),\n limit: z.number().min(1).max(GET_ORDER_BATCH_SIZE).optional(),\n // Allowed: id | customer_id | date_created | date_modified | status_id | channel_id | external_id;\n sort: z.string().optional(),\n channel_id: z.int().optional(),\n});\n","import { Effect } from 'effect';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderSchema } from './schemas';\n\nexport const getOrder = (orderId: string) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* fetcher.fetch({\n isB2B: false,\n method: 'GET',\n path: `orders/${orderId}`,\n resultSchema: OrderSchema,\n version: 'v2',\n });\n });\n};\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { GET_ORDER_BATCH_SIZE } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderProductSchema } from './schemas/order-product.schema';\nconst getOrderProducts = ({\n orderId,\n limit = GET_ORDER_BATCH_SIZE,\n page,\n}: {\n orderId: number;\n limit?: number;\n page: number;\n}) => {\n return Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* fetcher.fetch({\n method: 'GET',\n path: `orders/${orderId}/products`,\n isB2B: false,\n version: 'v2',\n resultSchema: z.union([z.array(OrderProductSchema), z.literal(''), z.literal(null)]),\n query: {\n limit: `${limit}`,\n page: `${page}`,\n },\n });\n }).pipe(Effect.map((arr) => arr || []));\n};\n\nexport const getAllOrderProducts = (orderId: number) => {\n return Effect.gen(function* () {\n const all: z.output<typeof OrderProductSchema>[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const result = yield* getOrderProducts({\n orderId,\n page,\n limit: GET_ORDER_BATCH_SIZE,\n });\n\n if (result.length) {\n all.push(...result);\n page++;\n } else {\n hasMore = false;\n }\n }\n\n return all;\n });\n};\n","import * as z from 'zod';\nexport const OrderProductSchema = z.object({\n id: z.int(),\n order_id: z.int(),\n product_id: z.int(),\n variant_id: z.int(),\n order_address_id: z.int(),\n sku: z.string(),\n type: z.enum(['physical', 'digital']),\n base_price: z.coerce.number(),\n price_ex_tax: z.coerce.number(),\n price_inc_tax: z.coerce.number(),\n price_tax: z.coerce.number(),\n base_total: z.coerce.number(),\n total_ex_tax: z.coerce.number(),\n total_inc_tax: z.coerce.number(),\n total_tax: z.coerce.number(),\n weight: z.coerce.number(),\n width: z.coerce.number(),\n height: z.coerce.number(),\n depth: z.coerce.number(),\n quantity: z.int(),\n base_cost_price: z.coerce.number(),\n cost_price_inc_tax: z.coerce.number(),\n cost_price_ex_tax: z.coerce.number(),\n cost_price_tax: z.coerce.number(),\n});\n"],"mappings":"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","names":["z","z","z","z","Effect","Effect","Effect","z","z","Effect"]}
|
package/dist/products.d.mts
CHANGED
|
@@ -15,9 +15,8 @@ declare const SetProductInventoryItemSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
15
15
|
sku: z.ZodString;
|
|
16
16
|
quantity: z.ZodInt;
|
|
17
17
|
}, z.core.$strip>]>;
|
|
18
|
-
type SetProductInventoryItemInput = z.input<typeof SetProductInventoryItemSchema>;
|
|
19
18
|
|
|
20
|
-
declare const setProductsInventory: (reason: string, items:
|
|
19
|
+
declare const setProductsInventory: (reason: string, items: z.input<typeof SetProductInventoryItemSchema>[]) => Effect.Effect<{
|
|
21
20
|
transaction_id: string;
|
|
22
21
|
}[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
|
|
23
22
|
|
|
@@ -25,8 +24,7 @@ declare const UpdateProductVisibilitySchema: z.ZodObject<{
|
|
|
25
24
|
id: z.ZodNumber;
|
|
26
25
|
is_visible: z.ZodBoolean;
|
|
27
26
|
}, z.core.$strip>;
|
|
28
|
-
type UpdateProductVisibilityInput = z.input<typeof UpdateProductVisibilitySchema>;
|
|
29
27
|
|
|
30
|
-
declare const setProductVisibility: (dtos:
|
|
28
|
+
declare const setProductVisibility: (dtos: z.input<typeof UpdateProductVisibilitySchema>[]) => effect_Effect.Effect<any[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
|
|
31
29
|
|
|
32
30
|
export { setProductVisibility, setProductsInventory };
|
package/dist/products.d.ts
CHANGED
|
@@ -15,9 +15,8 @@ declare const SetProductInventoryItemSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
15
15
|
sku: z.ZodString;
|
|
16
16
|
quantity: z.ZodInt;
|
|
17
17
|
}, z.core.$strip>]>;
|
|
18
|
-
type SetProductInventoryItemInput = z.input<typeof SetProductInventoryItemSchema>;
|
|
19
18
|
|
|
20
|
-
declare const setProductsInventory: (reason: string, items:
|
|
19
|
+
declare const setProductsInventory: (reason: string, items: z.input<typeof SetProductInventoryItemSchema>[]) => Effect.Effect<{
|
|
21
20
|
transaction_id: string;
|
|
22
21
|
}[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
|
|
23
22
|
|
|
@@ -25,8 +24,7 @@ declare const UpdateProductVisibilitySchema: z.ZodObject<{
|
|
|
25
24
|
id: z.ZodNumber;
|
|
26
25
|
is_visible: z.ZodBoolean;
|
|
27
26
|
}, z.core.$strip>;
|
|
28
|
-
type UpdateProductVisibilityInput = z.input<typeof UpdateProductVisibilitySchema>;
|
|
29
27
|
|
|
30
|
-
declare const setProductVisibility: (dtos:
|
|
28
|
+
declare const setProductVisibility: (dtos: z.input<typeof UpdateProductVisibilitySchema>[]) => effect_Effect.Effect<any[], SomeBigCommerceError | InputValidationError, BigCommerceFetcher>;
|
|
31
29
|
|
|
32
30
|
export { setProductVisibility, setProductsInventory };
|
package/dist/products.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/products/index.ts","../src/bigcommerce-entities/products/set-inventory.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/products/schemas/set-inventory.schema.ts","../src/bigcommerce-entities/products/update-products.ts","../src/bigcommerce-entities/products/schemas/update-products.schema.ts","../src/bigcommerce-entities/products/set-visibility.ts"],"sourcesContent":["export * from './schemas';\nexport * from './set-inventory';\nexport * from './set-visibility';\n","import { Chunk, Effect, Stream } from 'effect';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetInventoryResponseSchema,\n SetProductInventorySchema,\n type SetProductInventoryItemInput,\n} from './schemas/set-inventory.schema';\n\nexport const setProductsInventory = (reason: string, items: SetProductInventoryItemInput[]) => {\n return Stream.fromIterable(items).pipe(\n Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),\n Stream.mapEffect((chunk) => updateProductInventory(reason, chunk), {\n concurrency: UPDATE_INVENTORY_CONCURRENCY,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductInventory = (\n reason: string,\n items: Chunk.Chunk<SetProductInventoryItemInput>,\n) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(SetProductInventorySchema, {\n reason,\n items: Chunk.toArray(items),\n });\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: SetInventoryResponseSchema,\n }),\n RETRY_POLICY_WITH_BACKOFF,\n );\n });\n};\n","import { Duration, Schedule } from 'effect';\n\nexport const DEFAULT_TIMEOUT_MS = 30000;\nexport const API_BASE_URLS = {\n B2B: 'https://api-b2b.bigcommerce.com/api',\n REGULAR: 'https://api.bigcommerce.com/stores',\n} as const;\nexport const GET_ORDER_BATCH_SIZE = 250;\nexport const UPDATE_PRODUCT_BATCH_SIZE = 5;\nexport const UPDATE_INVENTORY_BATCH_SIZE = 2000;\nexport const UPDATE_INVENTORY_CONCURRENCY = 2;\nexport const DEFAULT_RETRY_TIMES = 2;\nexport const DEFAULT_RETRY_WAIT = 200;\nexport const DEFAULT_RETRY_SCHEDULE = Schedule.exponential(Duration.millis(DEFAULT_RETRY_WAIT));\nexport const RETRY_POLICY_WITH_BACKOFF = Schedule.exponential(\n Duration.millis(DEFAULT_RETRY_WAIT),\n 2,\n).pipe(Schedule.intersect(Schedule.recurs(DEFAULT_RETRY_TIMES)));\nexport const GET_CUSTOMERS_BATCH_SIZE = 100;\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>,\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>,\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 { API_BASE_URLS } 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 } 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.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 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>): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\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 `${API_BASE_URLS.B2B}/${version}/io/${path}`;\n }\n return `${API_BASE_URLS.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 { DEFAULT_TIMEOUT_MS } 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, string>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError, string>;\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(DEFAULT_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(DEFAULT_TIMEOUT_MS),\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 SetProductInventoryItemSchema = z.union([\n z.object({\n location_id: z.int(),\n product_id: z.int(),\n quantity: z.int().min(0),\n }),\n z.object({\n location_id: z.int(),\n sku: z.string(),\n quantity: z.int().min(0),\n }),\n]);\nexport const SetProductInventorySchema = z.object({\n reason: z.string(),\n items: z.array(SetProductInventoryItemSchema),\n});\nexport const SetInventoryResponseSchema = z.object({\n transaction_id: z.string(),\n});\nexport type SetProductInventoryInput = z.input<typeof SetProductInventorySchema>;\nexport type SetProductInventoryItemInput = z.input<typeof SetProductInventoryItemSchema>;\nexport type SetInventoryResponse = z.output<typeof SetInventoryResponseSchema>;\n","import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n UpdateProductResponseSchema,\n UpdateProductSchema,\n type UpdateProductInput,\n} from './schemas/update-products.schema';\nconst UpdateProductArraySchema = z.array(UpdateProductSchema);\nexport const updateProducts = (dtos: UpdateProductInput[]) => {\n return Stream.fromIterable(dtos).pipe(\n Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),\n Stream.mapEffect((chunk) => updateProductBatch(chunk), {\n concurrency: UPDATE_INVENTORY_CONCURRENCY,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductBatch = (items: Chunk.Chunk<UpdateProductInput>) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(UpdateProductArraySchema, Chunk.toArray(items));\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: UpdateProductResponseSchema,\n }),\n RETRY_POLICY_WITH_BACKOFF,\n );\n });\n};\n","import * as z from 'zod';\nexport const UpdateProductVisibilitySchema = z.object({\n id: z.number(),\n is_visible: z.boolean(),\n});\n\nexport const UpdateProductSchema = z.union([UpdateProductVisibilitySchema]);\n\nexport const UpdateProductResponseSchema = z.any();\n\nexport type UpdateProductInput = z.input<typeof UpdateProductSchema>;\nexport type UpdateProductVisibilityInput = z.input<typeof UpdateProductVisibilitySchema>;\nexport type UpdateProductResponse = z.output<typeof UpdateProductResponseSchema>;\n","import type { UpdateProductVisibilityInput } from './schemas/update-products.schema';\nimport { updateProducts } from './update-products';\n\nexport const setProductVisibility = (dtos: UpdateProductVisibilityInput[]) => {\n return updateProducts(dtos);\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"]}
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/products/index.ts","../src/bigcommerce-entities/products/set-inventory.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/products/schemas/set-inventory.schema.ts","../src/bigcommerce-entities/products/update-products.ts","../src/bigcommerce-entities/products/schemas/update-products.schema.ts","../src/bigcommerce-entities/products/set-visibility.ts"],"sourcesContent":["export * from './schemas';\nexport * from './set-inventory';\nexport * from './set-visibility';\n","import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetInventoryResponseSchema,\n SetProductInventorySchema,\n type SetProductInventoryItemSchema,\n} from './schemas/set-inventory.schema';\n\nexport const setProductsInventory = (\n reason: string,\n items: z.input<typeof SetProductInventoryItemSchema>[],\n) => {\n return Stream.fromIterable(items).pipe(\n Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),\n Stream.mapEffect((chunk) => updateProductInventory(reason, chunk), {\n concurrency: UPDATE_INVENTORY_CONCURRENCY,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductInventory = (\n reason: string,\n items: Chunk.Chunk<z.input<typeof SetProductInventoryItemSchema>>,\n) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(SetProductInventorySchema, {\n reason,\n items: Chunk.toArray(items),\n });\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: SetInventoryResponseSchema,\n }),\n RETRY_POLICY_WITH_BACKOFF,\n );\n });\n};\n","import { Duration, Schedule } from 'effect';\n\nexport const DEFAULT_TIMEOUT_MS = 30000;\nexport const API_BASE_URLS = {\n B2B: 'https://api-b2b.bigcommerce.com/api',\n REGULAR: 'https://api.bigcommerce.com/stores',\n} as const;\nexport const GET_ORDER_BATCH_SIZE = 250;\nexport const UPDATE_PRODUCT_BATCH_SIZE = 5;\nexport const UPDATE_INVENTORY_BATCH_SIZE = 2000;\nexport const UPDATE_INVENTORY_CONCURRENCY = 2;\nexport const DEFAULT_RETRY_TIMES = 2;\nexport const DEFAULT_RETRY_WAIT = 200;\nexport const DEFAULT_RETRY_SCHEDULE = Schedule.exponential(Duration.millis(DEFAULT_RETRY_WAIT));\nexport const RETRY_POLICY_WITH_BACKOFF = Schedule.exponential(\n Duration.millis(DEFAULT_RETRY_WAIT),\n 2,\n).pipe(Schedule.intersect(Schedule.recurs(DEFAULT_RETRY_TIMES)));\nexport const GET_CUSTOMERS_BATCH_SIZE = 100;\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>,\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>,\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 { API_BASE_URLS } 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 } 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.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 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>): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\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 `${API_BASE_URLS.B2B}/${version}/io/${path}`;\n }\n return `${API_BASE_URLS.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 { DEFAULT_TIMEOUT_MS } 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, string>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError, string>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError, string>;\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(DEFAULT_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(DEFAULT_TIMEOUT_MS),\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 SetProductInventoryItemSchema = z.union([\n z.object({\n location_id: z.int(),\n product_id: z.int(),\n quantity: z.int().min(0),\n }),\n z.object({\n location_id: z.int(),\n sku: z.string(),\n quantity: z.int().min(0),\n }),\n]);\nexport const SetProductInventorySchema = z.object({\n reason: z.string(),\n items: z.array(SetProductInventoryItemSchema),\n});\nexport const SetInventoryResponseSchema = z.object({\n transaction_id: z.string(),\n});\n","import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n UpdateProductResponseSchema,\n UpdateProductSchema,\n type UpdateProductInput,\n} from './schemas/update-products.schema';\nconst UpdateProductArraySchema = z.array(UpdateProductSchema);\nexport const updateProducts = (dtos: UpdateProductInput[]) => {\n return Stream.fromIterable(dtos).pipe(\n Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),\n Stream.mapEffect((chunk) => updateProductBatch(chunk), {\n concurrency: UPDATE_INVENTORY_CONCURRENCY,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductBatch = (items: Chunk.Chunk<UpdateProductInput>) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(UpdateProductArraySchema, Chunk.toArray(items));\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: UpdateProductResponseSchema,\n }),\n RETRY_POLICY_WITH_BACKOFF,\n );\n });\n};\n","import * as z from 'zod';\nexport const UpdateProductVisibilitySchema = z.object({\n id: z.number(),\n is_visible: z.boolean(),\n});\n\nexport const UpdateProductSchema = z.union([UpdateProductVisibilitySchema]);\n\nexport const UpdateProductResponseSchema = z.any();\n","import * as z from 'zod';\nimport { UpdateProductVisibilitySchema } from './schemas/update-products.schema';\nimport { updateProducts } from './update-products';\nexport const setProductVisibility = (dtos: z.input<typeof UpdateProductVisibilitySchema>[]) => {\n return updateProducts(dtos);\n};\n"],"mappings":"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","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code","import_effect","import_effect","import_effect","z","z"]}
|
package/dist/products.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/products/set-inventory.ts","../src/bigcommerce-entities/products/schemas/set-inventory.schema.ts","../src/bigcommerce-entities/products/update-products.ts","../src/bigcommerce-entities/products/schemas/update-products.schema.ts","../src/bigcommerce-entities/products/set-visibility.ts"],"sourcesContent":["import { Chunk, Effect, Stream } from 'effect';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetInventoryResponseSchema,\n SetProductInventorySchema,\n type
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/products/set-inventory.ts","../src/bigcommerce-entities/products/schemas/set-inventory.schema.ts","../src/bigcommerce-entities/products/update-products.ts","../src/bigcommerce-entities/products/schemas/update-products.schema.ts","../src/bigcommerce-entities/products/set-visibility.ts"],"sourcesContent":["import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n SetInventoryResponseSchema,\n SetProductInventorySchema,\n type SetProductInventoryItemSchema,\n} from './schemas/set-inventory.schema';\n\nexport const setProductsInventory = (\n reason: string,\n items: z.input<typeof SetProductInventoryItemSchema>[],\n) => {\n return Stream.fromIterable(items).pipe(\n Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),\n Stream.mapEffect((chunk) => updateProductInventory(reason, chunk), {\n concurrency: UPDATE_INVENTORY_CONCURRENCY,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductInventory = (\n reason: string,\n items: Chunk.Chunk<z.input<typeof SetProductInventoryItemSchema>>,\n) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(SetProductInventorySchema, {\n reason,\n items: Chunk.toArray(items),\n });\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: SetInventoryResponseSchema,\n }),\n RETRY_POLICY_WITH_BACKOFF,\n );\n });\n};\n","import * as z from 'zod';\nexport const SetProductInventoryItemSchema = z.union([\n z.object({\n location_id: z.int(),\n product_id: z.int(),\n quantity: z.int().min(0),\n }),\n z.object({\n location_id: z.int(),\n sku: z.string(),\n quantity: z.int().min(0),\n }),\n]);\nexport const SetProductInventorySchema = z.object({\n reason: z.string(),\n items: z.array(SetProductInventoryItemSchema),\n});\nexport const SetInventoryResponseSchema = z.object({\n transaction_id: z.string(),\n});\n","import { Chunk, Effect, Stream } from 'effect';\nimport * as z from 'zod';\nimport {\n RETRY_POLICY_WITH_BACKOFF,\n UPDATE_INVENTORY_BATCH_SIZE,\n UPDATE_INVENTORY_CONCURRENCY,\n} from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport {\n UpdateProductResponseSchema,\n UpdateProductSchema,\n type UpdateProductInput,\n} from './schemas/update-products.schema';\nconst UpdateProductArraySchema = z.array(UpdateProductSchema);\nexport const updateProducts = (dtos: UpdateProductInput[]) => {\n return Stream.fromIterable(dtos).pipe(\n Stream.grouped(UPDATE_INVENTORY_BATCH_SIZE),\n Stream.mapEffect((chunk) => updateProductBatch(chunk), {\n concurrency: UPDATE_INVENTORY_CONCURRENCY,\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n};\n\nconst updateProductBatch = (items: Chunk.Chunk<UpdateProductInput>) => {\n return Effect.gen(function* () {\n const validatedBody = yield* validateInput(UpdateProductArraySchema, Chunk.toArray(items));\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: false,\n method: 'PUT',\n path: 'inventory/adjustments/absolute',\n version: 'v3',\n body: validatedBody,\n resultSchema: UpdateProductResponseSchema,\n }),\n RETRY_POLICY_WITH_BACKOFF,\n );\n });\n};\n","import * as z from 'zod';\nexport const UpdateProductVisibilitySchema = z.object({\n id: z.number(),\n is_visible: z.boolean(),\n});\n\nexport const UpdateProductSchema = z.union([UpdateProductVisibilitySchema]);\n\nexport const UpdateProductResponseSchema = z.any();\n","import * as z from 'zod';\nimport { UpdateProductVisibilitySchema } from './schemas/update-products.schema';\nimport { updateProducts } from './update-products';\nexport const setProductVisibility = (dtos: z.input<typeof UpdateProductVisibilitySchema>[]) => {\n return updateProducts(dtos);\n};\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,OAAO,QAAQ,cAAc;;;ACAtC,YAAY,OAAO;AACZ,IAAM,gCAAkC,QAAM;AAAA,EACjD,SAAO;AAAA,IACP,aAAe,MAAI;AAAA,IACnB,YAAc,MAAI;AAAA,IAClB,UAAY,MAAI,EAAE,IAAI,CAAC;AAAA,EACzB,CAAC;AAAA,EACC,SAAO;AAAA,IACP,aAAe,MAAI;AAAA,IACnB,KAAO,SAAO;AAAA,IACd,UAAY,MAAI,EAAE,IAAI,CAAC;AAAA,EACzB,CAAC;AACH,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,QAAU,SAAO;AAAA,EACjB,OAAS,QAAM,6BAA6B;AAC9C,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,gBAAkB,SAAO;AAC3B,CAAC;;;ADJM,IAAM,uBAAuB,CAClC,QACA,UACG;AACH,SAAO,OAAO,aAAa,KAAK,EAAE;AAAA,IAChC,OAAO,QAAQ,2BAA2B;AAAA,IAC1C,OAAO,UAAU,CAAC,UAAU,uBAAuB,QAAQ,KAAK,GAAG;AAAA,MACjE,aAAa;AAAA,IACf,CAAC;AAAA,IACD,OAAO;AAAA,IACP,OAAO,IAAI,MAAM,OAAO;AAAA,EAC1B;AACF;AAEA,IAAM,yBAAyB,CAC7B,QACA,UACG;AACH,SAAO,OAAO,IAAI,aAAa;AAC7B,UAAM,gBAAgB,OAAO,cAAc,2BAA2B;AAAA,MACpE;AAAA,MACA,OAAO,MAAM,QAAQ,KAAK;AAAA,IAC5B,CAAC;AACD,UAAM,UAAU,OAAO;AACvB,WAAO,OAAO,OAAO;AAAA,MACnB,QAAQ,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM;AAAA,QACN,cAAc;AAAA,MAChB,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AEnDA,SAAS,SAAAA,QAAO,UAAAC,SAAQ,UAAAC,eAAc;AACtC,YAAYC,QAAO;;;ACDnB,YAAYC,QAAO;AACZ,IAAM,gCAAkC,UAAO;AAAA,EACpD,IAAM,UAAO;AAAA,EACb,YAAc,WAAQ;AACxB,CAAC;AAEM,IAAM,sBAAwB,SAAM,CAAC,6BAA6B,CAAC;AAEnE,IAAM,8BAAgC,OAAI;;;ADMjD,IAAM,2BAA6B,SAAM,mBAAmB;AACrD,IAAM,iBAAiB,CAAC,SAA+B;AAC5D,SAAOC,QAAO,aAAa,IAAI,EAAE;AAAA,IAC/BA,QAAO,QAAQ,2BAA2B;AAAA,IAC1CA,QAAO,UAAU,CAAC,UAAU,mBAAmB,KAAK,GAAG;AAAA,MACrD,aAAa;AAAA,IACf,CAAC;AAAA,IACDA,QAAO;AAAA,IACPC,QAAO,IAAIC,OAAM,OAAO;AAAA,EAC1B;AACF;AAEA,IAAM,qBAAqB,CAAC,UAA2C;AACrE,SAAOD,QAAO,IAAI,aAAa;AAC7B,UAAM,gBAAgB,OAAO,cAAc,0BAA0BC,OAAM,QAAQ,KAAK,CAAC;AACzF,UAAM,UAAU,OAAO;AACvB,WAAO,OAAOD,QAAO;AAAA,MACnB,QAAQ,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM;AAAA,QACN,cAAc;AAAA,MAChB,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AEvCO,IAAM,uBAAuB,CAAC,SAA0D;AAC7F,SAAO,eAAe,IAAI;AAC5B;","names":["Chunk","Effect","Stream","z","z","Stream","Effect","Chunk"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const OrderStatusNameEnumSchema: z.ZodEnum<{
|
|
4
|
+
Incomplete: "Incomplete";
|
|
5
|
+
Pending: "Pending";
|
|
6
|
+
Shipped: "Shipped";
|
|
7
|
+
"Partially Shipped": "Partially Shipped";
|
|
8
|
+
Refunded: "Refunded";
|
|
9
|
+
Cancelled: "Cancelled";
|
|
10
|
+
Declined: "Declined";
|
|
11
|
+
"Awaiting Payment": "Awaiting Payment";
|
|
12
|
+
"Awaiting Pickup": "Awaiting Pickup";
|
|
13
|
+
"Awaiting Shipment": "Awaiting Shipment";
|
|
14
|
+
Completed: "Completed";
|
|
15
|
+
"Awaiting Fulfillment": "Awaiting Fulfillment";
|
|
16
|
+
"Manual Verification Required": "Manual Verification Required";
|
|
17
|
+
Disputed: "Disputed";
|
|
18
|
+
"Partially Refunded": "Partially Refunded";
|
|
19
|
+
}>;
|
|
20
|
+
declare enum OrderStatusEnum {
|
|
21
|
+
Incomplete = 0,
|
|
22
|
+
Pending = 1,
|
|
23
|
+
Shipped = 2,
|
|
24
|
+
PartiallyShipped = 3,
|
|
25
|
+
Refunded = 4,
|
|
26
|
+
Cancelled = 5,
|
|
27
|
+
Declined = 6,
|
|
28
|
+
AwaitingPayment = 7,
|
|
29
|
+
AwaitingPickup = 8,
|
|
30
|
+
AwaitingShipment = 9,
|
|
31
|
+
Completed = 10,
|
|
32
|
+
AwaitingFulfillment = 11,
|
|
33
|
+
ManualVerificationRequired = 12,
|
|
34
|
+
Disputed = 13,
|
|
35
|
+
PartiallyRefunded = 14
|
|
36
|
+
}
|
|
37
|
+
declare const OrderStatusSchema: z.ZodEnum<typeof OrderStatusEnum>;
|
|
38
|
+
|
|
39
|
+
export { OrderStatusEnum as O, OrderStatusNameEnumSchema as a, OrderStatusSchema as b };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const OrderStatusNameEnumSchema: z.ZodEnum<{
|
|
4
|
+
Incomplete: "Incomplete";
|
|
5
|
+
Pending: "Pending";
|
|
6
|
+
Shipped: "Shipped";
|
|
7
|
+
"Partially Shipped": "Partially Shipped";
|
|
8
|
+
Refunded: "Refunded";
|
|
9
|
+
Cancelled: "Cancelled";
|
|
10
|
+
Declined: "Declined";
|
|
11
|
+
"Awaiting Payment": "Awaiting Payment";
|
|
12
|
+
"Awaiting Pickup": "Awaiting Pickup";
|
|
13
|
+
"Awaiting Shipment": "Awaiting Shipment";
|
|
14
|
+
Completed: "Completed";
|
|
15
|
+
"Awaiting Fulfillment": "Awaiting Fulfillment";
|
|
16
|
+
"Manual Verification Required": "Manual Verification Required";
|
|
17
|
+
Disputed: "Disputed";
|
|
18
|
+
"Partially Refunded": "Partially Refunded";
|
|
19
|
+
}>;
|
|
20
|
+
declare enum OrderStatusEnum {
|
|
21
|
+
Incomplete = 0,
|
|
22
|
+
Pending = 1,
|
|
23
|
+
Shipped = 2,
|
|
24
|
+
PartiallyShipped = 3,
|
|
25
|
+
Refunded = 4,
|
|
26
|
+
Cancelled = 5,
|
|
27
|
+
Declined = 6,
|
|
28
|
+
AwaitingPayment = 7,
|
|
29
|
+
AwaitingPickup = 8,
|
|
30
|
+
AwaitingShipment = 9,
|
|
31
|
+
Completed = 10,
|
|
32
|
+
AwaitingFulfillment = 11,
|
|
33
|
+
ManualVerificationRequired = 12,
|
|
34
|
+
Disputed = 13,
|
|
35
|
+
PartiallyRefunded = 14
|
|
36
|
+
}
|
|
37
|
+
declare const OrderStatusSchema: z.ZodEnum<typeof OrderStatusEnum>;
|
|
38
|
+
|
|
39
|
+
export { OrderStatusEnum as O, OrderStatusNameEnumSchema as a, OrderStatusSchema as b };
|
package/dist/webhooks.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
|
+
import { O as OrderStatusEnum } from './status.schema-BgztUtGy.mjs';
|
|
2
3
|
|
|
3
4
|
declare const CustomerAddressWebhookScopeSchema: z.ZodObject<{
|
|
4
5
|
scope: z.ZodEnum<{
|
|
@@ -26,26 +27,6 @@ declare const CustomerWebhookScopeSchema: z.ZodObject<{
|
|
|
26
27
|
id: z.ZodInt;
|
|
27
28
|
}, z.core.$strip>;
|
|
28
29
|
}, z.core.$strip>;
|
|
29
|
-
type CustomerAddressWebhookScope = z.output<typeof CustomerAddressWebhookScopeSchema>;
|
|
30
|
-
type CustomerWebhookScope = z.output<typeof CustomerWebhookScopeSchema>;
|
|
31
|
-
|
|
32
|
-
declare enum OrderStatusEnum {
|
|
33
|
-
Incomplete = 0,
|
|
34
|
-
Pending = 1,
|
|
35
|
-
Shipped = 2,
|
|
36
|
-
PartiallyShipped = 3,
|
|
37
|
-
Refunded = 4,
|
|
38
|
-
Cancelled = 5,
|
|
39
|
-
Declined = 6,
|
|
40
|
-
AwaitingPayment = 7,
|
|
41
|
-
AwaitingPickup = 8,
|
|
42
|
-
AwaitingShipment = 9,
|
|
43
|
-
Completed = 10,
|
|
44
|
-
AwaitingFulfillment = 11,
|
|
45
|
-
ManualVerificationRequired = 12,
|
|
46
|
-
Disputed = 13,
|
|
47
|
-
PartiallyRefunded = 14
|
|
48
|
-
}
|
|
49
30
|
|
|
50
31
|
declare const OrderWebhookScopeSchema: z.ZodObject<{
|
|
51
32
|
scope: z.ZodEnum<{
|
|
@@ -71,10 +52,11 @@ declare const OrderStatusWebhookScopeSchema: z.ZodObject<{
|
|
|
71
52
|
};
|
|
72
53
|
}, z.core.$strip>;
|
|
73
54
|
}, z.core.$strip>;
|
|
74
|
-
type OrderWebhookScope = z.output<typeof OrderWebhookScopeSchema>;
|
|
75
|
-
type OrderStatusWebhookScope = z.output<typeof OrderStatusWebhookScopeSchema>;
|
|
76
55
|
|
|
77
|
-
declare const BigCommerceWebhooksScopeSchema: z.ZodIntersection<z.
|
|
56
|
+
declare const BigCommerceWebhooksScopeSchema: z.ZodIntersection<z.ZodObject<{
|
|
57
|
+
hash: z.ZodString;
|
|
58
|
+
created_at: z.ZodNumber;
|
|
59
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
78
60
|
scope: z.ZodEnum<{
|
|
79
61
|
"store/order/created": "store/order/created";
|
|
80
62
|
"store/order/updated": "store/order/updated";
|
|
@@ -120,10 +102,6 @@ declare const BigCommerceWebhooksScopeSchema: z.ZodIntersection<z.ZodUnion<reado
|
|
|
120
102
|
customer_id: z.ZodInt;
|
|
121
103
|
}, z.core.$strip>;
|
|
122
104
|
}, z.core.$strip>;
|
|
123
|
-
}, z.core.$strip>]
|
|
124
|
-
hash: string;
|
|
125
|
-
created_at: number;
|
|
126
|
-
}, z.core.$strip>>;
|
|
127
|
-
type BigCommerceWebhooksScope = z.output<typeof BigCommerceWebhooksScopeSchema>;
|
|
105
|
+
}, z.core.$strip>], "scope">>;
|
|
128
106
|
|
|
129
|
-
export {
|
|
107
|
+
export { BigCommerceWebhooksScopeSchema, CustomerAddressWebhookScopeSchema, CustomerWebhookScopeSchema, OrderStatusWebhookScopeSchema, OrderWebhookScopeSchema };
|
package/dist/webhooks.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
|
+
import { O as OrderStatusEnum } from './status.schema-BgztUtGy.js';
|
|
2
3
|
|
|
3
4
|
declare const CustomerAddressWebhookScopeSchema: z.ZodObject<{
|
|
4
5
|
scope: z.ZodEnum<{
|
|
@@ -26,26 +27,6 @@ declare const CustomerWebhookScopeSchema: z.ZodObject<{
|
|
|
26
27
|
id: z.ZodInt;
|
|
27
28
|
}, z.core.$strip>;
|
|
28
29
|
}, z.core.$strip>;
|
|
29
|
-
type CustomerAddressWebhookScope = z.output<typeof CustomerAddressWebhookScopeSchema>;
|
|
30
|
-
type CustomerWebhookScope = z.output<typeof CustomerWebhookScopeSchema>;
|
|
31
|
-
|
|
32
|
-
declare enum OrderStatusEnum {
|
|
33
|
-
Incomplete = 0,
|
|
34
|
-
Pending = 1,
|
|
35
|
-
Shipped = 2,
|
|
36
|
-
PartiallyShipped = 3,
|
|
37
|
-
Refunded = 4,
|
|
38
|
-
Cancelled = 5,
|
|
39
|
-
Declined = 6,
|
|
40
|
-
AwaitingPayment = 7,
|
|
41
|
-
AwaitingPickup = 8,
|
|
42
|
-
AwaitingShipment = 9,
|
|
43
|
-
Completed = 10,
|
|
44
|
-
AwaitingFulfillment = 11,
|
|
45
|
-
ManualVerificationRequired = 12,
|
|
46
|
-
Disputed = 13,
|
|
47
|
-
PartiallyRefunded = 14
|
|
48
|
-
}
|
|
49
30
|
|
|
50
31
|
declare const OrderWebhookScopeSchema: z.ZodObject<{
|
|
51
32
|
scope: z.ZodEnum<{
|
|
@@ -71,10 +52,11 @@ declare const OrderStatusWebhookScopeSchema: z.ZodObject<{
|
|
|
71
52
|
};
|
|
72
53
|
}, z.core.$strip>;
|
|
73
54
|
}, z.core.$strip>;
|
|
74
|
-
type OrderWebhookScope = z.output<typeof OrderWebhookScopeSchema>;
|
|
75
|
-
type OrderStatusWebhookScope = z.output<typeof OrderStatusWebhookScopeSchema>;
|
|
76
55
|
|
|
77
|
-
declare const BigCommerceWebhooksScopeSchema: z.ZodIntersection<z.
|
|
56
|
+
declare const BigCommerceWebhooksScopeSchema: z.ZodIntersection<z.ZodObject<{
|
|
57
|
+
hash: z.ZodString;
|
|
58
|
+
created_at: z.ZodNumber;
|
|
59
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
78
60
|
scope: z.ZodEnum<{
|
|
79
61
|
"store/order/created": "store/order/created";
|
|
80
62
|
"store/order/updated": "store/order/updated";
|
|
@@ -120,10 +102,6 @@ declare const BigCommerceWebhooksScopeSchema: z.ZodIntersection<z.ZodUnion<reado
|
|
|
120
102
|
customer_id: z.ZodInt;
|
|
121
103
|
}, z.core.$strip>;
|
|
122
104
|
}, z.core.$strip>;
|
|
123
|
-
}, z.core.$strip>]
|
|
124
|
-
hash: string;
|
|
125
|
-
created_at: number;
|
|
126
|
-
}, z.core.$strip>>;
|
|
127
|
-
type BigCommerceWebhooksScope = z.output<typeof BigCommerceWebhooksScopeSchema>;
|
|
105
|
+
}, z.core.$strip>], "scope">>;
|
|
128
106
|
|
|
129
|
-
export {
|
|
107
|
+
export { BigCommerceWebhooksScopeSchema, CustomerAddressWebhookScopeSchema, CustomerWebhookScopeSchema, OrderStatusWebhookScopeSchema, OrderWebhookScopeSchema };
|
package/dist/webhooks.js
CHANGED
|
@@ -131,17 +131,18 @@ var OrderStatusWebhookScopeSchema = z3.object({
|
|
|
131
131
|
|
|
132
132
|
// src/bigcommerce-entities/webhooks/schemas/webhooks.schema.ts
|
|
133
133
|
var z4 = __toESM(require("zod"));
|
|
134
|
-
var
|
|
134
|
+
var BigCommerceSomeOfSchema = z4.discriminatedUnion("scope", [
|
|
135
135
|
OrderWebhookScopeSchema,
|
|
136
136
|
OrderStatusWebhookScopeSchema,
|
|
137
137
|
CustomerWebhookScopeSchema,
|
|
138
138
|
CustomerAddressWebhookScopeSchema
|
|
139
139
|
]);
|
|
140
|
-
var BigCommerceWebhooksScopeSchema =
|
|
140
|
+
var BigCommerceWebhooksScopeSchema = z4.intersection(
|
|
141
141
|
z4.object({
|
|
142
|
-
hash:
|
|
143
|
-
created_at:
|
|
144
|
-
})
|
|
142
|
+
hash: z4.string(),
|
|
143
|
+
created_at: z4.number()
|
|
144
|
+
}),
|
|
145
|
+
BigCommerceSomeOfSchema
|
|
145
146
|
);
|
|
146
147
|
// Annotate the CommonJS export names for ESM import in node:
|
|
147
148
|
0 && (module.exports = {
|
package/dist/webhooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/webhooks/index.ts","../src/bigcommerce-entities/webhooks/schemas/customer.scope.schema.ts","../src/bigcommerce-entities/webhooks/schemas/order.scope.schema.ts","../src/bigcommerce-entities/orders/schemas/status.schema.ts","../src/bigcommerce-entities/webhooks/schemas/webhooks.schema.ts"],"sourcesContent":["export * from './schemas';\n","import * as z from 'zod';\nexport const CustomerAddressWebhookScopeSchema = z.object({\n scope: z.enum([\n 'store/customer/address/created',\n 'store/customer/address/updated',\n 'store/customer/address/deleted',\n ]),\n data: z.object({\n type: z.literal('customer'),\n id: z.int(),\n address: z.object({\n customer_id: z.int(),\n }),\n }),\n});\nexport const CustomerWebhookScopeSchema = z.object({\n scope: z.enum([\n 'store/customer/created',\n 'store/customer/updated',\n 'store/customer/deleted',\n 'store/customer/payment/instrument/default/updated',\n ]),\n data: z.object({\n type: z.literal('customer'),\n id: z.int(),\n }),\n});\n
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/webhooks/index.ts","../src/bigcommerce-entities/webhooks/schemas/customer.scope.schema.ts","../src/bigcommerce-entities/webhooks/schemas/order.scope.schema.ts","../src/bigcommerce-entities/orders/schemas/status.schema.ts","../src/bigcommerce-entities/webhooks/schemas/webhooks.schema.ts"],"sourcesContent":["export * from './schemas';\n","import * as z from 'zod';\nexport const CustomerAddressWebhookScopeSchema = z.object({\n scope: z.enum([\n 'store/customer/address/created',\n 'store/customer/address/updated',\n 'store/customer/address/deleted',\n ]),\n data: z.object({\n type: z.literal('customer'),\n id: z.int(),\n address: z.object({\n customer_id: z.int(),\n }),\n }),\n});\nexport const CustomerWebhookScopeSchema = z.object({\n scope: z.enum([\n 'store/customer/created',\n 'store/customer/updated',\n 'store/customer/deleted',\n 'store/customer/payment/instrument/default/updated',\n ]),\n data: z.object({\n type: z.literal('customer'),\n id: z.int(),\n }),\n});\n","import * as z from 'zod';\nimport { OrderStatusSchema } from '../../orders/schemas/status.schema';\nexport const OrderWebhookScopeSchema = z.object({\n scope: z.enum(['store/order/created', 'store/order/updated', 'store/order/archived']),\n data: z.object({\n type: z.literal('order'),\n id: z.int(),\n }),\n});\nexport const OrderStatusWebhookScopeSchema = z.object({\n scope: z.enum(['store/order/statusUpdated']),\n data: z.object({\n type: z.literal('order'),\n id: z.int(),\n status: {\n previous_status_id: OrderStatusSchema,\n new_status_id: OrderStatusSchema,\n },\n }),\n});\n","import * as z from 'zod';\nexport const OrderStatusNameEnumSchema = z.enum([\n 'Incomplete',\n 'Pending',\n 'Shipped',\n 'Partially Shipped',\n 'Refunded',\n 'Cancelled',\n 'Declined',\n 'Awaiting Payment',\n 'Awaiting Pickup',\n 'Awaiting Shipment',\n 'Completed',\n 'Awaiting Fulfillment',\n 'Manual Verification Required',\n 'Disputed',\n 'Partially Refunded',\n]);\nexport enum OrderStatusEnum {\n Incomplete = 0,\n Pending = 1,\n Shipped = 2,\n PartiallyShipped = 3,\n Refunded = 4,\n Cancelled = 5,\n Declined = 6,\n AwaitingPayment = 7,\n AwaitingPickup = 8,\n AwaitingShipment = 9,\n Completed = 10,\n AwaitingFulfillment = 11,\n ManualVerificationRequired = 12,\n Disputed = 13,\n PartiallyRefunded = 14,\n}\nexport const OrderStatusSchema = z.enum(OrderStatusEnum);\n","import * as z from 'zod';\nimport {\n CustomerAddressWebhookScopeSchema,\n CustomerWebhookScopeSchema,\n} from './customer.scope.schema';\nimport { OrderStatusWebhookScopeSchema, OrderWebhookScopeSchema } from './order.scope.schema';\nexport {\n CustomerAddressWebhookScopeSchema,\n CustomerWebhookScopeSchema,\n} from './customer.scope.schema';\nexport { OrderStatusWebhookScopeSchema, OrderWebhookScopeSchema } from './order.scope.schema';\n\nconst BigCommerceSomeOfSchema = z.discriminatedUnion('scope', [\n OrderWebhookScopeSchema,\n OrderStatusWebhookScopeSchema,\n CustomerWebhookScopeSchema,\n CustomerAddressWebhookScopeSchema,\n]);\n\nexport const BigCommerceWebhooksScopeSchema = z.intersection(\n z.object({\n hash: z.string(),\n created_at: z.number(),\n }),\n BigCommerceSomeOfSchema,\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,QAAmB;AACZ,IAAM,oCAAsC,SAAO;AAAA,EACxD,OAAS,OAAK;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,MAAQ,SAAO;AAAA,IACb,MAAQ,UAAQ,UAAU;AAAA,IAC1B,IAAM,MAAI;AAAA,IACV,SAAW,SAAO;AAAA,MAChB,aAAe,MAAI;AAAA,IACrB,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,OAAS,OAAK;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,MAAQ,SAAO;AAAA,IACb,MAAQ,UAAQ,UAAU;AAAA,IAC1B,IAAM,MAAI;AAAA,EACZ,CAAC;AACH,CAAC;;;AC1BD,IAAAA,KAAmB;;;ACAnB,IAAAC,KAAmB;AACZ,IAAM,4BAA8B,QAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAK,kBAAL,kBAAKC,qBAAL;AACL,EAAAA,kCAAA,gBAAa,KAAb;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,sBAAmB,KAAnB;AACA,EAAAA,kCAAA,cAAW,KAAX;AACA,EAAAA,kCAAA,eAAY,KAAZ;AACA,EAAAA,kCAAA,cAAW,KAAX;AACA,EAAAA,kCAAA,qBAAkB,KAAlB;AACA,EAAAA,kCAAA,oBAAiB,KAAjB;AACA,EAAAA,kCAAA,sBAAmB,KAAnB;AACA,EAAAA,kCAAA,eAAY,MAAZ;AACA,EAAAA,kCAAA,yBAAsB,MAAtB;AACA,EAAAA,kCAAA,gCAA6B,MAA7B;AACA,EAAAA,kCAAA,cAAW,MAAX;AACA,EAAAA,kCAAA,uBAAoB,MAApB;AAfU,SAAAA;AAAA,GAAA;AAiBL,IAAM,oBAAsB,QAAK,eAAe;;;ADjChD,IAAM,0BAA4B,UAAO;AAAA,EAC9C,OAAS,QAAK,CAAC,uBAAuB,uBAAuB,sBAAsB,CAAC;AAAA,EACpF,MAAQ,UAAO;AAAA,IACb,MAAQ,WAAQ,OAAO;AAAA,IACvB,IAAM,OAAI;AAAA,EACZ,CAAC;AACH,CAAC;AACM,IAAM,gCAAkC,UAAO;AAAA,EACpD,OAAS,QAAK,CAAC,2BAA2B,CAAC;AAAA,EAC3C,MAAQ,UAAO;AAAA,IACb,MAAQ,WAAQ,OAAO;AAAA,IACvB,IAAM,OAAI;AAAA,IACV,QAAQ;AAAA,MACN,oBAAoB;AAAA,MACpB,eAAe;AAAA,IACjB;AAAA,EACF,CAAC;AACH,CAAC;;;AEnBD,IAAAC,KAAmB;AAYnB,IAAM,0BAA4B,sBAAmB,SAAS;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,iCAAmC;AAAA,EAC5C,UAAO;AAAA,IACP,MAAQ,UAAO;AAAA,IACf,YAAc,UAAO;AAAA,EACvB,CAAC;AAAA,EACD;AACF;","names":["z","z","OrderStatusEnum","z"]}
|
package/dist/webhooks.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OrderStatusSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XONZC4AG.mjs";
|
|
4
4
|
|
|
5
5
|
// src/bigcommerce-entities/webhooks/schemas/customer.scope.schema.ts
|
|
6
6
|
import * as z from "zod";
|
|
@@ -54,17 +54,18 @@ var OrderStatusWebhookScopeSchema = z2.object({
|
|
|
54
54
|
|
|
55
55
|
// src/bigcommerce-entities/webhooks/schemas/webhooks.schema.ts
|
|
56
56
|
import * as z3 from "zod";
|
|
57
|
-
var
|
|
57
|
+
var BigCommerceSomeOfSchema = z3.discriminatedUnion("scope", [
|
|
58
58
|
OrderWebhookScopeSchema,
|
|
59
59
|
OrderStatusWebhookScopeSchema,
|
|
60
60
|
CustomerWebhookScopeSchema,
|
|
61
61
|
CustomerAddressWebhookScopeSchema
|
|
62
62
|
]);
|
|
63
|
-
var BigCommerceWebhooksScopeSchema =
|
|
63
|
+
var BigCommerceWebhooksScopeSchema = z3.intersection(
|
|
64
64
|
z3.object({
|
|
65
|
-
hash:
|
|
66
|
-
created_at:
|
|
67
|
-
})
|
|
65
|
+
hash: z3.string(),
|
|
66
|
+
created_at: z3.number()
|
|
67
|
+
}),
|
|
68
|
+
BigCommerceSomeOfSchema
|
|
68
69
|
);
|
|
69
70
|
export {
|
|
70
71
|
BigCommerceWebhooksScopeSchema,
|
package/dist/webhooks.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/webhooks/schemas/customer.scope.schema.ts","../src/bigcommerce-entities/webhooks/schemas/order.scope.schema.ts","../src/bigcommerce-entities/webhooks/schemas/webhooks.schema.ts"],"sourcesContent":["import * as z from 'zod';\nexport const CustomerAddressWebhookScopeSchema = z.object({\n scope: z.enum([\n 'store/customer/address/created',\n 'store/customer/address/updated',\n 'store/customer/address/deleted',\n ]),\n data: z.object({\n type: z.literal('customer'),\n id: z.int(),\n address: z.object({\n customer_id: z.int(),\n }),\n }),\n});\nexport const CustomerWebhookScopeSchema = z.object({\n scope: z.enum([\n 'store/customer/created',\n 'store/customer/updated',\n 'store/customer/deleted',\n 'store/customer/payment/instrument/default/updated',\n ]),\n data: z.object({\n type: z.literal('customer'),\n id: z.int(),\n }),\n});\n
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/webhooks/schemas/customer.scope.schema.ts","../src/bigcommerce-entities/webhooks/schemas/order.scope.schema.ts","../src/bigcommerce-entities/webhooks/schemas/webhooks.schema.ts"],"sourcesContent":["import * as z from 'zod';\nexport const CustomerAddressWebhookScopeSchema = z.object({\n scope: z.enum([\n 'store/customer/address/created',\n 'store/customer/address/updated',\n 'store/customer/address/deleted',\n ]),\n data: z.object({\n type: z.literal('customer'),\n id: z.int(),\n address: z.object({\n customer_id: z.int(),\n }),\n }),\n});\nexport const CustomerWebhookScopeSchema = z.object({\n scope: z.enum([\n 'store/customer/created',\n 'store/customer/updated',\n 'store/customer/deleted',\n 'store/customer/payment/instrument/default/updated',\n ]),\n data: z.object({\n type: z.literal('customer'),\n id: z.int(),\n }),\n});\n","import * as z from 'zod';\nimport { OrderStatusSchema } from '../../orders/schemas/status.schema';\nexport const OrderWebhookScopeSchema = z.object({\n scope: z.enum(['store/order/created', 'store/order/updated', 'store/order/archived']),\n data: z.object({\n type: z.literal('order'),\n id: z.int(),\n }),\n});\nexport const OrderStatusWebhookScopeSchema = z.object({\n scope: z.enum(['store/order/statusUpdated']),\n data: z.object({\n type: z.literal('order'),\n id: z.int(),\n status: {\n previous_status_id: OrderStatusSchema,\n new_status_id: OrderStatusSchema,\n },\n }),\n});\n","import * as z from 'zod';\nimport {\n CustomerAddressWebhookScopeSchema,\n CustomerWebhookScopeSchema,\n} from './customer.scope.schema';\nimport { OrderStatusWebhookScopeSchema, OrderWebhookScopeSchema } from './order.scope.schema';\nexport {\n CustomerAddressWebhookScopeSchema,\n CustomerWebhookScopeSchema,\n} from './customer.scope.schema';\nexport { OrderStatusWebhookScopeSchema, OrderWebhookScopeSchema } from './order.scope.schema';\n\nconst BigCommerceSomeOfSchema = z.discriminatedUnion('scope', [\n OrderWebhookScopeSchema,\n OrderStatusWebhookScopeSchema,\n CustomerWebhookScopeSchema,\n CustomerAddressWebhookScopeSchema,\n]);\n\nexport const BigCommerceWebhooksScopeSchema = z.intersection(\n z.object({\n hash: z.string(),\n created_at: z.number(),\n }),\n BigCommerceSomeOfSchema,\n);\n"],"mappings":";;;;;AAAA,YAAY,OAAO;AACZ,IAAM,oCAAsC,SAAO;AAAA,EACxD,OAAS,OAAK;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,MAAQ,SAAO;AAAA,IACb,MAAQ,UAAQ,UAAU;AAAA,IAC1B,IAAM,MAAI;AAAA,IACV,SAAW,SAAO;AAAA,MAChB,aAAe,MAAI;AAAA,IACrB,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,OAAS,OAAK;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,MAAQ,SAAO;AAAA,IACb,MAAQ,UAAQ,UAAU;AAAA,IAC1B,IAAM,MAAI;AAAA,EACZ,CAAC;AACH,CAAC;;;AC1BD,YAAYA,QAAO;AAEZ,IAAM,0BAA4B,UAAO;AAAA,EAC9C,OAAS,QAAK,CAAC,uBAAuB,uBAAuB,sBAAsB,CAAC;AAAA,EACpF,MAAQ,UAAO;AAAA,IACb,MAAQ,WAAQ,OAAO;AAAA,IACvB,IAAM,OAAI;AAAA,EACZ,CAAC;AACH,CAAC;AACM,IAAM,gCAAkC,UAAO;AAAA,EACpD,OAAS,QAAK,CAAC,2BAA2B,CAAC;AAAA,EAC3C,MAAQ,UAAO;AAAA,IACb,MAAQ,WAAQ,OAAO;AAAA,IACvB,IAAM,OAAI;AAAA,IACV,QAAQ;AAAA,MACN,oBAAoB;AAAA,MACpB,eAAe;AAAA,IACjB;AAAA,EACF,CAAC;AACH,CAAC;;;ACnBD,YAAYC,QAAO;AAYnB,IAAM,0BAA4B,sBAAmB,SAAS;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,iCAAmC;AAAA,EAC5C,UAAO;AAAA,IACP,MAAQ,UAAO;AAAA,IACf,YAAc,UAAO;AAAA,EACvB,CAAC;AAAA,EACD;AACF;","names":["z","z"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edgebound/bigcommerce",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -52,13 +52,17 @@
|
|
|
52
52
|
"eslint": "9.39.1",
|
|
53
53
|
"tsup": "8.5.1",
|
|
54
54
|
"typescript": "5.9.3",
|
|
55
|
-
"@edgebound/
|
|
56
|
-
"@edgebound/
|
|
55
|
+
"@edgebound/eslint-config": "0.0.0",
|
|
56
|
+
"@edgebound/typescript-config": "0.0.0"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"effect": "3.19.14",
|
|
60
60
|
"zod": "4.3.4"
|
|
61
61
|
},
|
|
62
|
+
"peerDependencies": {
|
|
63
|
+
"effect": "3.19.14",
|
|
64
|
+
"zod": "4.3.4"
|
|
65
|
+
},
|
|
62
66
|
"scripts": {
|
|
63
67
|
"lint": "eslint . --max-warnings 0 --fix",
|
|
64
68
|
"check-types": "tsc --noEmit",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/orders/schemas/status.schema.ts"],"sourcesContent":["import * as z from 'zod';\nexport const OrderStatusNameEnumSchema = z.enum([\n 'Incomplete',\n 'Pending',\n 'Shipped',\n 'Partially Shipped',\n 'Refunded',\n 'Cancelled',\n 'Declined',\n 'Awaiting Payment',\n 'Awaiting Pickup',\n 'Awaiting Shipment',\n 'Completed',\n 'Awaiting Fulfillment',\n 'Manual Verification Required',\n 'Disputed',\n 'Partially Refunded',\n]);\nexport enum OrderStatusEnum {\n Incomplete = 0,\n Pending = 1,\n Shipped = 2,\n PartiallyShipped = 3,\n Refunded = 4,\n Cancelled = 5,\n Declined = 6,\n AwaitingPayment = 7,\n AwaitingPickup = 8,\n AwaitingShipment = 9,\n Completed = 10,\n AwaitingFulfillment = 11,\n ManualVerificationRequired = 12,\n Disputed = 13,\n PartiallyRefunded = 14,\n}\nexport const OrderStatusSchema = z.enum(OrderStatusEnum);\n\nexport type OrderStatusName = z.output<typeof OrderStatusNameEnumSchema>;\nexport type OrderStatus = z.output<typeof OrderStatusSchema>;\n"],"mappings":";AAAA,YAAY,OAAO;AACZ,IAAM,4BAA8B,OAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAK,kBAAL,kBAAKA,qBAAL;AACL,EAAAA,kCAAA,gBAAa,KAAb;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,sBAAmB,KAAnB;AACA,EAAAA,kCAAA,cAAW,KAAX;AACA,EAAAA,kCAAA,eAAY,KAAZ;AACA,EAAAA,kCAAA,cAAW,KAAX;AACA,EAAAA,kCAAA,qBAAkB,KAAlB;AACA,EAAAA,kCAAA,oBAAiB,KAAjB;AACA,EAAAA,kCAAA,sBAAmB,KAAnB;AACA,EAAAA,kCAAA,eAAY,MAAZ;AACA,EAAAA,kCAAA,yBAAsB,MAAtB;AACA,EAAAA,kCAAA,gCAA6B,MAA7B;AACA,EAAAA,kCAAA,cAAW,MAAX;AACA,EAAAA,kCAAA,uBAAoB,MAApB;AAfU,SAAAA;AAAA,GAAA;AAiBL,IAAM,oBAAsB,OAAK,eAAe;","names":["OrderStatusEnum"]}
|