@buiducnhat/ritel-sdk 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +43 -42
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +43 -42
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
2
|
//#region src/errors.ts
|
|
4
3
|
var RitelError = class extends Error {
|
|
5
4
|
constructor(message) {
|
|
@@ -25,7 +24,6 @@ var RitelNetworkError = class extends RitelError {
|
|
|
25
24
|
this.cause = cause;
|
|
26
25
|
}
|
|
27
26
|
};
|
|
28
|
-
|
|
29
27
|
//#endregion
|
|
30
28
|
//#region src/resources/categories.ts
|
|
31
29
|
var CategoriesResource = class {
|
|
@@ -37,7 +35,6 @@ var CategoriesResource = class {
|
|
|
37
35
|
return this.request("GET", "/categories", void 0, params);
|
|
38
36
|
}
|
|
39
37
|
};
|
|
40
|
-
|
|
41
38
|
//#endregion
|
|
42
39
|
//#region src/resources/orders.ts
|
|
43
40
|
var OrdersResource = class {
|
|
@@ -61,7 +58,6 @@ var OrdersResource = class {
|
|
|
61
58
|
return this.request("POST", `/orders/${id}/cancel`);
|
|
62
59
|
}
|
|
63
60
|
};
|
|
64
|
-
|
|
65
61
|
//#endregion
|
|
66
62
|
//#region src/resources/products.ts
|
|
67
63
|
var ProductsResource = class {
|
|
@@ -76,7 +72,6 @@ var ProductsResource = class {
|
|
|
76
72
|
return this.request("GET", `/products/${id}`);
|
|
77
73
|
}
|
|
78
74
|
};
|
|
79
|
-
|
|
80
75
|
//#endregion
|
|
81
76
|
//#region src/utils/query-string.ts
|
|
82
77
|
function buildQueryString(params) {
|
|
@@ -89,7 +84,6 @@ function buildQueryString(params) {
|
|
|
89
84
|
const qs = searchParams.toString();
|
|
90
85
|
return qs ? `?${qs}` : "";
|
|
91
86
|
}
|
|
92
|
-
|
|
93
87
|
//#endregion
|
|
94
88
|
//#region src/client.ts
|
|
95
89
|
var RitelClient = class {
|
|
@@ -142,7 +136,6 @@ var RitelClient = class {
|
|
|
142
136
|
}
|
|
143
137
|
}
|
|
144
138
|
};
|
|
145
|
-
|
|
146
139
|
//#endregion
|
|
147
140
|
exports.OrdersResource = OrdersResource;
|
|
148
141
|
exports.ProductsResource = ProductsResource;
|
|
@@ -150,4 +143,5 @@ exports.RitelApiError = RitelApiError;
|
|
|
150
143
|
exports.RitelClient = RitelClient;
|
|
151
144
|
exports.RitelError = RitelError;
|
|
152
145
|
exports.RitelNetworkError = RitelNetworkError;
|
|
146
|
+
|
|
153
147
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../src/errors.ts","../src/resources/categories.ts","../src/resources/orders.ts","../src/resources/products.ts","../src/utils/query-string.ts","../src/client.ts"],"sourcesContent":["export class RitelError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"RitelError\";\n }\n}\n\nexport class RitelApiError extends RitelError {\n readonly status: number;\n readonly code: string;\n\n constructor(status: number, code: string, message: string) {\n super(message);\n this.name = \"RitelApiError\";\n this.status = status;\n this.code = code;\n }\n}\n\nexport class RitelNetworkError extends RitelError {\n readonly cause?: Error;\n\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = \"RitelNetworkError\";\n this.cause = cause;\n }\n}\n","import type { RequestFn } from \"../resources/products\";\nimport type { CategoriesListResponse, GetCategoriesParams } from \"../types\";\n\nexport class CategoriesResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async list(\n params: GetCategoriesParams = {}\n ): Promise<CategoriesListResponse> {\n return this.request<CategoriesListResponse>(\n \"GET\",\n \"/categories\",\n undefined,\n params as Record<string, unknown>\n );\n }\n}\n","import type {\n CreateOrderInput,\n ListOrdersParams,\n Order,\n OrderCreateResponse,\n OrdersListResponse,\n UpdateOrderInput,\n} from \"../types\";\n\nexport type RequestFn = <T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n) => Promise<T>;\n\nexport class OrdersResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async create(input: CreateOrderInput): Promise<OrderCreateResponse> {\n return this.request<OrderCreateResponse>(\"POST\", \"/orders\", input);\n }\n\n async list(params: ListOrdersParams = {}): Promise<OrdersListResponse> {\n return this.request<OrdersListResponse>(\n \"GET\",\n \"/orders\",\n undefined,\n params as Record<string, unknown>\n );\n }\n\n async get(id: string): Promise<Order> {\n return this.request<Order>(\"GET\", `/orders/${id}`);\n }\n\n async update(id: string, input: UpdateOrderInput): Promise<Order> {\n return this.request<Order>(\"PATCH\", `/orders/${id}`, input);\n }\n\n async cancel(id: string): Promise<Order> {\n return this.request<Order>(\"POST\", `/orders/${id}/cancel`);\n }\n}\n","import type {\n GetProductsParams,\n Product,\n ProductsListResponse,\n} from \"../types\";\n\nexport type RequestFn = <T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n) => Promise<T>;\n\nexport class ProductsResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async list(params: GetProductsParams = {}): Promise<ProductsListResponse> {\n return this.request<ProductsListResponse>(\n \"GET\",\n \"/products\",\n undefined,\n params as Record<string, unknown>\n );\n }\n\n async get(id: string): Promise<Product> {\n return this.request<Product>(\"GET\", `/products/${id}`);\n }\n}\n","export function buildQueryString(params: Record<string, unknown>): string {\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) {\n continue;\n }\n\n if (value instanceof Date) {\n searchParams.set(key, value.toISOString());\n } else {\n searchParams.set(key, String(value));\n }\n }\n\n const qs = searchParams.toString();\n return qs ? `?${qs}` : \"\";\n}\n","import { RitelApiError, RitelNetworkError } from \"./errors\";\nimport { CategoriesResource } from \"./resources/categories\";\nimport { OrdersResource } from \"./resources/orders\";\nimport { ProductsResource } from \"./resources/products\";\nimport type { ApiErrorResponse, RitelClientConfig } from \"./types\";\nimport { buildQueryString } from \"./utils/query-string\";\n\nexport class RitelClient {\n private readonly baseUrl: string;\n private readonly apiKey: string;\n private readonly timeout: number;\n\n readonly products: ProductsResource;\n readonly categories: CategoriesResource;\n readonly orders: OrdersResource;\n\n constructor(config: RitelClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/$/, \"\");\n this.apiKey = config.apiKey;\n this.timeout = config.timeout ?? 30_000;\n\n // Bind request method for resources\n const boundRequest = this.request.bind(this);\n this.products = new ProductsResource(boundRequest);\n this.categories = new CategoriesResource(boundRequest);\n this.orders = new OrdersResource(boundRequest);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n ): Promise<T> {\n const url = `${this.baseUrl}/external${path}${params ? buildQueryString(params) : \"\"}`;\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-Key\": this.apiKey,\n },\n body: body ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n const errorBody = (await response.json().catch(() => ({\n error: \"Unknown\",\n message: response.statusText,\n }))) as ApiErrorResponse;\n\n throw new RitelApiError(\n response.status,\n errorBody.error,\n errorBody.message\n );\n }\n\n return response.json() as Promise<T>;\n } catch (error) {\n clearTimeout(timeoutId);\n\n if (error instanceof RitelApiError) {\n throw error;\n }\n\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n throw new RitelNetworkError(\"Request timeout\", error);\n }\n throw new RitelNetworkError(error.message, error);\n }\n\n throw new RitelNetworkError(\"Unknown network error\");\n }\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../src/errors.ts","../src/resources/categories.ts","../src/resources/orders.ts","../src/resources/products.ts","../src/utils/query-string.ts","../src/client.ts"],"sourcesContent":["export class RitelError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"RitelError\";\n }\n}\n\nexport class RitelApiError extends RitelError {\n readonly status: number;\n readonly code: string;\n\n constructor(status: number, code: string, message: string) {\n super(message);\n this.name = \"RitelApiError\";\n this.status = status;\n this.code = code;\n }\n}\n\nexport class RitelNetworkError extends RitelError {\n readonly cause?: Error;\n\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = \"RitelNetworkError\";\n this.cause = cause;\n }\n}\n","import type { RequestFn } from \"../resources/products\";\nimport type { CategoriesListResponse, GetCategoriesParams } from \"../types\";\n\nexport class CategoriesResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async list(\n params: GetCategoriesParams = {}\n ): Promise<CategoriesListResponse> {\n return this.request<CategoriesListResponse>(\n \"GET\",\n \"/categories\",\n undefined,\n params as Record<string, unknown>\n );\n }\n}\n","import type {\n CreateOrderInput,\n ListOrdersParams,\n Order,\n OrderCreateResponse,\n OrdersListResponse,\n UpdateOrderInput,\n} from \"../types\";\n\nexport type RequestFn = <T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n) => Promise<T>;\n\nexport class OrdersResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async create(input: CreateOrderInput): Promise<OrderCreateResponse> {\n return this.request<OrderCreateResponse>(\"POST\", \"/orders\", input);\n }\n\n async list(params: ListOrdersParams = {}): Promise<OrdersListResponse> {\n return this.request<OrdersListResponse>(\n \"GET\",\n \"/orders\",\n undefined,\n params as Record<string, unknown>\n );\n }\n\n async get(id: string): Promise<Order> {\n return this.request<Order>(\"GET\", `/orders/${id}`);\n }\n\n async update(id: string, input: UpdateOrderInput): Promise<Order> {\n return this.request<Order>(\"PATCH\", `/orders/${id}`, input);\n }\n\n async cancel(id: string): Promise<Order> {\n return this.request<Order>(\"POST\", `/orders/${id}/cancel`);\n }\n}\n","import type {\n GetProductsParams,\n Product,\n ProductsListResponse,\n} from \"../types\";\n\nexport type RequestFn = <T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n) => Promise<T>;\n\nexport class ProductsResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async list(params: GetProductsParams = {}): Promise<ProductsListResponse> {\n return this.request<ProductsListResponse>(\n \"GET\",\n \"/products\",\n undefined,\n params as Record<string, unknown>\n );\n }\n\n async get(id: string): Promise<Product> {\n return this.request<Product>(\"GET\", `/products/${id}`);\n }\n}\n","export function buildQueryString(params: Record<string, unknown>): string {\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) {\n continue;\n }\n\n if (value instanceof Date) {\n searchParams.set(key, value.toISOString());\n } else {\n searchParams.set(key, String(value));\n }\n }\n\n const qs = searchParams.toString();\n return qs ? `?${qs}` : \"\";\n}\n","import { RitelApiError, RitelNetworkError } from \"./errors\";\nimport { CategoriesResource } from \"./resources/categories\";\nimport { OrdersResource } from \"./resources/orders\";\nimport { ProductsResource } from \"./resources/products\";\nimport type { ApiErrorResponse, RitelClientConfig } from \"./types\";\nimport { buildQueryString } from \"./utils/query-string\";\n\nexport class RitelClient {\n private readonly baseUrl: string;\n private readonly apiKey: string;\n private readonly timeout: number;\n\n readonly products: ProductsResource;\n readonly categories: CategoriesResource;\n readonly orders: OrdersResource;\n\n constructor(config: RitelClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/$/, \"\");\n this.apiKey = config.apiKey;\n this.timeout = config.timeout ?? 30_000;\n\n // Bind request method for resources\n const boundRequest = this.request.bind(this);\n this.products = new ProductsResource(boundRequest);\n this.categories = new CategoriesResource(boundRequest);\n this.orders = new OrdersResource(boundRequest);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n ): Promise<T> {\n const url = `${this.baseUrl}/external${path}${params ? buildQueryString(params) : \"\"}`;\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-Key\": this.apiKey,\n },\n body: body ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n const errorBody = (await response.json().catch(() => ({\n error: \"Unknown\",\n message: response.statusText,\n }))) as ApiErrorResponse;\n\n throw new RitelApiError(\n response.status,\n errorBody.error,\n errorBody.message\n );\n }\n\n return response.json() as Promise<T>;\n } catch (error) {\n clearTimeout(timeoutId);\n\n if (error instanceof RitelApiError) {\n throw error;\n }\n\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n throw new RitelNetworkError(\"Request timeout\", error);\n }\n throw new RitelNetworkError(error.message, error);\n }\n\n throw new RitelNetworkError(\"Unknown network error\");\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
//#region src/types.d.ts
|
|
2
2
|
interface GetProductsParams {
|
|
3
|
+
categoryId?: string;
|
|
3
4
|
limit?: number;
|
|
5
|
+
maxPrice?: number;
|
|
6
|
+
minPrice?: number;
|
|
4
7
|
offset?: number;
|
|
5
8
|
search?: string;
|
|
6
|
-
categoryId?: string;
|
|
7
|
-
stockStatus?: "in_stock" | "out_of_stock" | "all";
|
|
8
|
-
minPrice?: number;
|
|
9
|
-
maxPrice?: number;
|
|
10
9
|
sortBy?: "name" | "price" | "created_at";
|
|
11
|
-
sortOrder?:
|
|
10
|
+
sortOrder?: SortOrder;
|
|
11
|
+
stockStatus?: StockStatus;
|
|
12
12
|
}
|
|
13
13
|
interface GetCategoriesParams {
|
|
14
14
|
limit?: number;
|
|
@@ -16,10 +16,10 @@ interface GetCategoriesParams {
|
|
|
16
16
|
search?: string;
|
|
17
17
|
}
|
|
18
18
|
interface Category {
|
|
19
|
+
description: string | null;
|
|
19
20
|
id: string;
|
|
20
21
|
name: string;
|
|
21
22
|
slug: string;
|
|
22
|
-
description: string | null;
|
|
23
23
|
}
|
|
24
24
|
interface CategoriesListResponse {
|
|
25
25
|
data: Category[];
|
|
@@ -30,7 +30,7 @@ interface ProductCategory {
|
|
|
30
30
|
name: string;
|
|
31
31
|
}
|
|
32
32
|
interface ProductMedia {
|
|
33
|
-
type:
|
|
33
|
+
type: MediaType;
|
|
34
34
|
url: string;
|
|
35
35
|
}
|
|
36
36
|
interface ProductTierPrice {
|
|
@@ -39,33 +39,34 @@ interface ProductTierPrice {
|
|
|
39
39
|
price: number;
|
|
40
40
|
}
|
|
41
41
|
interface Product {
|
|
42
|
-
|
|
43
|
-
name: string;
|
|
44
|
-
sku: string | null;
|
|
45
|
-
salePrice: number;
|
|
42
|
+
category: ProductCategory | null;
|
|
46
43
|
currentSalePrice: number | null;
|
|
44
|
+
customProperties: Record<string, unknown> | null;
|
|
47
45
|
description: string | null;
|
|
48
|
-
|
|
46
|
+
id: string;
|
|
47
|
+
isContactPrice: boolean;
|
|
48
|
+
medias: ProductMedia[] | null;
|
|
49
49
|
minOrderQuantity?: number;
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
name: string;
|
|
51
|
+
salePrice: number;
|
|
52
|
+
sku: string | null;
|
|
52
53
|
stockQuantity: number;
|
|
53
|
-
medias: ProductMedia[] | null;
|
|
54
54
|
tierPrices?: ProductTierPrice[];
|
|
55
|
+
unit: string | null;
|
|
55
56
|
}
|
|
56
57
|
interface ProductsListResponse {
|
|
57
58
|
data: Product[];
|
|
58
59
|
pagination: Pagination;
|
|
59
60
|
}
|
|
60
61
|
interface CreateOrderInput {
|
|
62
|
+
customerAddress?: string;
|
|
63
|
+
customerEmail?: string;
|
|
61
64
|
customerName: string;
|
|
62
65
|
customerPhone: string;
|
|
63
|
-
|
|
64
|
-
customerAddress?: string;
|
|
66
|
+
expectedDeliveryDate?: Date | string;
|
|
65
67
|
items: OrderItemInput[];
|
|
66
|
-
paymentMethod: "cash" | "bank_transfer" | "sepay_pg";
|
|
67
68
|
notes?: string;
|
|
68
|
-
|
|
69
|
+
paymentMethod: "cash" | "bank_transfer" | "sepay_pg";
|
|
69
70
|
}
|
|
70
71
|
interface OrderItemInput {
|
|
71
72
|
productId: string;
|
|
@@ -75,20 +76,20 @@ interface OrderItemInput {
|
|
|
75
76
|
interface ListOrdersParams {
|
|
76
77
|
limit?: number;
|
|
77
78
|
offset?: number;
|
|
78
|
-
status?: "pending" | "completed" | "cancelled";
|
|
79
|
-
paymentStatus?: "pending" | "paid" | "failed";
|
|
80
79
|
orderNumber?: string;
|
|
80
|
+
paymentStatus?: "pending" | "paid" | "failed";
|
|
81
|
+
status?: "pending" | "completed" | "cancelled";
|
|
81
82
|
}
|
|
82
83
|
interface UpdateOrderInput {
|
|
83
|
-
notes?: string;
|
|
84
|
-
expectedDeliveryDate?: Date | string | null;
|
|
85
84
|
deliveryInfo?: DeliveryInfo;
|
|
85
|
+
expectedDeliveryDate?: Date | string | null;
|
|
86
|
+
notes?: string;
|
|
86
87
|
}
|
|
87
88
|
interface DeliveryInfo {
|
|
89
|
+
address?: string | null;
|
|
90
|
+
email?: string | null;
|
|
88
91
|
name: string;
|
|
89
92
|
phone: string;
|
|
90
|
-
email?: string | null;
|
|
91
|
-
address?: string | null;
|
|
92
93
|
}
|
|
93
94
|
interface OrderItem {
|
|
94
95
|
id: string;
|
|
@@ -96,52 +97,52 @@ interface OrderItem {
|
|
|
96
97
|
productName: string;
|
|
97
98
|
productSku: string | null;
|
|
98
99
|
quantity: number;
|
|
99
|
-
unitPrice: number;
|
|
100
100
|
subtotal: number;
|
|
101
|
+
unitPrice: number;
|
|
101
102
|
}
|
|
102
103
|
interface Order {
|
|
104
|
+
createdAt: string;
|
|
105
|
+
deliveryInfo: DeliveryInfo | null;
|
|
106
|
+
discountAmount: number;
|
|
107
|
+
expectedDeliveryDate: string | null;
|
|
103
108
|
id: string;
|
|
109
|
+
items?: OrderItem[];
|
|
110
|
+
notes: string | null;
|
|
104
111
|
orderNumber: string;
|
|
105
|
-
status: string;
|
|
106
112
|
paymentMethod: string | null;
|
|
107
113
|
paymentStatus: string | null;
|
|
114
|
+
status: string;
|
|
108
115
|
subtotal: number;
|
|
109
|
-
discountAmount: number;
|
|
110
116
|
taxAmount: number;
|
|
111
117
|
total: number;
|
|
112
|
-
notes: string | null;
|
|
113
|
-
expectedDeliveryDate: string | null;
|
|
114
|
-
deliveryInfo: DeliveryInfo | null;
|
|
115
|
-
items?: OrderItem[];
|
|
116
|
-
createdAt: string;
|
|
117
118
|
updatedAt: string;
|
|
118
119
|
}
|
|
119
120
|
interface OrderCreateResponse {
|
|
120
|
-
id: string;
|
|
121
|
-
orderNumber: string;
|
|
122
|
-
total: number;
|
|
123
|
-
paymentMethod: string;
|
|
124
|
-
paymentStatus: string;
|
|
125
|
-
vietQrUrl: string | null;
|
|
126
121
|
bankInfo: {
|
|
127
122
|
bankBin: string | null;
|
|
128
123
|
bankAccountNumber: string | null;
|
|
129
124
|
bankAccountName: string | null;
|
|
130
125
|
} | null;
|
|
126
|
+
id: string;
|
|
127
|
+
orderNumber: string;
|
|
128
|
+
paymentMethod: string;
|
|
129
|
+
paymentStatus: string;
|
|
130
|
+
total: number;
|
|
131
|
+
vietQrUrl: string | null;
|
|
131
132
|
}
|
|
132
133
|
interface OrdersListResponse {
|
|
133
134
|
data: Order[];
|
|
134
135
|
pagination: Pagination;
|
|
135
136
|
}
|
|
136
137
|
interface Pagination {
|
|
137
|
-
|
|
138
|
+
hasMore: boolean;
|
|
138
139
|
limit: number;
|
|
139
140
|
offset: number;
|
|
140
|
-
|
|
141
|
+
total: number;
|
|
141
142
|
}
|
|
142
143
|
interface RitelClientConfig {
|
|
143
|
-
baseUrl: string;
|
|
144
144
|
apiKey: string;
|
|
145
|
+
baseUrl: string;
|
|
145
146
|
timeout?: number;
|
|
146
147
|
}
|
|
147
148
|
interface ApiErrorResponse {
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/resources/products.ts","../src/resources/categories.ts","../src/resources/orders.ts","../src/client.ts","../src/errors.ts"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/resources/products.ts","../src/resources/categories.ts","../src/resources/orders.ts","../src/client.ts","../src/errors.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
//#region src/types.d.ts
|
|
2
2
|
interface GetProductsParams {
|
|
3
|
+
categoryId?: string;
|
|
3
4
|
limit?: number;
|
|
5
|
+
maxPrice?: number;
|
|
6
|
+
minPrice?: number;
|
|
4
7
|
offset?: number;
|
|
5
8
|
search?: string;
|
|
6
|
-
categoryId?: string;
|
|
7
|
-
stockStatus?: "in_stock" | "out_of_stock" | "all";
|
|
8
|
-
minPrice?: number;
|
|
9
|
-
maxPrice?: number;
|
|
10
9
|
sortBy?: "name" | "price" | "created_at";
|
|
11
|
-
sortOrder?:
|
|
10
|
+
sortOrder?: SortOrder;
|
|
11
|
+
stockStatus?: StockStatus;
|
|
12
12
|
}
|
|
13
13
|
interface GetCategoriesParams {
|
|
14
14
|
limit?: number;
|
|
@@ -16,10 +16,10 @@ interface GetCategoriesParams {
|
|
|
16
16
|
search?: string;
|
|
17
17
|
}
|
|
18
18
|
interface Category {
|
|
19
|
+
description: string | null;
|
|
19
20
|
id: string;
|
|
20
21
|
name: string;
|
|
21
22
|
slug: string;
|
|
22
|
-
description: string | null;
|
|
23
23
|
}
|
|
24
24
|
interface CategoriesListResponse {
|
|
25
25
|
data: Category[];
|
|
@@ -30,7 +30,7 @@ interface ProductCategory {
|
|
|
30
30
|
name: string;
|
|
31
31
|
}
|
|
32
32
|
interface ProductMedia {
|
|
33
|
-
type:
|
|
33
|
+
type: MediaType;
|
|
34
34
|
url: string;
|
|
35
35
|
}
|
|
36
36
|
interface ProductTierPrice {
|
|
@@ -39,33 +39,34 @@ interface ProductTierPrice {
|
|
|
39
39
|
price: number;
|
|
40
40
|
}
|
|
41
41
|
interface Product {
|
|
42
|
-
|
|
43
|
-
name: string;
|
|
44
|
-
sku: string | null;
|
|
45
|
-
salePrice: number;
|
|
42
|
+
category: ProductCategory | null;
|
|
46
43
|
currentSalePrice: number | null;
|
|
44
|
+
customProperties: Record<string, unknown> | null;
|
|
47
45
|
description: string | null;
|
|
48
|
-
|
|
46
|
+
id: string;
|
|
47
|
+
isContactPrice: boolean;
|
|
48
|
+
medias: ProductMedia[] | null;
|
|
49
49
|
minOrderQuantity?: number;
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
name: string;
|
|
51
|
+
salePrice: number;
|
|
52
|
+
sku: string | null;
|
|
52
53
|
stockQuantity: number;
|
|
53
|
-
medias: ProductMedia[] | null;
|
|
54
54
|
tierPrices?: ProductTierPrice[];
|
|
55
|
+
unit: string | null;
|
|
55
56
|
}
|
|
56
57
|
interface ProductsListResponse {
|
|
57
58
|
data: Product[];
|
|
58
59
|
pagination: Pagination;
|
|
59
60
|
}
|
|
60
61
|
interface CreateOrderInput {
|
|
62
|
+
customerAddress?: string;
|
|
63
|
+
customerEmail?: string;
|
|
61
64
|
customerName: string;
|
|
62
65
|
customerPhone: string;
|
|
63
|
-
|
|
64
|
-
customerAddress?: string;
|
|
66
|
+
expectedDeliveryDate?: Date | string;
|
|
65
67
|
items: OrderItemInput[];
|
|
66
|
-
paymentMethod: "cash" | "bank_transfer" | "sepay_pg";
|
|
67
68
|
notes?: string;
|
|
68
|
-
|
|
69
|
+
paymentMethod: "cash" | "bank_transfer" | "sepay_pg";
|
|
69
70
|
}
|
|
70
71
|
interface OrderItemInput {
|
|
71
72
|
productId: string;
|
|
@@ -75,20 +76,20 @@ interface OrderItemInput {
|
|
|
75
76
|
interface ListOrdersParams {
|
|
76
77
|
limit?: number;
|
|
77
78
|
offset?: number;
|
|
78
|
-
status?: "pending" | "completed" | "cancelled";
|
|
79
|
-
paymentStatus?: "pending" | "paid" | "failed";
|
|
80
79
|
orderNumber?: string;
|
|
80
|
+
paymentStatus?: "pending" | "paid" | "failed";
|
|
81
|
+
status?: "pending" | "completed" | "cancelled";
|
|
81
82
|
}
|
|
82
83
|
interface UpdateOrderInput {
|
|
83
|
-
notes?: string;
|
|
84
|
-
expectedDeliveryDate?: Date | string | null;
|
|
85
84
|
deliveryInfo?: DeliveryInfo;
|
|
85
|
+
expectedDeliveryDate?: Date | string | null;
|
|
86
|
+
notes?: string;
|
|
86
87
|
}
|
|
87
88
|
interface DeliveryInfo {
|
|
89
|
+
address?: string | null;
|
|
90
|
+
email?: string | null;
|
|
88
91
|
name: string;
|
|
89
92
|
phone: string;
|
|
90
|
-
email?: string | null;
|
|
91
|
-
address?: string | null;
|
|
92
93
|
}
|
|
93
94
|
interface OrderItem {
|
|
94
95
|
id: string;
|
|
@@ -96,52 +97,52 @@ interface OrderItem {
|
|
|
96
97
|
productName: string;
|
|
97
98
|
productSku: string | null;
|
|
98
99
|
quantity: number;
|
|
99
|
-
unitPrice: number;
|
|
100
100
|
subtotal: number;
|
|
101
|
+
unitPrice: number;
|
|
101
102
|
}
|
|
102
103
|
interface Order {
|
|
104
|
+
createdAt: string;
|
|
105
|
+
deliveryInfo: DeliveryInfo | null;
|
|
106
|
+
discountAmount: number;
|
|
107
|
+
expectedDeliveryDate: string | null;
|
|
103
108
|
id: string;
|
|
109
|
+
items?: OrderItem[];
|
|
110
|
+
notes: string | null;
|
|
104
111
|
orderNumber: string;
|
|
105
|
-
status: string;
|
|
106
112
|
paymentMethod: string | null;
|
|
107
113
|
paymentStatus: string | null;
|
|
114
|
+
status: string;
|
|
108
115
|
subtotal: number;
|
|
109
|
-
discountAmount: number;
|
|
110
116
|
taxAmount: number;
|
|
111
117
|
total: number;
|
|
112
|
-
notes: string | null;
|
|
113
|
-
expectedDeliveryDate: string | null;
|
|
114
|
-
deliveryInfo: DeliveryInfo | null;
|
|
115
|
-
items?: OrderItem[];
|
|
116
|
-
createdAt: string;
|
|
117
118
|
updatedAt: string;
|
|
118
119
|
}
|
|
119
120
|
interface OrderCreateResponse {
|
|
120
|
-
id: string;
|
|
121
|
-
orderNumber: string;
|
|
122
|
-
total: number;
|
|
123
|
-
paymentMethod: string;
|
|
124
|
-
paymentStatus: string;
|
|
125
|
-
vietQrUrl: string | null;
|
|
126
121
|
bankInfo: {
|
|
127
122
|
bankBin: string | null;
|
|
128
123
|
bankAccountNumber: string | null;
|
|
129
124
|
bankAccountName: string | null;
|
|
130
125
|
} | null;
|
|
126
|
+
id: string;
|
|
127
|
+
orderNumber: string;
|
|
128
|
+
paymentMethod: string;
|
|
129
|
+
paymentStatus: string;
|
|
130
|
+
total: number;
|
|
131
|
+
vietQrUrl: string | null;
|
|
131
132
|
}
|
|
132
133
|
interface OrdersListResponse {
|
|
133
134
|
data: Order[];
|
|
134
135
|
pagination: Pagination;
|
|
135
136
|
}
|
|
136
137
|
interface Pagination {
|
|
137
|
-
|
|
138
|
+
hasMore: boolean;
|
|
138
139
|
limit: number;
|
|
139
140
|
offset: number;
|
|
140
|
-
|
|
141
|
+
total: number;
|
|
141
142
|
}
|
|
142
143
|
interface RitelClientConfig {
|
|
143
|
-
baseUrl: string;
|
|
144
144
|
apiKey: string;
|
|
145
|
+
baseUrl: string;
|
|
145
146
|
timeout?: number;
|
|
146
147
|
}
|
|
147
148
|
interface ApiErrorResponse {
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/resources/products.ts","../src/resources/categories.ts","../src/resources/orders.ts","../src/client.ts","../src/errors.ts"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/resources/products.ts","../src/resources/categories.ts","../src/resources/orders.ts","../src/client.ts","../src/errors.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -23,7 +23,6 @@ var RitelNetworkError = class extends RitelError {
|
|
|
23
23
|
this.cause = cause;
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
|
|
27
26
|
//#endregion
|
|
28
27
|
//#region src/resources/categories.ts
|
|
29
28
|
var CategoriesResource = class {
|
|
@@ -35,7 +34,6 @@ var CategoriesResource = class {
|
|
|
35
34
|
return this.request("GET", "/categories", void 0, params);
|
|
36
35
|
}
|
|
37
36
|
};
|
|
38
|
-
|
|
39
37
|
//#endregion
|
|
40
38
|
//#region src/resources/orders.ts
|
|
41
39
|
var OrdersResource = class {
|
|
@@ -59,7 +57,6 @@ var OrdersResource = class {
|
|
|
59
57
|
return this.request("POST", `/orders/${id}/cancel`);
|
|
60
58
|
}
|
|
61
59
|
};
|
|
62
|
-
|
|
63
60
|
//#endregion
|
|
64
61
|
//#region src/resources/products.ts
|
|
65
62
|
var ProductsResource = class {
|
|
@@ -74,7 +71,6 @@ var ProductsResource = class {
|
|
|
74
71
|
return this.request("GET", `/products/${id}`);
|
|
75
72
|
}
|
|
76
73
|
};
|
|
77
|
-
|
|
78
74
|
//#endregion
|
|
79
75
|
//#region src/utils/query-string.ts
|
|
80
76
|
function buildQueryString(params) {
|
|
@@ -87,7 +83,6 @@ function buildQueryString(params) {
|
|
|
87
83
|
const qs = searchParams.toString();
|
|
88
84
|
return qs ? `?${qs}` : "";
|
|
89
85
|
}
|
|
90
|
-
|
|
91
86
|
//#endregion
|
|
92
87
|
//#region src/client.ts
|
|
93
88
|
var RitelClient = class {
|
|
@@ -140,7 +135,7 @@ var RitelClient = class {
|
|
|
140
135
|
}
|
|
141
136
|
}
|
|
142
137
|
};
|
|
143
|
-
|
|
144
138
|
//#endregion
|
|
145
139
|
export { OrdersResource, ProductsResource, RitelApiError, RitelClient, RitelError, RitelNetworkError };
|
|
140
|
+
|
|
146
141
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/errors.ts","../src/resources/categories.ts","../src/resources/orders.ts","../src/resources/products.ts","../src/utils/query-string.ts","../src/client.ts"],"sourcesContent":["export class RitelError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"RitelError\";\n }\n}\n\nexport class RitelApiError extends RitelError {\n readonly status: number;\n readonly code: string;\n\n constructor(status: number, code: string, message: string) {\n super(message);\n this.name = \"RitelApiError\";\n this.status = status;\n this.code = code;\n }\n}\n\nexport class RitelNetworkError extends RitelError {\n readonly cause?: Error;\n\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = \"RitelNetworkError\";\n this.cause = cause;\n }\n}\n","import type { RequestFn } from \"../resources/products\";\nimport type { CategoriesListResponse, GetCategoriesParams } from \"../types\";\n\nexport class CategoriesResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async list(\n params: GetCategoriesParams = {}\n ): Promise<CategoriesListResponse> {\n return this.request<CategoriesListResponse>(\n \"GET\",\n \"/categories\",\n undefined,\n params as Record<string, unknown>\n );\n }\n}\n","import type {\n CreateOrderInput,\n ListOrdersParams,\n Order,\n OrderCreateResponse,\n OrdersListResponse,\n UpdateOrderInput,\n} from \"../types\";\n\nexport type RequestFn = <T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n) => Promise<T>;\n\nexport class OrdersResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async create(input: CreateOrderInput): Promise<OrderCreateResponse> {\n return this.request<OrderCreateResponse>(\"POST\", \"/orders\", input);\n }\n\n async list(params: ListOrdersParams = {}): Promise<OrdersListResponse> {\n return this.request<OrdersListResponse>(\n \"GET\",\n \"/orders\",\n undefined,\n params as Record<string, unknown>\n );\n }\n\n async get(id: string): Promise<Order> {\n return this.request<Order>(\"GET\", `/orders/${id}`);\n }\n\n async update(id: string, input: UpdateOrderInput): Promise<Order> {\n return this.request<Order>(\"PATCH\", `/orders/${id}`, input);\n }\n\n async cancel(id: string): Promise<Order> {\n return this.request<Order>(\"POST\", `/orders/${id}/cancel`);\n }\n}\n","import type {\n GetProductsParams,\n Product,\n ProductsListResponse,\n} from \"../types\";\n\nexport type RequestFn = <T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n) => Promise<T>;\n\nexport class ProductsResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async list(params: GetProductsParams = {}): Promise<ProductsListResponse> {\n return this.request<ProductsListResponse>(\n \"GET\",\n \"/products\",\n undefined,\n params as Record<string, unknown>\n );\n }\n\n async get(id: string): Promise<Product> {\n return this.request<Product>(\"GET\", `/products/${id}`);\n }\n}\n","export function buildQueryString(params: Record<string, unknown>): string {\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) {\n continue;\n }\n\n if (value instanceof Date) {\n searchParams.set(key, value.toISOString());\n } else {\n searchParams.set(key, String(value));\n }\n }\n\n const qs = searchParams.toString();\n return qs ? `?${qs}` : \"\";\n}\n","import { RitelApiError, RitelNetworkError } from \"./errors\";\nimport { CategoriesResource } from \"./resources/categories\";\nimport { OrdersResource } from \"./resources/orders\";\nimport { ProductsResource } from \"./resources/products\";\nimport type { ApiErrorResponse, RitelClientConfig } from \"./types\";\nimport { buildQueryString } from \"./utils/query-string\";\n\nexport class RitelClient {\n private readonly baseUrl: string;\n private readonly apiKey: string;\n private readonly timeout: number;\n\n readonly products: ProductsResource;\n readonly categories: CategoriesResource;\n readonly orders: OrdersResource;\n\n constructor(config: RitelClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/$/, \"\");\n this.apiKey = config.apiKey;\n this.timeout = config.timeout ?? 30_000;\n\n // Bind request method for resources\n const boundRequest = this.request.bind(this);\n this.products = new ProductsResource(boundRequest);\n this.categories = new CategoriesResource(boundRequest);\n this.orders = new OrdersResource(boundRequest);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n ): Promise<T> {\n const url = `${this.baseUrl}/external${path}${params ? buildQueryString(params) : \"\"}`;\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-Key\": this.apiKey,\n },\n body: body ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n const errorBody = (await response.json().catch(() => ({\n error: \"Unknown\",\n message: response.statusText,\n }))) as ApiErrorResponse;\n\n throw new RitelApiError(\n response.status,\n errorBody.error,\n errorBody.message\n );\n }\n\n return response.json() as Promise<T>;\n } catch (error) {\n clearTimeout(timeoutId);\n\n if (error instanceof RitelApiError) {\n throw error;\n }\n\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n throw new RitelNetworkError(\"Request timeout\", error);\n }\n throw new RitelNetworkError(error.message, error);\n }\n\n throw new RitelNetworkError(\"Unknown network error\");\n }\n }\n}\n"],"mappings":";AAAA,IAAa,aAAb,cAAgC,MAAM;CACpC,YAAY,SAAiB;AAC3B,QAAM,QAAQ;AACd,OAAK,OAAO;;;AAIhB,IAAa,gBAAb,cAAmC,WAAW;CAC5C
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/errors.ts","../src/resources/categories.ts","../src/resources/orders.ts","../src/resources/products.ts","../src/utils/query-string.ts","../src/client.ts"],"sourcesContent":["export class RitelError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"RitelError\";\n }\n}\n\nexport class RitelApiError extends RitelError {\n readonly status: number;\n readonly code: string;\n\n constructor(status: number, code: string, message: string) {\n super(message);\n this.name = \"RitelApiError\";\n this.status = status;\n this.code = code;\n }\n}\n\nexport class RitelNetworkError extends RitelError {\n readonly cause?: Error;\n\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = \"RitelNetworkError\";\n this.cause = cause;\n }\n}\n","import type { RequestFn } from \"../resources/products\";\nimport type { CategoriesListResponse, GetCategoriesParams } from \"../types\";\n\nexport class CategoriesResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async list(\n params: GetCategoriesParams = {}\n ): Promise<CategoriesListResponse> {\n return this.request<CategoriesListResponse>(\n \"GET\",\n \"/categories\",\n undefined,\n params as Record<string, unknown>\n );\n }\n}\n","import type {\n CreateOrderInput,\n ListOrdersParams,\n Order,\n OrderCreateResponse,\n OrdersListResponse,\n UpdateOrderInput,\n} from \"../types\";\n\nexport type RequestFn = <T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n) => Promise<T>;\n\nexport class OrdersResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async create(input: CreateOrderInput): Promise<OrderCreateResponse> {\n return this.request<OrderCreateResponse>(\"POST\", \"/orders\", input);\n }\n\n async list(params: ListOrdersParams = {}): Promise<OrdersListResponse> {\n return this.request<OrdersListResponse>(\n \"GET\",\n \"/orders\",\n undefined,\n params as Record<string, unknown>\n );\n }\n\n async get(id: string): Promise<Order> {\n return this.request<Order>(\"GET\", `/orders/${id}`);\n }\n\n async update(id: string, input: UpdateOrderInput): Promise<Order> {\n return this.request<Order>(\"PATCH\", `/orders/${id}`, input);\n }\n\n async cancel(id: string): Promise<Order> {\n return this.request<Order>(\"POST\", `/orders/${id}/cancel`);\n }\n}\n","import type {\n GetProductsParams,\n Product,\n ProductsListResponse,\n} from \"../types\";\n\nexport type RequestFn = <T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n) => Promise<T>;\n\nexport class ProductsResource {\n private readonly request: RequestFn;\n\n constructor(request: RequestFn) {\n this.request = request;\n }\n\n async list(params: GetProductsParams = {}): Promise<ProductsListResponse> {\n return this.request<ProductsListResponse>(\n \"GET\",\n \"/products\",\n undefined,\n params as Record<string, unknown>\n );\n }\n\n async get(id: string): Promise<Product> {\n return this.request<Product>(\"GET\", `/products/${id}`);\n }\n}\n","export function buildQueryString(params: Record<string, unknown>): string {\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) {\n continue;\n }\n\n if (value instanceof Date) {\n searchParams.set(key, value.toISOString());\n } else {\n searchParams.set(key, String(value));\n }\n }\n\n const qs = searchParams.toString();\n return qs ? `?${qs}` : \"\";\n}\n","import { RitelApiError, RitelNetworkError } from \"./errors\";\nimport { CategoriesResource } from \"./resources/categories\";\nimport { OrdersResource } from \"./resources/orders\";\nimport { ProductsResource } from \"./resources/products\";\nimport type { ApiErrorResponse, RitelClientConfig } from \"./types\";\nimport { buildQueryString } from \"./utils/query-string\";\n\nexport class RitelClient {\n private readonly baseUrl: string;\n private readonly apiKey: string;\n private readonly timeout: number;\n\n readonly products: ProductsResource;\n readonly categories: CategoriesResource;\n readonly orders: OrdersResource;\n\n constructor(config: RitelClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/$/, \"\");\n this.apiKey = config.apiKey;\n this.timeout = config.timeout ?? 30_000;\n\n // Bind request method for resources\n const boundRequest = this.request.bind(this);\n this.products = new ProductsResource(boundRequest);\n this.categories = new CategoriesResource(boundRequest);\n this.orders = new OrdersResource(boundRequest);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n params?: Record<string, unknown>\n ): Promise<T> {\n const url = `${this.baseUrl}/external${path}${params ? buildQueryString(params) : \"\"}`;\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-Key\": this.apiKey,\n },\n body: body ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n const errorBody = (await response.json().catch(() => ({\n error: \"Unknown\",\n message: response.statusText,\n }))) as ApiErrorResponse;\n\n throw new RitelApiError(\n response.status,\n errorBody.error,\n errorBody.message\n );\n }\n\n return response.json() as Promise<T>;\n } catch (error) {\n clearTimeout(timeoutId);\n\n if (error instanceof RitelApiError) {\n throw error;\n }\n\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n throw new RitelNetworkError(\"Request timeout\", error);\n }\n throw new RitelNetworkError(error.message, error);\n }\n\n throw new RitelNetworkError(\"Unknown network error\");\n }\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buiducnhat/ritel-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "TypeScript SDK for Ritel Mini ERP external APIs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -47,7 +47,8 @@
|
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@ritel/config": "workspace:*",
|
|
50
|
-
"
|
|
50
|
+
"@ritel/utils": "workspace:*",
|
|
51
|
+
"tsdown": "^0.21.0",
|
|
51
52
|
"typescript": "^5"
|
|
52
53
|
},
|
|
53
54
|
"peerDependencies": {
|