@edgebound/bigcommerce 0.3.0 → 0.3.2
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-PAXNZ36X.mjs → chunk-V2WZ3SDN.mjs} +10 -3
- package/dist/chunk-V2WZ3SDN.mjs.map +1 -0
- package/dist/companies.d.mts +115 -1
- package/dist/companies.d.ts +115 -1
- package/dist/companies.js +125 -13
- package/dist/companies.js.map +1 -1
- package/dist/companies.mjs +111 -12
- package/dist/companies.mjs.map +1 -1
- package/dist/customers.d.mts +79 -1
- package/dist/customers.d.ts +79 -1
- package/dist/customers.js +143 -45
- package/dist/customers.js.map +1 -1
- package/dist/customers.mjs +131 -44
- package/dist/customers.mjs.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/orders.d.mts +7 -1254
- package/dist/orders.d.ts +7 -1254
- package/dist/orders.js +14 -9
- package/dist/orders.js.map +1 -1
- package/dist/orders.mjs +6 -8
- package/dist/orders.mjs.map +1 -1
- package/dist/payments.js +9 -2
- package/dist/payments.js.map +1 -1
- package/dist/payments.mjs +1 -1
- package/dist/priceLists.js +9 -2
- package/dist/priceLists.js.map +1 -1
- package/dist/priceLists.mjs +1 -1
- package/dist/products.js +9 -2
- package/dist/products.js.map +1 -1
- package/dist/products.mjs +1 -1
- package/dist/salesStaff.js +9 -2
- package/dist/salesStaff.js.map +1 -1
- package/dist/salesStaff.mjs +1 -1
- package/dist/webhooks.d.mts +6 -4
- package/dist/webhooks.d.ts +6 -4
- package/dist/webhooks.js +5 -3
- package/dist/webhooks.js.map +1 -1
- package/dist/webhooks.mjs +5 -3
- package/dist/webhooks.mjs.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-PAXNZ36X.mjs.map +0 -1
package/dist/orders.js
CHANGED
|
@@ -279,9 +279,16 @@ var getBase = ({
|
|
|
279
279
|
}
|
|
280
280
|
return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;
|
|
281
281
|
};
|
|
282
|
+
async function safeJson(response) {
|
|
283
|
+
const text = await response.text();
|
|
284
|
+
if (!text || text.trim() === "") {
|
|
285
|
+
return null;
|
|
286
|
+
}
|
|
287
|
+
return JSON.parse(text);
|
|
288
|
+
}
|
|
282
289
|
function processSuccessResponse(response, schema) {
|
|
283
290
|
return import_effect5.Effect.tryPromise({
|
|
284
|
-
try: () => response
|
|
291
|
+
try: () => safeJson(response),
|
|
285
292
|
catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
|
|
286
293
|
}).pipe(
|
|
287
294
|
import_effect5.Effect.tapError(
|
|
@@ -296,7 +303,7 @@ function processSuccessResponse(response, schema) {
|
|
|
296
303
|
var processErrorResponse = (response) => {
|
|
297
304
|
const code = response.status;
|
|
298
305
|
return import_effect5.Effect.tryPromise({
|
|
299
|
-
try: () => response
|
|
306
|
+
try: () => safeJson(response),
|
|
300
307
|
catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
|
|
301
308
|
}).pipe(
|
|
302
309
|
import_effect5.Effect.tapError((error) => import_effect5.Effect.logError("Error parsing error response", error.cause)),
|
|
@@ -574,13 +581,11 @@ var z8 = __toESM(require("zod"));
|
|
|
574
581
|
|
|
575
582
|
// src/bigcommerce-entities/orders/schemas/order-shipping-address.schema.ts
|
|
576
583
|
var z7 = __toESM(require("zod"));
|
|
577
|
-
var OrderShippingAddressSchema = AddressSchema.extend(
|
|
578
|
-
z7.
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
})
|
|
583
|
-
);
|
|
584
|
+
var OrderShippingAddressSchema = AddressSchema.extend({
|
|
585
|
+
id: z7.int(),
|
|
586
|
+
order_id: z7.int(),
|
|
587
|
+
shipping_method: z7.string()
|
|
588
|
+
});
|
|
584
589
|
|
|
585
590
|
// src/bigcommerce-entities/orders/get-order-address.ts
|
|
586
591
|
var getOrderAddresses = ({
|
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/find-orders.criteria.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/get-order.ts","../src/bigcommerce-entities/orders/get-order-address.ts","../src/bigcommerce-entities/orders/schemas/order-shipping-address.schema.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-order-address';\nexport * from './get-products';\nexport * from './schemas';\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { FindOrdersCriteriaSchema } from './schemas/find-orders.criteria';\nimport { OrderSchema, type Order } from './schemas/order.schema';\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 validatedQuery = yield* validateInput(FindOrdersCriteriaSchema, criteria ?? {});\n const orders = yield* fetcher.fetch({\n query: stringify(validatedQuery),\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: Order[] = [];\n let page = 1;\n let hasMoreOrders = true;\n\n while (hasMoreOrders) {\n const orders = yield* findOrders({\n ...criteria,\n page,\n limit: DEFAULTS.orders.getAllBatchSize,\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 DEFAULTS = {\n retry: {\n policy: Schedule.exponential(Duration.millis(200), 2).pipe(\n Schedule.intersect(Schedule.recurs(3)),\n ),\n },\n timeout: {\n ms: 30000,\n },\n bigcommerceUrls: {\n b2b: 'https://api-b2b.bigcommerce.com/api',\n regular: 'https://api.bigcommerce.com/stores',\n },\n customers: {\n getBatchSize: 250,\n },\n salesStaff: {\n getBatchSize: 250,\n },\n companies: {\n salesStaffAssignments: {\n assignBatchSize: 10,\n concurrency: 2,\n },\n extraFields: {\n getBatchSize: 250,\n },\n roles: {\n getBatchSize: 250,\n },\n },\n products: {\n updateBatchSize: 5,\n updateConcurrency: 2,\n inventory: {\n updateBatchSize: 2000,\n updateConcurrency: 2,\n },\n },\n orders: {\n getAllBatchSize: 250,\n shippingAddresses: {\n getAllBatchSize: 250,\n },\n products: {\n getAllBatchSize: 250,\n },\n },\n priceLists: {\n getAllBatchSize: 250,\n },\n} as const;\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class BigCommerceUnprocessableEntityError extends Data.TaggedError(\n 'BigCommerceUnprocessableEntityError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceUnauthorizedError extends Data.TaggedError(\n 'BigCommerceUnauthorizedError',\n) {}\n\nexport class BigCommerceForbiddenError extends Data.TaggedError('BigCommerceForbiddenError') {}\n\nexport class BigCommerceNotFoundError extends Data.TaggedError('BigCommerceNotFoundError') {}\n\nexport class BigCommerceConflictError extends Data.TaggedError('BigCommerceConflictError')<{\n readonly details: unknown;\n}> {}\n\nexport class BigCommerceConnectionError extends Data.TaggedError('BigCommerceConnectionError')<{\n readonly message: string;\n readonly type: 'timeout' | 'internalError' | 'unknown';\n}> {}\n\nexport class BigCommerceUnknownError extends Data.TaggedError('BigCommerceUnknownError')<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidResponseError extends Data.TaggedError(\n 'BigCommerceInvalidResponseError',\n)<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidRequestError extends Data.TaggedError(\n 'BigCommerceInvalidRequestError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceParseResponseError extends Data.TaggedError(\n 'BigCommerceParseResponseError',\n)<{\n readonly error: z.ZodError;\n}> {}\n\nexport type SomeBigCommerceError =\n | BigCommerceUnprocessableEntityError\n | BigCommerceUnauthorizedError\n | BigCommerceForbiddenError\n | BigCommerceNotFoundError\n | BigCommerceConflictError\n | BigCommerceConnectionError\n | BigCommerceUnknownError\n | BigCommerceInvalidResponseError\n | BigCommerceInvalidRequestError\n | BigCommerceParseResponseError;\n","import { Context, Effect } from 'effect';\nimport * as z from 'zod';\nimport { type SomeBigCommerceError } from './bigcommerce.error';\nexport type BigCommerceFetchMethods = 'GET' | 'POST' | 'PUT' | 'DELETE';\nexport interface BigCommerceFetchParams<\n // Always send json for now, maybe later send a Blob\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n> {\n readonly body?: Body;\n readonly query?: Query;\n readonly method: BigCommerceFetchMethods;\n readonly path: string;\n readonly headers?: Record<string, string>;\n readonly isB2B: boolean;\n readonly version: 'v3' | 'v2';\n readonly resultSchema: Result;\n}\n\nexport class BigCommerceFetcher extends Context.Tag('BigCommerceFetcher')<\n BigCommerceFetcher,\n {\n readonly fetch: <\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n >(\n params: BigCommerceFetchParams<Body, Query, Result>,\n ) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;\n }\n>() {}\n","import { Effect, Layer, Match } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../constants';\nimport {\n BigCommerceConflictError,\n BigCommerceConnectionError,\n BigCommerceForbiddenError,\n BigCommerceInvalidRequestError,\n BigCommerceInvalidResponseError,\n BigCommerceNotFoundError,\n BigCommerceParseResponseError,\n BigCommerceUnauthorizedError,\n BigCommerceUnknownError,\n BigCommerceUnprocessableEntityError,\n type SomeBigCommerceError,\n} from './bigcommerce.error';\nimport { BigCommerceFetcher } from './bigcommerce.fetcher';\nimport { BigCommerceConfig, type NoBigCommerceConfigError } from './config';\nconst BigCommerceStatusCodes = {\n UNAUTHORIZED: 401,\n CONFLICT: 409,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n INVALID_REQUEST: 400,\n} as const;\n\nexport const BigCommerceFetcherLive: Layer.Layer<\n BigCommerceFetcher,\n NoBigCommerceConfigError,\n BigCommerceConfig\n> = Layer.effect(\n BigCommerceFetcher,\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const storeHash = yield* config.getStoreHash;\n const accessToken = yield* config.getAccessToken;\n const timeout = yield* config.getTimeout;\n\n return {\n fetch: (params) => {\n const base = getBase(params);\n const headers: Record<string, string> = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'x-auth-token': accessToken,\n };\n\n if (params.isB2B) {\n headers['x-store-hash'] = storeHash;\n }\n const url = applyParams(base.replace('[storeHash]', storeHash), params.query);\n\n return Effect.tryPromise({\n try: () =>\n fetch(url, {\n headers,\n signal: AbortSignal.timeout(timeout),\n method: params.method,\n ...(params.body && { body: JSON.stringify(params.body) }),\n }),\n catch: (error) => {\n if (error instanceof Error && error.name === 'TimeoutError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n if (error instanceof Error && error.name === 'AbortError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n return new BigCommerceUnknownError({ cause: error });\n },\n }).pipe(\n Effect.tapError((error) =>\n Effect.logError('Failed to fetch from BigCommerce API', error.cause),\n ),\n Effect.flatMap((response) => transformResponse(response, params.resultSchema)),\n );\n },\n };\n }),\n);\nconst applyParams = (url: string, params?: Record<string, string | number> | string): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n if (typeof params === 'string') {\n base.search = params;\n } else {\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\n }\n }\n return base;\n};\n\nconst getBase = ({\n isB2B,\n path,\n version,\n}: {\n isB2B: boolean;\n path: string;\n version: 'v3' | 'v2';\n}): string => {\n if (isB2B) {\n return `${DEFAULTS.bigcommerceUrls.b2b}/${version}/io/${path}`;\n }\n return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;\n};\nfunction processSuccessResponse<Schema extends z.ZodTypeAny>(response: Response, schema: Schema) {\n return Effect.tryPromise({\n try: () => response.json(),\n catch: (error) => new BigCommerceInvalidResponseError({ cause: error }),\n }).pipe(\n Effect.tapError((error) =>\n Effect.logError('Error parsing response from BigCommerce API', error.cause),\n ),\n Effect.tryMap({\n try: (json) => schema.parse(json),\n catch: (error) => new BigCommerceParseResponseError({ error: error as z.ZodError }),\n }),\n );\n}\nconst processErrorResponse = (response: Response) => {\n const code = response.status;\n return Effect.tryPromise({\n try: () => response.json(),\n catch: (error) => new BigCommerceInvalidResponseError({ cause: error }),\n }).pipe(\n Effect.tapError((error) => Effect.logError('Error parsing error response', error.cause)),\n Effect.flatMap((errorDetails) =>\n Effect.fail(\n Match.value(code).pipe(\n Match.when(\n BigCommerceStatusCodes.INVALID_REQUEST,\n () => new BigCommerceInvalidRequestError({ errorDetails }),\n ),\n Match.when(BigCommerceStatusCodes.UNAUTHORIZED, () => new BigCommerceUnauthorizedError()),\n Match.when(BigCommerceStatusCodes.FORBIDDEN, () => new BigCommerceForbiddenError()),\n Match.when(BigCommerceStatusCodes.NOT_FOUND, () => new BigCommerceNotFoundError()),\n Match.when(\n BigCommerceStatusCodes.CONFLICT,\n () => new BigCommerceConflictError({ details: errorDetails }),\n ),\n Match.when(\n BigCommerceStatusCodes.UNPROCESSABLE_ENTITY,\n () => new BigCommerceUnprocessableEntityError({ errorDetails }),\n ),\n Match.when(\n (code) => code >= 500,\n () =>\n new BigCommerceConnectionError({\n message: `Server error: ${code}`,\n type:\n code === BigCommerceStatusCodes.INTERNAL_SERVER_ERROR\n ? 'internalError'\n : code === BigCommerceStatusCodes.BAD_GATEWAY ||\n code === BigCommerceStatusCodes.GATEWAY_TIMEOUT\n ? 'timeout'\n : 'internalError',\n }),\n ),\n Match.orElse(() => new BigCommerceUnknownError({ cause: errorDetails })),\n ),\n ),\n ),\n );\n};\n\nconst transformResponse = <Schema extends z.ZodType>(\n response: Response,\n schema: Schema,\n): Effect.Effect<z.output<Schema>, SomeBigCommerceError> => {\n if (response.ok) {\n return processSuccessResponse(response, schema);\n }\n return processErrorResponse(response);\n};\n\n// type PendingErrors = Exclude<\n// SomeBigCommerceError,\n// Effect.Effect.Error<ReturnType<typeof processErrorResponse>> | BigCommerceParseResponseError\n// >;\n","import { Config, Context, Data, Effect, Layer } from 'effect';\nimport { DEFAULTS } from '../constants';\n\n// Define a custom error type using Data.TaggedError\nexport class NoBigCommerceConfigError extends Data.TaggedError('NoBigCommerceConfigError')<{\n readonly key: string;\n}> {}\n\nexport class BigCommerceConfig extends Context.Tag('BigCommerceConfig')<\n BigCommerceConfig,\n {\n readonly getStoreHash: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError>;\n }\n>() {}\n\nconst getBigCommerceConfig = (key: string) => {\n return Config.nested(Config.string(key), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key })),\n );\n};\n\nconst getBigCommerceTimeout = () => {\n return Config.nested(Config.number('TIMEOUT'), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key: 'TIMEOUT' })),\n // Default to 30 seconds if not configured\n Effect.orElse(() => Effect.succeed(DEFAULTS.timeout.ms)),\n );\n};\n\nexport const BigCommerceConfigLive = Layer.effect(\n BigCommerceConfig,\n Effect.gen(function* () {\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n getBigCommerceConfig('STORE_HASH'),\n getBigCommerceConfig('CLIENT_ID'),\n getBigCommerceConfig('CLIENT_SECRET'),\n getBigCommerceConfig('ACCESS_TOKEN'),\n getBigCommerceTimeout(),\n ]);\n\n return {\n getStoreHash: Effect.succeed(storeHash),\n getClientId: Effect.succeed(clientId),\n getClientSecret: Effect.succeed(clientSecret),\n getAccessToken: Effect.succeed(accessToken),\n getTimeout: Effect.succeed(timeout),\n };\n }),\n);\n\nexport const BigCommerceConfigTest = Layer.succeed(BigCommerceConfig, {\n getAccessToken: Effect.succeed('test'),\n getClientId: Effect.succeed('test'),\n getClientSecret: Effect.succeed('test'),\n getStoreHash: Effect.succeed('test'),\n getTimeout: Effect.succeed(DEFAULTS.timeout.ms),\n});\n\nexport const validateBigCommerceConfig = () =>\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n config.getStoreHash,\n config.getClientId,\n config.getClientSecret,\n config.getAccessToken,\n config.getTimeout,\n ]);\n\n return {\n storeHash,\n clientId,\n clientSecret,\n accessToken,\n timeout,\n };\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { InputValidationError } from './validation.error';\nexport const validateInput = <Schema extends z.ZodType>(schema: Schema, data: z.input<Schema>) => {\n return Effect.try({\n try: () => schema.parse(data),\n catch: (error) => new InputValidationError({ input: data, error: error as z.ZodError }),\n });\n};\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class InputValidationError extends Data.TaggedError('InputValidationError')<{\n input: unknown;\n error: z.ZodError;\n}> {}\n","import * as z from 'zod';\nimport { DEFAULTS } from '../../../constants';\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(DEFAULTS.orders.getAllBatchSize).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 * 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().optional().nullable(),\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\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});\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 { Effect } from 'effect';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderSchema } from './schemas/order.schema';\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 { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport {\n OrderShippingAddressSchema,\n type OrderShippingAddress,\n} from './schemas/order-shipping-address.schema';\nconst getOrderAddresses = ({\n orderId,\n limit = DEFAULTS.orders.shippingAddresses.getAllBatchSize,\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}/shipping_addresses`,\n isB2B: false,\n version: 'v2',\n resultSchema: z.union([z.array(OrderShippingAddressSchema), z.literal(''), z.literal(null)]),\n query: stringify({\n limit,\n page,\n }),\n });\n }).pipe(Effect.map((arr) => arr || []));\n};\n\nexport const getAllOrderShippingAddresses = (orderId: number) => {\n return Effect.gen(function* () {\n const all: OrderShippingAddress[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const result = yield* getOrderAddresses({\n orderId,\n page,\n limit: DEFAULTS.orders.shippingAddresses.getAllBatchSize,\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';\nimport { AddressSchema } from '../../addresses/schemas/address.schema';\nexport const OrderShippingAddressSchema = AddressSchema.extend(\n z.object({\n id: z.int(),\n order_id: z.int(),\n shipping_method: z.string(),\n }),\n);\n\nexport type OrderShippingAddress = z.output<typeof OrderShippingAddressSchema>;\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderProductSchema, type OrderProduct } from './schemas/order-product.schema';\nconst getOrderProducts = ({\n orderId,\n limit = DEFAULTS.orders.products.getAllBatchSize,\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: stringify({\n limit,\n 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 });\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","z","OrderStatusEnum","import_effect","import_effect","import_node_querystring","z","z","import_effect","import_node_querystring","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/find-orders.criteria.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/get-order.ts","../src/bigcommerce-entities/orders/get-order-address.ts","../src/bigcommerce-entities/orders/schemas/order-shipping-address.schema.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-order-address';\nexport * from './get-products';\nexport * from './schemas';\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { FindOrdersCriteriaSchema } from './schemas/find-orders.criteria';\nimport { OrderSchema, type Order } from './schemas/order.schema';\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 validatedQuery = yield* validateInput(FindOrdersCriteriaSchema, criteria ?? {});\n const orders = yield* fetcher.fetch({\n query: stringify(validatedQuery),\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: Order[] = [];\n let page = 1;\n let hasMoreOrders = true;\n\n while (hasMoreOrders) {\n const orders = yield* findOrders({\n ...criteria,\n page,\n limit: DEFAULTS.orders.getAllBatchSize,\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 DEFAULTS = {\n retry: {\n policy: Schedule.exponential(Duration.millis(200), 2).pipe(\n Schedule.intersect(Schedule.recurs(3)),\n ),\n },\n timeout: {\n ms: 30000,\n },\n bigcommerceUrls: {\n b2b: 'https://api-b2b.bigcommerce.com/api',\n regular: 'https://api.bigcommerce.com/stores',\n },\n customers: {\n getBatchSize: 250,\n },\n salesStaff: {\n getBatchSize: 250,\n },\n companies: {\n salesStaffAssignments: {\n assignBatchSize: 10,\n concurrency: 2,\n },\n extraFields: {\n getBatchSize: 250,\n },\n roles: {\n getBatchSize: 250,\n },\n },\n products: {\n updateBatchSize: 5,\n updateConcurrency: 2,\n inventory: {\n updateBatchSize: 2000,\n updateConcurrency: 2,\n },\n },\n orders: {\n getAllBatchSize: 250,\n shippingAddresses: {\n getAllBatchSize: 250,\n },\n products: {\n getAllBatchSize: 250,\n },\n },\n priceLists: {\n getAllBatchSize: 250,\n },\n} as const;\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class BigCommerceUnprocessableEntityError extends Data.TaggedError(\n 'BigCommerceUnprocessableEntityError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceUnauthorizedError extends Data.TaggedError(\n 'BigCommerceUnauthorizedError',\n) {}\n\nexport class BigCommerceForbiddenError extends Data.TaggedError('BigCommerceForbiddenError') {}\n\nexport class BigCommerceNotFoundError extends Data.TaggedError('BigCommerceNotFoundError') {}\n\nexport class BigCommerceConflictError extends Data.TaggedError('BigCommerceConflictError')<{\n readonly details: unknown;\n}> {}\n\nexport class BigCommerceConnectionError extends Data.TaggedError('BigCommerceConnectionError')<{\n readonly message: string;\n readonly type: 'timeout' | 'internalError' | 'unknown';\n}> {}\n\nexport class BigCommerceUnknownError extends Data.TaggedError('BigCommerceUnknownError')<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidResponseError extends Data.TaggedError(\n 'BigCommerceInvalidResponseError',\n)<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidRequestError extends Data.TaggedError(\n 'BigCommerceInvalidRequestError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceParseResponseError extends Data.TaggedError(\n 'BigCommerceParseResponseError',\n)<{\n readonly error: z.ZodError;\n}> {}\n\nexport type SomeBigCommerceError =\n | BigCommerceUnprocessableEntityError\n | BigCommerceUnauthorizedError\n | BigCommerceForbiddenError\n | BigCommerceNotFoundError\n | BigCommerceConflictError\n | BigCommerceConnectionError\n | BigCommerceUnknownError\n | BigCommerceInvalidResponseError\n | BigCommerceInvalidRequestError\n | BigCommerceParseResponseError;\n","import { Context, Effect } from 'effect';\nimport * as z from 'zod';\nimport { type SomeBigCommerceError } from './bigcommerce.error';\nexport type BigCommerceFetchMethods = 'GET' | 'POST' | 'PUT' | 'DELETE';\nexport interface BigCommerceFetchParams<\n // Always send json for now, maybe later send a Blob\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n> {\n readonly body?: Body;\n readonly query?: Query;\n readonly method: BigCommerceFetchMethods;\n readonly path: string;\n readonly headers?: Record<string, string>;\n readonly isB2B: boolean;\n readonly version: 'v3' | 'v2';\n readonly resultSchema: Result;\n}\n\nexport class BigCommerceFetcher extends Context.Tag('BigCommerceFetcher')<\n BigCommerceFetcher,\n {\n readonly fetch: <\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n >(\n params: BigCommerceFetchParams<Body, Query, Result>,\n ) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;\n }\n>() {}\n","import { Effect, Layer, Match } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../constants';\nimport {\n BigCommerceConflictError,\n BigCommerceConnectionError,\n BigCommerceForbiddenError,\n BigCommerceInvalidRequestError,\n BigCommerceInvalidResponseError,\n BigCommerceNotFoundError,\n BigCommerceParseResponseError,\n BigCommerceUnauthorizedError,\n BigCommerceUnknownError,\n BigCommerceUnprocessableEntityError,\n type SomeBigCommerceError,\n} from './bigcommerce.error';\nimport { BigCommerceFetcher } from './bigcommerce.fetcher';\nimport { BigCommerceConfig, type NoBigCommerceConfigError } from './config';\nconst BigCommerceStatusCodes = {\n UNAUTHORIZED: 401,\n CONFLICT: 409,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n INVALID_REQUEST: 400,\n} as const;\n\nexport const BigCommerceFetcherLive: Layer.Layer<\n BigCommerceFetcher,\n NoBigCommerceConfigError,\n BigCommerceConfig\n> = Layer.effect(\n BigCommerceFetcher,\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const storeHash = yield* config.getStoreHash;\n const accessToken = yield* config.getAccessToken;\n const timeout = yield* config.getTimeout;\n\n return {\n fetch: (params) => {\n const base = getBase(params);\n const headers: Record<string, string> = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'x-auth-token': accessToken,\n };\n\n if (params.isB2B) {\n headers['x-store-hash'] = storeHash;\n }\n const url = applyParams(base.replace('[storeHash]', storeHash), params.query);\n\n return Effect.tryPromise({\n try: () =>\n fetch(url, {\n headers,\n signal: AbortSignal.timeout(timeout),\n method: params.method,\n ...(params.body && { body: JSON.stringify(params.body) }),\n }),\n catch: (error) => {\n if (error instanceof Error && error.name === 'TimeoutError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n if (error instanceof Error && error.name === 'AbortError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n return new BigCommerceUnknownError({ cause: error });\n },\n }).pipe(\n Effect.tapError((error) =>\n Effect.logError('Failed to fetch from BigCommerce API', error.cause),\n ),\n Effect.flatMap((response) => transformResponse(response, params.resultSchema)),\n );\n },\n };\n }),\n);\nconst applyParams = (url: string, params?: Record<string, string | number> | string): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n if (typeof params === 'string') {\n base.search = params;\n } else {\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\n }\n }\n return base;\n};\n\nconst getBase = ({\n isB2B,\n path,\n version,\n}: {\n isB2B: boolean;\n path: string;\n version: 'v3' | 'v2';\n}): string => {\n if (isB2B) {\n return `${DEFAULTS.bigcommerceUrls.b2b}/${version}/io/${path}`;\n }\n return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;\n};\n\nasync function safeJson<T>(response: Response): Promise<T | null> {\n const text = await response.text();\n\n if (!text || text.trim() === '') {\n return null;\n }\n\n return JSON.parse(text) as T;\n}\n\nfunction processSuccessResponse<Schema extends z.ZodTypeAny>(response: Response, schema: Schema) {\n return Effect.tryPromise({\n try: () => safeJson(response),\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: () => safeJson(response),\n catch: (error) => new BigCommerceInvalidResponseError({ cause: error }),\n }).pipe(\n Effect.tapError((error) => Effect.logError('Error parsing error response', error.cause)),\n Effect.flatMap((errorDetails) =>\n Effect.fail(\n Match.value(code).pipe(\n Match.when(\n BigCommerceStatusCodes.INVALID_REQUEST,\n () => new BigCommerceInvalidRequestError({ errorDetails }),\n ),\n Match.when(BigCommerceStatusCodes.UNAUTHORIZED, () => new BigCommerceUnauthorizedError()),\n Match.when(BigCommerceStatusCodes.FORBIDDEN, () => new BigCommerceForbiddenError()),\n Match.when(BigCommerceStatusCodes.NOT_FOUND, () => new BigCommerceNotFoundError()),\n Match.when(\n BigCommerceStatusCodes.CONFLICT,\n () => new BigCommerceConflictError({ details: errorDetails }),\n ),\n Match.when(\n BigCommerceStatusCodes.UNPROCESSABLE_ENTITY,\n () => new BigCommerceUnprocessableEntityError({ errorDetails }),\n ),\n Match.when(\n (code) => code >= 500,\n () =>\n new BigCommerceConnectionError({\n message: `Server error: ${code}`,\n type:\n code === BigCommerceStatusCodes.INTERNAL_SERVER_ERROR\n ? 'internalError'\n : code === BigCommerceStatusCodes.BAD_GATEWAY ||\n code === BigCommerceStatusCodes.GATEWAY_TIMEOUT\n ? 'timeout'\n : 'internalError',\n }),\n ),\n Match.orElse(() => new BigCommerceUnknownError({ cause: errorDetails })),\n ),\n ),\n ),\n );\n};\n\nconst transformResponse = <Schema extends z.ZodType>(\n response: Response,\n schema: Schema,\n): Effect.Effect<z.output<Schema>, SomeBigCommerceError> => {\n if (response.ok) {\n return processSuccessResponse(response, schema);\n }\n return processErrorResponse(response);\n};\n\n// type PendingErrors = Exclude<\n// SomeBigCommerceError,\n// Effect.Effect.Error<ReturnType<typeof processErrorResponse>> | BigCommerceParseResponseError\n// >;\n","import { Config, Context, Data, Effect, Layer } from 'effect';\nimport { DEFAULTS } from '../constants';\n\n// Define a custom error type using Data.TaggedError\nexport class NoBigCommerceConfigError extends Data.TaggedError('NoBigCommerceConfigError')<{\n readonly key: string;\n}> {}\n\nexport class BigCommerceConfig extends Context.Tag('BigCommerceConfig')<\n BigCommerceConfig,\n {\n readonly getStoreHash: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError>;\n }\n>() {}\n\nconst getBigCommerceConfig = (key: string) => {\n return Config.nested(Config.string(key), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key })),\n );\n};\n\nconst getBigCommerceTimeout = () => {\n return Config.nested(Config.number('TIMEOUT'), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key: 'TIMEOUT' })),\n // Default to 30 seconds if not configured\n Effect.orElse(() => Effect.succeed(DEFAULTS.timeout.ms)),\n );\n};\n\nexport const BigCommerceConfigLive = Layer.effect(\n BigCommerceConfig,\n Effect.gen(function* () {\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n getBigCommerceConfig('STORE_HASH'),\n getBigCommerceConfig('CLIENT_ID'),\n getBigCommerceConfig('CLIENT_SECRET'),\n getBigCommerceConfig('ACCESS_TOKEN'),\n getBigCommerceTimeout(),\n ]);\n\n return {\n getStoreHash: Effect.succeed(storeHash),\n getClientId: Effect.succeed(clientId),\n getClientSecret: Effect.succeed(clientSecret),\n getAccessToken: Effect.succeed(accessToken),\n getTimeout: Effect.succeed(timeout),\n };\n }),\n);\n\nexport const BigCommerceConfigTest = Layer.succeed(BigCommerceConfig, {\n getAccessToken: Effect.succeed('test'),\n getClientId: Effect.succeed('test'),\n getClientSecret: Effect.succeed('test'),\n getStoreHash: Effect.succeed('test'),\n getTimeout: Effect.succeed(DEFAULTS.timeout.ms),\n});\n\nexport const validateBigCommerceConfig = () =>\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n config.getStoreHash,\n config.getClientId,\n config.getClientSecret,\n config.getAccessToken,\n config.getTimeout,\n ]);\n\n return {\n storeHash,\n clientId,\n clientSecret,\n accessToken,\n timeout,\n };\n });\n","import { Effect } from 'effect';\nimport * as z from 'zod';\nimport { InputValidationError } from './validation.error';\nexport const validateInput = <Schema extends z.ZodType>(schema: Schema, data: z.input<Schema>) => {\n return Effect.try({\n try: () => schema.parse(data),\n catch: (error) => new InputValidationError({ input: data, error: error as z.ZodError }),\n });\n};\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class InputValidationError extends Data.TaggedError('InputValidationError')<{\n input: unknown;\n error: z.ZodError;\n}> {}\n","import * as z from 'zod';\nimport { DEFAULTS } from '../../../constants';\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(DEFAULTS.orders.getAllBatchSize).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 * 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().optional().nullable(),\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\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});\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 { Effect } from 'effect';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderSchema } from './schemas/order.schema';\n\nexport const getOrder = (orderId: number) => {\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 { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport {\n OrderShippingAddressSchema,\n type OrderShippingAddress,\n} from './schemas/order-shipping-address.schema';\nconst getOrderAddresses = ({\n orderId,\n limit = DEFAULTS.orders.shippingAddresses.getAllBatchSize,\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}/shipping_addresses`,\n isB2B: false,\n version: 'v2',\n resultSchema: z.union([z.array(OrderShippingAddressSchema), z.literal(''), z.literal(null)]),\n query: stringify({\n limit,\n page,\n }),\n });\n }).pipe(Effect.map((arr) => arr || []));\n};\n\nexport const getAllOrderShippingAddresses = (orderId: number) => {\n return Effect.gen(function* () {\n const all: OrderShippingAddress[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const result = yield* getOrderAddresses({\n orderId,\n page,\n limit: DEFAULTS.orders.shippingAddresses.getAllBatchSize,\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';\nimport { AddressSchema } from '../../addresses/schemas/address.schema';\nexport const OrderShippingAddressSchema = AddressSchema.extend({\n id: z.int(),\n order_id: z.int(),\n shipping_method: z.string(),\n});\n\nexport type OrderShippingAddress = z.output<typeof OrderShippingAddressSchema>;\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderProductSchema, type OrderProduct } from './schemas/order-product.schema';\nconst getOrderProducts = ({\n orderId,\n limit = DEFAULTS.orders.products.getAllBatchSize,\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: stringify({\n limit,\n 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 });\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","z","OrderStatusEnum","import_effect","import_effect","import_node_querystring","z","z","import_effect","import_node_querystring","z","z"]}
|
package/dist/orders.mjs
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
BigCommerceFetcher,
|
|
14
14
|
DEFAULTS
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-V2WZ3SDN.mjs";
|
|
16
16
|
|
|
17
17
|
// src/bigcommerce-entities/orders/find-orders.ts
|
|
18
18
|
import { Effect } from "effect";
|
|
@@ -171,13 +171,11 @@ import * as z5 from "zod";
|
|
|
171
171
|
|
|
172
172
|
// src/bigcommerce-entities/orders/schemas/order-shipping-address.schema.ts
|
|
173
173
|
import * as z4 from "zod";
|
|
174
|
-
var OrderShippingAddressSchema = AddressSchema.extend(
|
|
175
|
-
z4.
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
})
|
|
180
|
-
);
|
|
174
|
+
var OrderShippingAddressSchema = AddressSchema.extend({
|
|
175
|
+
id: z4.int(),
|
|
176
|
+
order_id: z4.int(),
|
|
177
|
+
shipping_method: z4.string()
|
|
178
|
+
});
|
|
181
179
|
|
|
182
180
|
// src/bigcommerce-entities/orders/get-order-address.ts
|
|
183
181
|
var getOrderAddresses = ({
|
package/dist/orders.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/orders/find-orders.ts","../src/bigcommerce-entities/orders/schemas/find-orders.criteria.ts","../src/bigcommerce-entities/orders/schemas/order.schema.ts","../src/bigcommerce-entities/orders/get-order.ts","../src/bigcommerce-entities/orders/get-order-address.ts","../src/bigcommerce-entities/orders/schemas/order-shipping-address.schema.ts","../src/bigcommerce-entities/orders/get-products.ts","../src/bigcommerce-entities/orders/schemas/order-product.schema.ts"],"sourcesContent":["import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { FindOrdersCriteriaSchema } from './schemas/find-orders.criteria';\nimport { OrderSchema, type Order } from './schemas/order.schema';\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 validatedQuery = yield* validateInput(FindOrdersCriteriaSchema, criteria ?? {});\n const orders = yield* fetcher.fetch({\n query: stringify(validatedQuery),\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: Order[] = [];\n let page = 1;\n let hasMoreOrders = true;\n\n while (hasMoreOrders) {\n const orders = yield* findOrders({\n ...criteria,\n page,\n limit: DEFAULTS.orders.getAllBatchSize,\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 { DEFAULTS } 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(DEFAULTS.orders.getAllBatchSize).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 * 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().optional().nullable(),\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\nexport type Order = z.output<typeof OrderSchema>;\n","import { Effect } from 'effect';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderSchema } from './schemas/order.schema';\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 { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport {\n OrderShippingAddressSchema,\n type OrderShippingAddress,\n} from './schemas/order-shipping-address.schema';\nconst getOrderAddresses = ({\n orderId,\n limit = DEFAULTS.orders.shippingAddresses.getAllBatchSize,\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}/shipping_addresses`,\n isB2B: false,\n version: 'v2',\n resultSchema: z.union([z.array(OrderShippingAddressSchema), z.literal(''), z.literal(null)]),\n query: stringify({\n limit,\n page,\n }),\n });\n }).pipe(Effect.map((arr) => arr || []));\n};\n\nexport const getAllOrderShippingAddresses = (orderId: number) => {\n return Effect.gen(function* () {\n const all: OrderShippingAddress[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const result = yield* getOrderAddresses({\n orderId,\n page,\n limit: DEFAULTS.orders.shippingAddresses.getAllBatchSize,\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';\nimport { AddressSchema } from '../../addresses/schemas/address.schema';\nexport const OrderShippingAddressSchema = AddressSchema.extend(\n z.object({\n id: z.int(),\n order_id: z.int(),\n shipping_method: z.string(),\n }),\n);\n\nexport type OrderShippingAddress = z.output<typeof OrderShippingAddressSchema>;\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderProductSchema, type OrderProduct } from './schemas/order-product.schema';\nconst getOrderProducts = ({\n orderId,\n limit = DEFAULTS.orders.products.getAllBatchSize,\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: stringify({\n limit,\n 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 });\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","Effect","Effect","Effect","stringify","z","z","Effect","stringify","Effect","stringify","z","z","Effect","stringify"]}
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/orders/find-orders.ts","../src/bigcommerce-entities/orders/schemas/find-orders.criteria.ts","../src/bigcommerce-entities/orders/schemas/order.schema.ts","../src/bigcommerce-entities/orders/get-order.ts","../src/bigcommerce-entities/orders/get-order-address.ts","../src/bigcommerce-entities/orders/schemas/order-shipping-address.schema.ts","../src/bigcommerce-entities/orders/get-products.ts","../src/bigcommerce-entities/orders/schemas/order-product.schema.ts"],"sourcesContent":["import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { validateInput } from '../../validation';\nimport { FindOrdersCriteriaSchema } from './schemas/find-orders.criteria';\nimport { OrderSchema, type Order } from './schemas/order.schema';\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 validatedQuery = yield* validateInput(FindOrdersCriteriaSchema, criteria ?? {});\n const orders = yield* fetcher.fetch({\n query: stringify(validatedQuery),\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: Order[] = [];\n let page = 1;\n let hasMoreOrders = true;\n\n while (hasMoreOrders) {\n const orders = yield* findOrders({\n ...criteria,\n page,\n limit: DEFAULTS.orders.getAllBatchSize,\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 { DEFAULTS } 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(DEFAULTS.orders.getAllBatchSize).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 * 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().optional().nullable(),\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\nexport type Order = z.output<typeof OrderSchema>;\n","import { Effect } from 'effect';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderSchema } from './schemas/order.schema';\n\nexport const getOrder = (orderId: number) => {\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 { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport {\n OrderShippingAddressSchema,\n type OrderShippingAddress,\n} from './schemas/order-shipping-address.schema';\nconst getOrderAddresses = ({\n orderId,\n limit = DEFAULTS.orders.shippingAddresses.getAllBatchSize,\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}/shipping_addresses`,\n isB2B: false,\n version: 'v2',\n resultSchema: z.union([z.array(OrderShippingAddressSchema), z.literal(''), z.literal(null)]),\n query: stringify({\n limit,\n page,\n }),\n });\n }).pipe(Effect.map((arr) => arr || []));\n};\n\nexport const getAllOrderShippingAddresses = (orderId: number) => {\n return Effect.gen(function* () {\n const all: OrderShippingAddress[] = [];\n let page = 1;\n let hasMore = true;\n\n while (hasMore) {\n const result = yield* getOrderAddresses({\n orderId,\n page,\n limit: DEFAULTS.orders.shippingAddresses.getAllBatchSize,\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';\nimport { AddressSchema } from '../../addresses/schemas/address.schema';\nexport const OrderShippingAddressSchema = AddressSchema.extend({\n id: z.int(),\n order_id: z.int(),\n shipping_method: z.string(),\n});\n\nexport type OrderShippingAddress = z.output<typeof OrderShippingAddressSchema>;\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { OrderProductSchema, type OrderProduct } from './schemas/order-product.schema';\nconst getOrderProducts = ({\n orderId,\n limit = DEFAULTS.orders.products.getAllBatchSize,\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: stringify({\n limit,\n 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 });\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","Effect","Effect","Effect","stringify","z","z","Effect","stringify","Effect","stringify","z","z","Effect","stringify"]}
|
package/dist/payments.js
CHANGED
|
@@ -269,9 +269,16 @@ var getBase = ({
|
|
|
269
269
|
}
|
|
270
270
|
return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;
|
|
271
271
|
};
|
|
272
|
+
async function safeJson(response) {
|
|
273
|
+
const text = await response.text();
|
|
274
|
+
if (!text || text.trim() === "") {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
return JSON.parse(text);
|
|
278
|
+
}
|
|
272
279
|
function processSuccessResponse(response, schema) {
|
|
273
280
|
return import_effect5.Effect.tryPromise({
|
|
274
|
-
try: () => response
|
|
281
|
+
try: () => safeJson(response),
|
|
275
282
|
catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
|
|
276
283
|
}).pipe(
|
|
277
284
|
import_effect5.Effect.tapError(
|
|
@@ -286,7 +293,7 @@ function processSuccessResponse(response, schema) {
|
|
|
286
293
|
var processErrorResponse = (response) => {
|
|
287
294
|
const code = response.status;
|
|
288
295
|
return import_effect5.Effect.tryPromise({
|
|
289
|
-
try: () => response
|
|
296
|
+
try: () => safeJson(response),
|
|
290
297
|
catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
|
|
291
298
|
}).pipe(
|
|
292
299
|
import_effect5.Effect.tapError((error) => import_effect5.Effect.logError("Error parsing error response", error.cause)),
|
package/dist/payments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bigcommerce-entities/payments/index.ts","../src/bigcommerce-entities/payments/payment-methods.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/bigcommerce-entities/payments/schemas/payment-methods.schema.ts"],"sourcesContent":["export * from './payment-methods';\nexport * from './schemas';\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { GetPaymentMethodsResponseSchema } from './schemas/payment-methods.schema';\nexport const getPaymentMethods = () =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify({\n limit: 250,\n }),\n path: 'payments',\n resultSchema: GetPaymentMethodsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Duration, Schedule } from 'effect';\n\nexport const DEFAULTS = {\n retry: {\n policy: Schedule.exponential(Duration.millis(200), 2).pipe(\n Schedule.intersect(Schedule.recurs(3)),\n ),\n },\n timeout: {\n ms: 30000,\n },\n bigcommerceUrls: {\n b2b: 'https://api-b2b.bigcommerce.com/api',\n regular: 'https://api.bigcommerce.com/stores',\n },\n customers: {\n getBatchSize: 250,\n },\n salesStaff: {\n getBatchSize: 250,\n },\n companies: {\n salesStaffAssignments: {\n assignBatchSize: 10,\n concurrency: 2,\n },\n extraFields: {\n getBatchSize: 250,\n },\n roles: {\n getBatchSize: 250,\n },\n },\n products: {\n updateBatchSize: 5,\n updateConcurrency: 2,\n inventory: {\n updateBatchSize: 2000,\n updateConcurrency: 2,\n },\n },\n orders: {\n getAllBatchSize: 250,\n shippingAddresses: {\n getAllBatchSize: 250,\n },\n products: {\n getAllBatchSize: 250,\n },\n },\n priceLists: {\n getAllBatchSize: 250,\n },\n} as const;\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class BigCommerceUnprocessableEntityError extends Data.TaggedError(\n 'BigCommerceUnprocessableEntityError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceUnauthorizedError extends Data.TaggedError(\n 'BigCommerceUnauthorizedError',\n) {}\n\nexport class BigCommerceForbiddenError extends Data.TaggedError('BigCommerceForbiddenError') {}\n\nexport class BigCommerceNotFoundError extends Data.TaggedError('BigCommerceNotFoundError') {}\n\nexport class BigCommerceConflictError extends Data.TaggedError('BigCommerceConflictError')<{\n readonly details: unknown;\n}> {}\n\nexport class BigCommerceConnectionError extends Data.TaggedError('BigCommerceConnectionError')<{\n readonly message: string;\n readonly type: 'timeout' | 'internalError' | 'unknown';\n}> {}\n\nexport class BigCommerceUnknownError extends Data.TaggedError('BigCommerceUnknownError')<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidResponseError extends Data.TaggedError(\n 'BigCommerceInvalidResponseError',\n)<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidRequestError extends Data.TaggedError(\n 'BigCommerceInvalidRequestError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceParseResponseError extends Data.TaggedError(\n 'BigCommerceParseResponseError',\n)<{\n readonly error: z.ZodError;\n}> {}\n\nexport type SomeBigCommerceError =\n | BigCommerceUnprocessableEntityError\n | BigCommerceUnauthorizedError\n | BigCommerceForbiddenError\n | BigCommerceNotFoundError\n | BigCommerceConflictError\n | BigCommerceConnectionError\n | BigCommerceUnknownError\n | BigCommerceInvalidResponseError\n | BigCommerceInvalidRequestError\n | BigCommerceParseResponseError;\n","import { Context, Effect } from 'effect';\nimport * as z from 'zod';\nimport { type SomeBigCommerceError } from './bigcommerce.error';\nexport type BigCommerceFetchMethods = 'GET' | 'POST' | 'PUT' | 'DELETE';\nexport interface BigCommerceFetchParams<\n // Always send json for now, maybe later send a Blob\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n> {\n readonly body?: Body;\n readonly query?: Query;\n readonly method: BigCommerceFetchMethods;\n readonly path: string;\n readonly headers?: Record<string, string>;\n readonly isB2B: boolean;\n readonly version: 'v3' | 'v2';\n readonly resultSchema: Result;\n}\n\nexport class BigCommerceFetcher extends Context.Tag('BigCommerceFetcher')<\n BigCommerceFetcher,\n {\n readonly fetch: <\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n >(\n params: BigCommerceFetchParams<Body, Query, Result>,\n ) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;\n }\n>() {}\n","import { Effect, Layer, Match } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../constants';\nimport {\n BigCommerceConflictError,\n BigCommerceConnectionError,\n BigCommerceForbiddenError,\n BigCommerceInvalidRequestError,\n BigCommerceInvalidResponseError,\n BigCommerceNotFoundError,\n BigCommerceParseResponseError,\n BigCommerceUnauthorizedError,\n BigCommerceUnknownError,\n BigCommerceUnprocessableEntityError,\n type SomeBigCommerceError,\n} from './bigcommerce.error';\nimport { BigCommerceFetcher } from './bigcommerce.fetcher';\nimport { BigCommerceConfig, type NoBigCommerceConfigError } from './config';\nconst BigCommerceStatusCodes = {\n UNAUTHORIZED: 401,\n CONFLICT: 409,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n INVALID_REQUEST: 400,\n} as const;\n\nexport const BigCommerceFetcherLive: Layer.Layer<\n BigCommerceFetcher,\n NoBigCommerceConfigError,\n BigCommerceConfig\n> = Layer.effect(\n BigCommerceFetcher,\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const storeHash = yield* config.getStoreHash;\n const accessToken = yield* config.getAccessToken;\n const timeout = yield* config.getTimeout;\n\n return {\n fetch: (params) => {\n const base = getBase(params);\n const headers: Record<string, string> = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'x-auth-token': accessToken,\n };\n\n if (params.isB2B) {\n headers['x-store-hash'] = storeHash;\n }\n const url = applyParams(base.replace('[storeHash]', storeHash), params.query);\n\n return Effect.tryPromise({\n try: () =>\n fetch(url, {\n headers,\n signal: AbortSignal.timeout(timeout),\n method: params.method,\n ...(params.body && { body: JSON.stringify(params.body) }),\n }),\n catch: (error) => {\n if (error instanceof Error && error.name === 'TimeoutError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n if (error instanceof Error && error.name === 'AbortError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n return new BigCommerceUnknownError({ cause: error });\n },\n }).pipe(\n Effect.tapError((error) =>\n Effect.logError('Failed to fetch from BigCommerce API', error.cause),\n ),\n Effect.flatMap((response) => transformResponse(response, params.resultSchema)),\n );\n },\n };\n }),\n);\nconst applyParams = (url: string, params?: Record<string, string | number> | string): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n if (typeof params === 'string') {\n base.search = params;\n } else {\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\n }\n }\n return base;\n};\n\nconst getBase = ({\n isB2B,\n path,\n version,\n}: {\n isB2B: boolean;\n path: string;\n version: 'v3' | 'v2';\n}): string => {\n if (isB2B) {\n return `${DEFAULTS.bigcommerceUrls.b2b}/${version}/io/${path}`;\n }\n return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;\n};\nfunction processSuccessResponse<Schema extends z.ZodTypeAny>(response: Response, schema: Schema) {\n return Effect.tryPromise({\n try: () => response.json(),\n catch: (error) => new BigCommerceInvalidResponseError({ cause: error }),\n }).pipe(\n Effect.tapError((error) =>\n Effect.logError('Error parsing response from BigCommerce API', error.cause),\n ),\n Effect.tryMap({\n try: (json) => schema.parse(json),\n catch: (error) => new BigCommerceParseResponseError({ error: error as z.ZodError }),\n }),\n );\n}\nconst processErrorResponse = (response: Response) => {\n const code = response.status;\n return Effect.tryPromise({\n try: () => response.json(),\n catch: (error) => new BigCommerceInvalidResponseError({ cause: error }),\n }).pipe(\n Effect.tapError((error) => Effect.logError('Error parsing error response', error.cause)),\n Effect.flatMap((errorDetails) =>\n Effect.fail(\n Match.value(code).pipe(\n Match.when(\n BigCommerceStatusCodes.INVALID_REQUEST,\n () => new BigCommerceInvalidRequestError({ errorDetails }),\n ),\n Match.when(BigCommerceStatusCodes.UNAUTHORIZED, () => new BigCommerceUnauthorizedError()),\n Match.when(BigCommerceStatusCodes.FORBIDDEN, () => new BigCommerceForbiddenError()),\n Match.when(BigCommerceStatusCodes.NOT_FOUND, () => new BigCommerceNotFoundError()),\n Match.when(\n BigCommerceStatusCodes.CONFLICT,\n () => new BigCommerceConflictError({ details: errorDetails }),\n ),\n Match.when(\n BigCommerceStatusCodes.UNPROCESSABLE_ENTITY,\n () => new BigCommerceUnprocessableEntityError({ errorDetails }),\n ),\n Match.when(\n (code) => code >= 500,\n () =>\n new BigCommerceConnectionError({\n message: `Server error: ${code}`,\n type:\n code === BigCommerceStatusCodes.INTERNAL_SERVER_ERROR\n ? 'internalError'\n : code === BigCommerceStatusCodes.BAD_GATEWAY ||\n code === BigCommerceStatusCodes.GATEWAY_TIMEOUT\n ? 'timeout'\n : 'internalError',\n }),\n ),\n Match.orElse(() => new BigCommerceUnknownError({ cause: errorDetails })),\n ),\n ),\n ),\n );\n};\n\nconst transformResponse = <Schema extends z.ZodType>(\n response: Response,\n schema: Schema,\n): Effect.Effect<z.output<Schema>, SomeBigCommerceError> => {\n if (response.ok) {\n return processSuccessResponse(response, schema);\n }\n return processErrorResponse(response);\n};\n\n// type PendingErrors = Exclude<\n// SomeBigCommerceError,\n// Effect.Effect.Error<ReturnType<typeof processErrorResponse>> | BigCommerceParseResponseError\n// >;\n","import { Config, Context, Data, Effect, Layer } from 'effect';\nimport { DEFAULTS } from '../constants';\n\n// Define a custom error type using Data.TaggedError\nexport class NoBigCommerceConfigError extends Data.TaggedError('NoBigCommerceConfigError')<{\n readonly key: string;\n}> {}\n\nexport class BigCommerceConfig extends Context.Tag('BigCommerceConfig')<\n BigCommerceConfig,\n {\n readonly getStoreHash: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError>;\n }\n>() {}\n\nconst getBigCommerceConfig = (key: string) => {\n return Config.nested(Config.string(key), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key })),\n );\n};\n\nconst getBigCommerceTimeout = () => {\n return Config.nested(Config.number('TIMEOUT'), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key: 'TIMEOUT' })),\n // Default to 30 seconds if not configured\n Effect.orElse(() => Effect.succeed(DEFAULTS.timeout.ms)),\n );\n};\n\nexport const BigCommerceConfigLive = Layer.effect(\n BigCommerceConfig,\n Effect.gen(function* () {\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n getBigCommerceConfig('STORE_HASH'),\n getBigCommerceConfig('CLIENT_ID'),\n getBigCommerceConfig('CLIENT_SECRET'),\n getBigCommerceConfig('ACCESS_TOKEN'),\n getBigCommerceTimeout(),\n ]);\n\n return {\n getStoreHash: Effect.succeed(storeHash),\n getClientId: Effect.succeed(clientId),\n getClientSecret: Effect.succeed(clientSecret),\n getAccessToken: Effect.succeed(accessToken),\n getTimeout: Effect.succeed(timeout),\n };\n }),\n);\n\nexport const BigCommerceConfigTest = Layer.succeed(BigCommerceConfig, {\n getAccessToken: Effect.succeed('test'),\n getClientId: Effect.succeed('test'),\n getClientSecret: Effect.succeed('test'),\n getStoreHash: Effect.succeed('test'),\n getTimeout: Effect.succeed(DEFAULTS.timeout.ms),\n});\n\nexport const validateBigCommerceConfig = () =>\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n config.getStoreHash,\n config.getClientId,\n config.getClientSecret,\n config.getAccessToken,\n config.getTimeout,\n ]);\n\n return {\n storeHash,\n clientId,\n clientSecret,\n accessToken,\n timeout,\n };\n });\n","import * as z from 'zod';\nexport const PaymentMethodSchema = z.object({\n id: z.number(),\n paymentCode: z.string(),\n paymentTitle: z.string(),\n});\nexport const GetPaymentMethodsResponseSchema = z.object({\n data: PaymentMethodSchema.array(),\n});\n"],"mappings":"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","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code"]}
|
|
1
|
+
{"version":3,"sources":["../src/bigcommerce-entities/payments/index.ts","../src/bigcommerce-entities/payments/payment-methods.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/bigcommerce-entities/payments/schemas/payment-methods.schema.ts"],"sourcesContent":["export * from './payment-methods';\nexport * from './schemas';\n","import { Effect } from 'effect';\nimport { stringify } from 'node:querystring';\nimport { DEFAULTS } from '../../constants';\nimport { BigCommerceFetcher } from '../../core';\nimport { GetPaymentMethodsResponseSchema } from './schemas/payment-methods.schema';\nexport const getPaymentMethods = () =>\n Effect.gen(function* () {\n const fetcher = yield* BigCommerceFetcher;\n return yield* Effect.retry(\n fetcher.fetch({\n isB2B: true,\n method: 'GET',\n query: stringify({\n limit: 250,\n }),\n path: 'payments',\n resultSchema: GetPaymentMethodsResponseSchema,\n version: 'v3',\n }),\n DEFAULTS.retry.policy,\n );\n });\n","import { Duration, Schedule } from 'effect';\n\nexport const DEFAULTS = {\n retry: {\n policy: Schedule.exponential(Duration.millis(200), 2).pipe(\n Schedule.intersect(Schedule.recurs(3)),\n ),\n },\n timeout: {\n ms: 30000,\n },\n bigcommerceUrls: {\n b2b: 'https://api-b2b.bigcommerce.com/api',\n regular: 'https://api.bigcommerce.com/stores',\n },\n customers: {\n getBatchSize: 250,\n },\n salesStaff: {\n getBatchSize: 250,\n },\n companies: {\n salesStaffAssignments: {\n assignBatchSize: 10,\n concurrency: 2,\n },\n extraFields: {\n getBatchSize: 250,\n },\n roles: {\n getBatchSize: 250,\n },\n },\n products: {\n updateBatchSize: 5,\n updateConcurrency: 2,\n inventory: {\n updateBatchSize: 2000,\n updateConcurrency: 2,\n },\n },\n orders: {\n getAllBatchSize: 250,\n shippingAddresses: {\n getAllBatchSize: 250,\n },\n products: {\n getAllBatchSize: 250,\n },\n },\n priceLists: {\n getAllBatchSize: 250,\n },\n} as const;\n","import { Data } from 'effect';\nimport * as z from 'zod';\nexport class BigCommerceUnprocessableEntityError extends Data.TaggedError(\n 'BigCommerceUnprocessableEntityError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceUnauthorizedError extends Data.TaggedError(\n 'BigCommerceUnauthorizedError',\n) {}\n\nexport class BigCommerceForbiddenError extends Data.TaggedError('BigCommerceForbiddenError') {}\n\nexport class BigCommerceNotFoundError extends Data.TaggedError('BigCommerceNotFoundError') {}\n\nexport class BigCommerceConflictError extends Data.TaggedError('BigCommerceConflictError')<{\n readonly details: unknown;\n}> {}\n\nexport class BigCommerceConnectionError extends Data.TaggedError('BigCommerceConnectionError')<{\n readonly message: string;\n readonly type: 'timeout' | 'internalError' | 'unknown';\n}> {}\n\nexport class BigCommerceUnknownError extends Data.TaggedError('BigCommerceUnknownError')<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidResponseError extends Data.TaggedError(\n 'BigCommerceInvalidResponseError',\n)<{\n cause: unknown;\n}> {}\n\nexport class BigCommerceInvalidRequestError extends Data.TaggedError(\n 'BigCommerceInvalidRequestError',\n)<{\n readonly errorDetails: unknown;\n}> {}\n\nexport class BigCommerceParseResponseError extends Data.TaggedError(\n 'BigCommerceParseResponseError',\n)<{\n readonly error: z.ZodError;\n}> {}\n\nexport type SomeBigCommerceError =\n | BigCommerceUnprocessableEntityError\n | BigCommerceUnauthorizedError\n | BigCommerceForbiddenError\n | BigCommerceNotFoundError\n | BigCommerceConflictError\n | BigCommerceConnectionError\n | BigCommerceUnknownError\n | BigCommerceInvalidResponseError\n | BigCommerceInvalidRequestError\n | BigCommerceParseResponseError;\n","import { Context, Effect } from 'effect';\nimport * as z from 'zod';\nimport { type SomeBigCommerceError } from './bigcommerce.error';\nexport type BigCommerceFetchMethods = 'GET' | 'POST' | 'PUT' | 'DELETE';\nexport interface BigCommerceFetchParams<\n // Always send json for now, maybe later send a Blob\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n> {\n readonly body?: Body;\n readonly query?: Query;\n readonly method: BigCommerceFetchMethods;\n readonly path: string;\n readonly headers?: Record<string, string>;\n readonly isB2B: boolean;\n readonly version: 'v3' | 'v2';\n readonly resultSchema: Result;\n}\n\nexport class BigCommerceFetcher extends Context.Tag('BigCommerceFetcher')<\n BigCommerceFetcher,\n {\n readonly fetch: <\n Body extends Record<string, unknown> | Array<Record<string, unknown>>,\n Query extends Record<string, string> | string,\n Result extends z.ZodType,\n >(\n params: BigCommerceFetchParams<Body, Query, Result>,\n ) => Effect.Effect<z.output<Result>, SomeBigCommerceError>;\n }\n>() {}\n","import { Effect, Layer, Match } from 'effect';\nimport * as z from 'zod';\nimport { DEFAULTS } from '../constants';\nimport {\n BigCommerceConflictError,\n BigCommerceConnectionError,\n BigCommerceForbiddenError,\n BigCommerceInvalidRequestError,\n BigCommerceInvalidResponseError,\n BigCommerceNotFoundError,\n BigCommerceParseResponseError,\n BigCommerceUnauthorizedError,\n BigCommerceUnknownError,\n BigCommerceUnprocessableEntityError,\n type SomeBigCommerceError,\n} from './bigcommerce.error';\nimport { BigCommerceFetcher } from './bigcommerce.fetcher';\nimport { BigCommerceConfig, type NoBigCommerceConfigError } from './config';\nconst BigCommerceStatusCodes = {\n UNAUTHORIZED: 401,\n CONFLICT: 409,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n INVALID_REQUEST: 400,\n} as const;\n\nexport const BigCommerceFetcherLive: Layer.Layer<\n BigCommerceFetcher,\n NoBigCommerceConfigError,\n BigCommerceConfig\n> = Layer.effect(\n BigCommerceFetcher,\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const storeHash = yield* config.getStoreHash;\n const accessToken = yield* config.getAccessToken;\n const timeout = yield* config.getTimeout;\n\n return {\n fetch: (params) => {\n const base = getBase(params);\n const headers: Record<string, string> = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'x-auth-token': accessToken,\n };\n\n if (params.isB2B) {\n headers['x-store-hash'] = storeHash;\n }\n const url = applyParams(base.replace('[storeHash]', storeHash), params.query);\n\n return Effect.tryPromise({\n try: () =>\n fetch(url, {\n headers,\n signal: AbortSignal.timeout(timeout),\n method: params.method,\n ...(params.body && { body: JSON.stringify(params.body) }),\n }),\n catch: (error) => {\n if (error instanceof Error && error.name === 'TimeoutError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n if (error instanceof Error && error.name === 'AbortError') {\n return new BigCommerceConnectionError({\n message: `Request timeout after ${timeout}ms`,\n type: 'timeout',\n });\n }\n return new BigCommerceUnknownError({ cause: error });\n },\n }).pipe(\n Effect.tapError((error) =>\n Effect.logError('Failed to fetch from BigCommerce API', error.cause),\n ),\n Effect.flatMap((response) => transformResponse(response, params.resultSchema)),\n );\n },\n };\n }),\n);\nconst applyParams = (url: string, params?: Record<string, string | number> | string): URL => {\n const base = new URL(url);\n if (!params) {\n return base;\n }\n if (typeof params === 'string') {\n base.search = params;\n } else {\n for (const [key, value] of Object.entries(params)) {\n base.searchParams.append(key, `${value}`);\n }\n }\n return base;\n};\n\nconst getBase = ({\n isB2B,\n path,\n version,\n}: {\n isB2B: boolean;\n path: string;\n version: 'v3' | 'v2';\n}): string => {\n if (isB2B) {\n return `${DEFAULTS.bigcommerceUrls.b2b}/${version}/io/${path}`;\n }\n return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;\n};\n\nasync function safeJson<T>(response: Response): Promise<T | null> {\n const text = await response.text();\n\n if (!text || text.trim() === '') {\n return null;\n }\n\n return JSON.parse(text) as T;\n}\n\nfunction processSuccessResponse<Schema extends z.ZodTypeAny>(response: Response, schema: Schema) {\n return Effect.tryPromise({\n try: () => safeJson(response),\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: () => safeJson(response),\n catch: (error) => new BigCommerceInvalidResponseError({ cause: error }),\n }).pipe(\n Effect.tapError((error) => Effect.logError('Error parsing error response', error.cause)),\n Effect.flatMap((errorDetails) =>\n Effect.fail(\n Match.value(code).pipe(\n Match.when(\n BigCommerceStatusCodes.INVALID_REQUEST,\n () => new BigCommerceInvalidRequestError({ errorDetails }),\n ),\n Match.when(BigCommerceStatusCodes.UNAUTHORIZED, () => new BigCommerceUnauthorizedError()),\n Match.when(BigCommerceStatusCodes.FORBIDDEN, () => new BigCommerceForbiddenError()),\n Match.when(BigCommerceStatusCodes.NOT_FOUND, () => new BigCommerceNotFoundError()),\n Match.when(\n BigCommerceStatusCodes.CONFLICT,\n () => new BigCommerceConflictError({ details: errorDetails }),\n ),\n Match.when(\n BigCommerceStatusCodes.UNPROCESSABLE_ENTITY,\n () => new BigCommerceUnprocessableEntityError({ errorDetails }),\n ),\n Match.when(\n (code) => code >= 500,\n () =>\n new BigCommerceConnectionError({\n message: `Server error: ${code}`,\n type:\n code === BigCommerceStatusCodes.INTERNAL_SERVER_ERROR\n ? 'internalError'\n : code === BigCommerceStatusCodes.BAD_GATEWAY ||\n code === BigCommerceStatusCodes.GATEWAY_TIMEOUT\n ? 'timeout'\n : 'internalError',\n }),\n ),\n Match.orElse(() => new BigCommerceUnknownError({ cause: errorDetails })),\n ),\n ),\n ),\n );\n};\n\nconst transformResponse = <Schema extends z.ZodType>(\n response: Response,\n schema: Schema,\n): Effect.Effect<z.output<Schema>, SomeBigCommerceError> => {\n if (response.ok) {\n return processSuccessResponse(response, schema);\n }\n return processErrorResponse(response);\n};\n\n// type PendingErrors = Exclude<\n// SomeBigCommerceError,\n// Effect.Effect.Error<ReturnType<typeof processErrorResponse>> | BigCommerceParseResponseError\n// >;\n","import { Config, Context, Data, Effect, Layer } from 'effect';\nimport { DEFAULTS } from '../constants';\n\n// Define a custom error type using Data.TaggedError\nexport class NoBigCommerceConfigError extends Data.TaggedError('NoBigCommerceConfigError')<{\n readonly key: string;\n}> {}\n\nexport class BigCommerceConfig extends Context.Tag('BigCommerceConfig')<\n BigCommerceConfig,\n {\n readonly getStoreHash: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientId: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getClientSecret: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getAccessToken: Effect.Effect<string, NoBigCommerceConfigError>;\n readonly getTimeout: Effect.Effect<number, NoBigCommerceConfigError>;\n }\n>() {}\n\nconst getBigCommerceConfig = (key: string) => {\n return Config.nested(Config.string(key), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key })),\n );\n};\n\nconst getBigCommerceTimeout = () => {\n return Config.nested(Config.number('TIMEOUT'), 'BIGCOMMERCE').pipe(\n Effect.mapError(() => new NoBigCommerceConfigError({ key: 'TIMEOUT' })),\n // Default to 30 seconds if not configured\n Effect.orElse(() => Effect.succeed(DEFAULTS.timeout.ms)),\n );\n};\n\nexport const BigCommerceConfigLive = Layer.effect(\n BigCommerceConfig,\n Effect.gen(function* () {\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n getBigCommerceConfig('STORE_HASH'),\n getBigCommerceConfig('CLIENT_ID'),\n getBigCommerceConfig('CLIENT_SECRET'),\n getBigCommerceConfig('ACCESS_TOKEN'),\n getBigCommerceTimeout(),\n ]);\n\n return {\n getStoreHash: Effect.succeed(storeHash),\n getClientId: Effect.succeed(clientId),\n getClientSecret: Effect.succeed(clientSecret),\n getAccessToken: Effect.succeed(accessToken),\n getTimeout: Effect.succeed(timeout),\n };\n }),\n);\n\nexport const BigCommerceConfigTest = Layer.succeed(BigCommerceConfig, {\n getAccessToken: Effect.succeed('test'),\n getClientId: Effect.succeed('test'),\n getClientSecret: Effect.succeed('test'),\n getStoreHash: Effect.succeed('test'),\n getTimeout: Effect.succeed(DEFAULTS.timeout.ms),\n});\n\nexport const validateBigCommerceConfig = () =>\n Effect.gen(function* () {\n const config = yield* BigCommerceConfig;\n const [storeHash, clientId, clientSecret, accessToken, timeout] = yield* Effect.all([\n config.getStoreHash,\n config.getClientId,\n config.getClientSecret,\n config.getAccessToken,\n config.getTimeout,\n ]);\n\n return {\n storeHash,\n clientId,\n clientSecret,\n accessToken,\n timeout,\n };\n });\n","import * as z from 'zod';\nexport const PaymentMethodSchema = z.object({\n id: z.number(),\n paymentCode: z.string(),\n paymentTitle: z.string(),\n});\nexport const GetPaymentMethodsResponseSchema = z.object({\n data: PaymentMethodSchema.array(),\n});\n"],"mappings":"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","names":["import_effect","import_effect","import_effect","import_effect","import_effect","code"]}
|
package/dist/payments.mjs
CHANGED
package/dist/priceLists.js
CHANGED
|
@@ -285,9 +285,16 @@ var getBase = ({
|
|
|
285
285
|
}
|
|
286
286
|
return `${DEFAULTS.bigcommerceUrls.regular}/[storeHash]/${version}/${path}`;
|
|
287
287
|
};
|
|
288
|
+
async function safeJson(response) {
|
|
289
|
+
const text = await response.text();
|
|
290
|
+
if (!text || text.trim() === "") {
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
return JSON.parse(text);
|
|
294
|
+
}
|
|
288
295
|
function processSuccessResponse(response, schema) {
|
|
289
296
|
return import_effect5.Effect.tryPromise({
|
|
290
|
-
try: () => response
|
|
297
|
+
try: () => safeJson(response),
|
|
291
298
|
catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
|
|
292
299
|
}).pipe(
|
|
293
300
|
import_effect5.Effect.tapError(
|
|
@@ -302,7 +309,7 @@ function processSuccessResponse(response, schema) {
|
|
|
302
309
|
var processErrorResponse = (response) => {
|
|
303
310
|
const code = response.status;
|
|
304
311
|
return import_effect5.Effect.tryPromise({
|
|
305
|
-
try: () => response
|
|
312
|
+
try: () => safeJson(response),
|
|
306
313
|
catch: (error) => new BigCommerceInvalidResponseError({ cause: error })
|
|
307
314
|
}).pipe(
|
|
308
315
|
import_effect5.Effect.tapError((error) => import_effect5.Effect.logError("Error parsing error response", error.cause)),
|