@buiducnhat/ritel-sdk 0.3.1 → 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/README.md +2 -0
- package/dist/index.cjs +2 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +49 -41
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +49 -41
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -97,6 +97,7 @@ const product = await client.products.get("prod_123");
|
|
|
97
97
|
category: { id: string; name: string } | null;
|
|
98
98
|
customProperties: Record<string, unknown> | null;
|
|
99
99
|
stockQuantity: number;
|
|
100
|
+
medias: ProductMedia[] | null;
|
|
100
101
|
}
|
|
101
102
|
```
|
|
102
103
|
|
|
@@ -262,6 +263,7 @@ import type {
|
|
|
262
263
|
OrderCreateResponse,
|
|
263
264
|
OrdersListResponse,
|
|
264
265
|
DeliveryInfo,
|
|
266
|
+
ProductMedia,
|
|
265
267
|
|
|
266
268
|
// Common
|
|
267
269
|
Pagination,
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
//#region src/errors.ts
|
|
3
3
|
var RitelError = class extends Error {
|
|
4
4
|
constructor(message) {
|
|
@@ -24,7 +24,6 @@ var RitelNetworkError = class extends RitelError {
|
|
|
24
24
|
this.cause = cause;
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
|
-
|
|
28
27
|
//#endregion
|
|
29
28
|
//#region src/resources/categories.ts
|
|
30
29
|
var CategoriesResource = class {
|
|
@@ -36,7 +35,6 @@ var CategoriesResource = class {
|
|
|
36
35
|
return this.request("GET", "/categories", void 0, params);
|
|
37
36
|
}
|
|
38
37
|
};
|
|
39
|
-
|
|
40
38
|
//#endregion
|
|
41
39
|
//#region src/resources/orders.ts
|
|
42
40
|
var OrdersResource = class {
|
|
@@ -60,7 +58,6 @@ var OrdersResource = class {
|
|
|
60
58
|
return this.request("POST", `/orders/${id}/cancel`);
|
|
61
59
|
}
|
|
62
60
|
};
|
|
63
|
-
|
|
64
61
|
//#endregion
|
|
65
62
|
//#region src/resources/products.ts
|
|
66
63
|
var ProductsResource = class {
|
|
@@ -75,7 +72,6 @@ var ProductsResource = class {
|
|
|
75
72
|
return this.request("GET", `/products/${id}`);
|
|
76
73
|
}
|
|
77
74
|
};
|
|
78
|
-
|
|
79
75
|
//#endregion
|
|
80
76
|
//#region src/utils/query-string.ts
|
|
81
77
|
function buildQueryString(params) {
|
|
@@ -88,7 +84,6 @@ function buildQueryString(params) {
|
|
|
88
84
|
const qs = searchParams.toString();
|
|
89
85
|
return qs ? `?${qs}` : "";
|
|
90
86
|
}
|
|
91
|
-
|
|
92
87
|
//#endregion
|
|
93
88
|
//#region src/client.ts
|
|
94
89
|
var RitelClient = class {
|
|
@@ -141,7 +136,6 @@ var RitelClient = class {
|
|
|
141
136
|
}
|
|
142
137
|
}
|
|
143
138
|
};
|
|
144
|
-
|
|
145
139
|
//#endregion
|
|
146
140
|
exports.OrdersResource = OrdersResource;
|
|
147
141
|
exports.ProductsResource = ProductsResource;
|
|
@@ -149,4 +143,5 @@ exports.RitelApiError = RitelApiError;
|
|
|
149
143
|
exports.RitelClient = RitelClient;
|
|
150
144
|
exports.RitelError = RitelError;
|
|
151
145
|
exports.RitelNetworkError = RitelNetworkError;
|
|
146
|
+
|
|
152
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":";;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.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,35 +30,43 @@ interface ProductCategory {
|
|
|
30
30
|
name: string;
|
|
31
31
|
}
|
|
32
32
|
interface ProductMedia {
|
|
33
|
-
type:
|
|
33
|
+
type: MediaType;
|
|
34
34
|
url: string;
|
|
35
35
|
}
|
|
36
|
+
interface ProductTierPrice {
|
|
37
|
+
id: string;
|
|
38
|
+
minQuantity: number;
|
|
39
|
+
price: number;
|
|
40
|
+
}
|
|
36
41
|
interface Product {
|
|
42
|
+
category: ProductCategory | null;
|
|
43
|
+
currentSalePrice: number | null;
|
|
44
|
+
customProperties: Record<string, unknown> | null;
|
|
45
|
+
description: string | null;
|
|
37
46
|
id: string;
|
|
47
|
+
isContactPrice: boolean;
|
|
48
|
+
medias: ProductMedia[] | null;
|
|
49
|
+
minOrderQuantity?: number;
|
|
38
50
|
name: string;
|
|
39
|
-
sku: string | null;
|
|
40
51
|
salePrice: number;
|
|
41
|
-
|
|
42
|
-
description: string | null;
|
|
43
|
-
unit: string | null;
|
|
44
|
-
category: ProductCategory | null;
|
|
45
|
-
customProperties: Record<string, unknown> | null;
|
|
52
|
+
sku: string | null;
|
|
46
53
|
stockQuantity: number;
|
|
47
|
-
|
|
54
|
+
tierPrices?: ProductTierPrice[];
|
|
55
|
+
unit: string | null;
|
|
48
56
|
}
|
|
49
57
|
interface ProductsListResponse {
|
|
50
58
|
data: Product[];
|
|
51
59
|
pagination: Pagination;
|
|
52
60
|
}
|
|
53
61
|
interface CreateOrderInput {
|
|
62
|
+
customerAddress?: string;
|
|
63
|
+
customerEmail?: string;
|
|
54
64
|
customerName: string;
|
|
55
65
|
customerPhone: string;
|
|
56
|
-
|
|
57
|
-
customerAddress?: string;
|
|
66
|
+
expectedDeliveryDate?: Date | string;
|
|
58
67
|
items: OrderItemInput[];
|
|
59
|
-
paymentMethod: "cash" | "bank_transfer" | "sepay_pg";
|
|
60
68
|
notes?: string;
|
|
61
|
-
|
|
69
|
+
paymentMethod: "cash" | "bank_transfer" | "sepay_pg";
|
|
62
70
|
}
|
|
63
71
|
interface OrderItemInput {
|
|
64
72
|
productId: string;
|
|
@@ -68,20 +76,20 @@ interface OrderItemInput {
|
|
|
68
76
|
interface ListOrdersParams {
|
|
69
77
|
limit?: number;
|
|
70
78
|
offset?: number;
|
|
71
|
-
status?: "pending" | "completed" | "cancelled";
|
|
72
|
-
paymentStatus?: "pending" | "paid" | "failed";
|
|
73
79
|
orderNumber?: string;
|
|
80
|
+
paymentStatus?: "pending" | "paid" | "failed";
|
|
81
|
+
status?: "pending" | "completed" | "cancelled";
|
|
74
82
|
}
|
|
75
83
|
interface UpdateOrderInput {
|
|
76
|
-
notes?: string;
|
|
77
|
-
expectedDeliveryDate?: Date | string | null;
|
|
78
84
|
deliveryInfo?: DeliveryInfo;
|
|
85
|
+
expectedDeliveryDate?: Date | string | null;
|
|
86
|
+
notes?: string;
|
|
79
87
|
}
|
|
80
88
|
interface DeliveryInfo {
|
|
89
|
+
address?: string | null;
|
|
90
|
+
email?: string | null;
|
|
81
91
|
name: string;
|
|
82
92
|
phone: string;
|
|
83
|
-
email?: string | null;
|
|
84
|
-
address?: string | null;
|
|
85
93
|
}
|
|
86
94
|
interface OrderItem {
|
|
87
95
|
id: string;
|
|
@@ -89,52 +97,52 @@ interface OrderItem {
|
|
|
89
97
|
productName: string;
|
|
90
98
|
productSku: string | null;
|
|
91
99
|
quantity: number;
|
|
92
|
-
unitPrice: number;
|
|
93
100
|
subtotal: number;
|
|
101
|
+
unitPrice: number;
|
|
94
102
|
}
|
|
95
103
|
interface Order {
|
|
104
|
+
createdAt: string;
|
|
105
|
+
deliveryInfo: DeliveryInfo | null;
|
|
106
|
+
discountAmount: number;
|
|
107
|
+
expectedDeliveryDate: string | null;
|
|
96
108
|
id: string;
|
|
109
|
+
items?: OrderItem[];
|
|
110
|
+
notes: string | null;
|
|
97
111
|
orderNumber: string;
|
|
98
|
-
status: string;
|
|
99
112
|
paymentMethod: string | null;
|
|
100
113
|
paymentStatus: string | null;
|
|
114
|
+
status: string;
|
|
101
115
|
subtotal: number;
|
|
102
|
-
discountAmount: number;
|
|
103
116
|
taxAmount: number;
|
|
104
117
|
total: number;
|
|
105
|
-
notes: string | null;
|
|
106
|
-
expectedDeliveryDate: string | null;
|
|
107
|
-
deliveryInfo: DeliveryInfo | null;
|
|
108
|
-
items?: OrderItem[];
|
|
109
|
-
createdAt: string;
|
|
110
118
|
updatedAt: string;
|
|
111
119
|
}
|
|
112
120
|
interface OrderCreateResponse {
|
|
113
|
-
id: string;
|
|
114
|
-
orderNumber: string;
|
|
115
|
-
total: number;
|
|
116
|
-
paymentMethod: string;
|
|
117
|
-
paymentStatus: string;
|
|
118
|
-
vietQrUrl: string | null;
|
|
119
121
|
bankInfo: {
|
|
120
122
|
bankBin: string | null;
|
|
121
123
|
bankAccountNumber: string | null;
|
|
122
124
|
bankAccountName: string | null;
|
|
123
125
|
} | null;
|
|
126
|
+
id: string;
|
|
127
|
+
orderNumber: string;
|
|
128
|
+
paymentMethod: string;
|
|
129
|
+
paymentStatus: string;
|
|
130
|
+
total: number;
|
|
131
|
+
vietQrUrl: string | null;
|
|
124
132
|
}
|
|
125
133
|
interface OrdersListResponse {
|
|
126
134
|
data: Order[];
|
|
127
135
|
pagination: Pagination;
|
|
128
136
|
}
|
|
129
137
|
interface Pagination {
|
|
130
|
-
|
|
138
|
+
hasMore: boolean;
|
|
131
139
|
limit: number;
|
|
132
140
|
offset: number;
|
|
133
|
-
|
|
141
|
+
total: number;
|
|
134
142
|
}
|
|
135
143
|
interface RitelClientConfig {
|
|
136
|
-
baseUrl: string;
|
|
137
144
|
apiKey: string;
|
|
145
|
+
baseUrl: string;
|
|
138
146
|
timeout?: number;
|
|
139
147
|
}
|
|
140
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,35 +30,43 @@ interface ProductCategory {
|
|
|
30
30
|
name: string;
|
|
31
31
|
}
|
|
32
32
|
interface ProductMedia {
|
|
33
|
-
type:
|
|
33
|
+
type: MediaType;
|
|
34
34
|
url: string;
|
|
35
35
|
}
|
|
36
|
+
interface ProductTierPrice {
|
|
37
|
+
id: string;
|
|
38
|
+
minQuantity: number;
|
|
39
|
+
price: number;
|
|
40
|
+
}
|
|
36
41
|
interface Product {
|
|
42
|
+
category: ProductCategory | null;
|
|
43
|
+
currentSalePrice: number | null;
|
|
44
|
+
customProperties: Record<string, unknown> | null;
|
|
45
|
+
description: string | null;
|
|
37
46
|
id: string;
|
|
47
|
+
isContactPrice: boolean;
|
|
48
|
+
medias: ProductMedia[] | null;
|
|
49
|
+
minOrderQuantity?: number;
|
|
38
50
|
name: string;
|
|
39
|
-
sku: string | null;
|
|
40
51
|
salePrice: number;
|
|
41
|
-
|
|
42
|
-
description: string | null;
|
|
43
|
-
unit: string | null;
|
|
44
|
-
category: ProductCategory | null;
|
|
45
|
-
customProperties: Record<string, unknown> | null;
|
|
52
|
+
sku: string | null;
|
|
46
53
|
stockQuantity: number;
|
|
47
|
-
|
|
54
|
+
tierPrices?: ProductTierPrice[];
|
|
55
|
+
unit: string | null;
|
|
48
56
|
}
|
|
49
57
|
interface ProductsListResponse {
|
|
50
58
|
data: Product[];
|
|
51
59
|
pagination: Pagination;
|
|
52
60
|
}
|
|
53
61
|
interface CreateOrderInput {
|
|
62
|
+
customerAddress?: string;
|
|
63
|
+
customerEmail?: string;
|
|
54
64
|
customerName: string;
|
|
55
65
|
customerPhone: string;
|
|
56
|
-
|
|
57
|
-
customerAddress?: string;
|
|
66
|
+
expectedDeliveryDate?: Date | string;
|
|
58
67
|
items: OrderItemInput[];
|
|
59
|
-
paymentMethod: "cash" | "bank_transfer" | "sepay_pg";
|
|
60
68
|
notes?: string;
|
|
61
|
-
|
|
69
|
+
paymentMethod: "cash" | "bank_transfer" | "sepay_pg";
|
|
62
70
|
}
|
|
63
71
|
interface OrderItemInput {
|
|
64
72
|
productId: string;
|
|
@@ -68,20 +76,20 @@ interface OrderItemInput {
|
|
|
68
76
|
interface ListOrdersParams {
|
|
69
77
|
limit?: number;
|
|
70
78
|
offset?: number;
|
|
71
|
-
status?: "pending" | "completed" | "cancelled";
|
|
72
|
-
paymentStatus?: "pending" | "paid" | "failed";
|
|
73
79
|
orderNumber?: string;
|
|
80
|
+
paymentStatus?: "pending" | "paid" | "failed";
|
|
81
|
+
status?: "pending" | "completed" | "cancelled";
|
|
74
82
|
}
|
|
75
83
|
interface UpdateOrderInput {
|
|
76
|
-
notes?: string;
|
|
77
|
-
expectedDeliveryDate?: Date | string | null;
|
|
78
84
|
deliveryInfo?: DeliveryInfo;
|
|
85
|
+
expectedDeliveryDate?: Date | string | null;
|
|
86
|
+
notes?: string;
|
|
79
87
|
}
|
|
80
88
|
interface DeliveryInfo {
|
|
89
|
+
address?: string | null;
|
|
90
|
+
email?: string | null;
|
|
81
91
|
name: string;
|
|
82
92
|
phone: string;
|
|
83
|
-
email?: string | null;
|
|
84
|
-
address?: string | null;
|
|
85
93
|
}
|
|
86
94
|
interface OrderItem {
|
|
87
95
|
id: string;
|
|
@@ -89,52 +97,52 @@ interface OrderItem {
|
|
|
89
97
|
productName: string;
|
|
90
98
|
productSku: string | null;
|
|
91
99
|
quantity: number;
|
|
92
|
-
unitPrice: number;
|
|
93
100
|
subtotal: number;
|
|
101
|
+
unitPrice: number;
|
|
94
102
|
}
|
|
95
103
|
interface Order {
|
|
104
|
+
createdAt: string;
|
|
105
|
+
deliveryInfo: DeliveryInfo | null;
|
|
106
|
+
discountAmount: number;
|
|
107
|
+
expectedDeliveryDate: string | null;
|
|
96
108
|
id: string;
|
|
109
|
+
items?: OrderItem[];
|
|
110
|
+
notes: string | null;
|
|
97
111
|
orderNumber: string;
|
|
98
|
-
status: string;
|
|
99
112
|
paymentMethod: string | null;
|
|
100
113
|
paymentStatus: string | null;
|
|
114
|
+
status: string;
|
|
101
115
|
subtotal: number;
|
|
102
|
-
discountAmount: number;
|
|
103
116
|
taxAmount: number;
|
|
104
117
|
total: number;
|
|
105
|
-
notes: string | null;
|
|
106
|
-
expectedDeliveryDate: string | null;
|
|
107
|
-
deliveryInfo: DeliveryInfo | null;
|
|
108
|
-
items?: OrderItem[];
|
|
109
|
-
createdAt: string;
|
|
110
118
|
updatedAt: string;
|
|
111
119
|
}
|
|
112
120
|
interface OrderCreateResponse {
|
|
113
|
-
id: string;
|
|
114
|
-
orderNumber: string;
|
|
115
|
-
total: number;
|
|
116
|
-
paymentMethod: string;
|
|
117
|
-
paymentStatus: string;
|
|
118
|
-
vietQrUrl: string | null;
|
|
119
121
|
bankInfo: {
|
|
120
122
|
bankBin: string | null;
|
|
121
123
|
bankAccountNumber: string | null;
|
|
122
124
|
bankAccountName: string | null;
|
|
123
125
|
} | null;
|
|
126
|
+
id: string;
|
|
127
|
+
orderNumber: string;
|
|
128
|
+
paymentMethod: string;
|
|
129
|
+
paymentStatus: string;
|
|
130
|
+
total: number;
|
|
131
|
+
vietQrUrl: string | null;
|
|
124
132
|
}
|
|
125
133
|
interface OrdersListResponse {
|
|
126
134
|
data: Order[];
|
|
127
135
|
pagination: Pagination;
|
|
128
136
|
}
|
|
129
137
|
interface Pagination {
|
|
130
|
-
|
|
138
|
+
hasMore: boolean;
|
|
131
139
|
limit: number;
|
|
132
140
|
offset: number;
|
|
133
|
-
|
|
141
|
+
total: number;
|
|
134
142
|
}
|
|
135
143
|
interface RitelClientConfig {
|
|
136
|
-
baseUrl: string;
|
|
137
144
|
apiKey: string;
|
|
145
|
+
baseUrl: string;
|
|
138
146
|
timeout?: number;
|
|
139
147
|
}
|
|
140
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",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
],
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "tsdown",
|
|
27
|
-
"typecheck": "tsc --noEmit",
|
|
27
|
+
"typecheck": "tsc -b --noEmit",
|
|
28
28
|
"prepublishOnly": "bun run build"
|
|
29
29
|
},
|
|
30
30
|
"keywords": [
|
|
@@ -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": {
|