@edgenets/utils 0.3.2 → 0.3.4

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.
Files changed (55) hide show
  1. package/dist/array/unique.d.ts +2 -0
  2. package/dist/array/unique.d.ts.map +1 -0
  3. package/dist/array/unique.js +4 -0
  4. package/dist/array/unique.js.map +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/models/point.d.ts +21 -0
  10. package/dist/models/point.d.ts.map +1 -0
  11. package/dist/models/point.js +2 -0
  12. package/dist/models/point.js.map +1 -0
  13. package/dist/models/user.d.ts +0 -10
  14. package/dist/models/user.d.ts.map +1 -1
  15. package/dist/types/broadcast.d.ts +44 -0
  16. package/dist/types/broadcast.d.ts.map +1 -0
  17. package/dist/types/broadcast.js +10 -0
  18. package/dist/types/broadcast.js.map +1 -0
  19. package/dist/types/logger.d.ts +7 -0
  20. package/dist/types/logger.d.ts.map +1 -0
  21. package/dist/types/logger.js +3 -0
  22. package/dist/types/logger.js.map +1 -0
  23. package/dist/types/order.d.ts +112 -0
  24. package/dist/types/order.d.ts.map +1 -0
  25. package/dist/types/order.js +54 -0
  26. package/dist/types/order.js.map +1 -0
  27. package/dist/types/product.d.ts +8 -0
  28. package/dist/types/product.d.ts.map +1 -0
  29. package/dist/types/product.js +2 -0
  30. package/dist/types/product.js.map +1 -0
  31. package/dist/types/user.d.ts +135 -0
  32. package/dist/types/user.d.ts.map +1 -0
  33. package/dist/types/user.js +2 -0
  34. package/dist/types/user.js.map +1 -0
  35. package/dist/utils/logger/default.d.ts +13 -0
  36. package/dist/utils/logger/default.d.ts.map +1 -0
  37. package/dist/utils/logger/default.js +27 -0
  38. package/dist/utils/logger/default.js.map +1 -0
  39. package/dist/utils/logger.util.d.ts +8 -0
  40. package/dist/utils/logger.util.d.ts.map +1 -0
  41. package/dist/utils/logger.util.js +15 -0
  42. package/dist/utils/logger.util.js.map +1 -0
  43. package/dist/utils/scheduler.util.d.ts +23 -0
  44. package/dist/utils/scheduler.util.d.ts.map +1 -0
  45. package/dist/utils/scheduler.util.js +81 -0
  46. package/dist/utils/scheduler.util.js.map +1 -0
  47. package/dist/utils/tasks/queue.d.ts +23 -0
  48. package/dist/utils/tasks/queue.d.ts.map +1 -0
  49. package/dist/utils/tasks/queue.js +72 -0
  50. package/dist/utils/tasks/queue.js.map +1 -0
  51. package/dist/utils/tasks/scheduler.d.ts +24 -0
  52. package/dist/utils/tasks/scheduler.d.ts.map +1 -0
  53. package/dist/utils/tasks/scheduler.js +98 -0
  54. package/dist/utils/tasks/scheduler.js.map +1 -0
  55. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export declare function unique<T>(arr: T[]): T[];
2
+ //# sourceMappingURL=unique.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../../src/array/unique.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEvC"}
@@ -0,0 +1,4 @@
1
+ export function unique(arr) {
2
+ return [...new Set(arr)];
3
+ }
4
+ //# sourceMappingURL=unique.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unique.js","sourceRoot":"","sources":["../../src/array/unique.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAI,GAAQ;IAChC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from "./models/product.js";
3
3
  export * from "./models/logger.js";
4
4
  export * from "./models/order.js";
5
5
  export * from "./models/broadcast.js";
6
+ export * from "./models/point.js";
6
7
  export { StringUtils } from "./utils/string.util.js";
7
8
  export { SimpleStateMachine, OrderStateMachine, } from "./utils/statemachine.util.js";
8
9
  export { SignatureUtils } from "./utils/signature.util.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,kBAAkB,CAAC;AAGjC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,kBAAkB,CAAC;AAGjC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export * from "./models/product.js";
3
3
  export * from "./models/logger.js";
4
4
  export * from "./models/order.js";
5
5
  export * from "./models/broadcast.js";
6
+ export * from "./models/point.js";
6
7
  export { StringUtils } from "./utils/string.util.js";
7
8
  export { SimpleStateMachine, OrderStateMachine, } from "./utils/statemachine.util.js";
8
9
  export { SignatureUtils } from "./utils/signature.util.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,kBAAkB,CAAC;AAGjC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,kBAAkB,CAAC;AAGjC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type PointTransactionType = "earn" | "spend" | "expire";
2
+ export type PointTransactionReason = "purchase" | "bonus" | "refund" | "manual" | "other";
3
+ export interface UserPointInfo {
4
+ userId: string;
5
+ lastUpdatedAt: number;
6
+ totalPoints: number;
7
+ spentPoints: number;
8
+ expiredPoints: number;
9
+ transactions: PointTransaction[];
10
+ metadata?: Record<string, unknown>;
11
+ }
12
+ export interface PointTransaction {
13
+ userId: string;
14
+ pointType: string;
15
+ type: PointTransactionType;
16
+ reason: PointTransactionReason;
17
+ amount: number;
18
+ timestamp: number;
19
+ metadata?: Record<string, unknown>;
20
+ }
21
+ //# sourceMappingURL=point.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../src/models/point.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,OAAO,CAAC;AAGZ,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.js","sourceRoot":"","sources":["../../src/models/point.ts"],"names":[],"mappings":""}
@@ -3,16 +3,6 @@ export type UserStatus = "active" | "inactive" | "banned";
3
3
  export type WalletType = "ton" | "evm" | "btc";
4
4
  export type BadgeType = "season" | "special";
5
5
  export type InviterType = "user" | "channel";
6
- export type PointTransactionType = "earn" | "spend" | "expire";
7
- export type PointTransactionReason = "purchase" | "bonus" | "refund" | "manual" | "other";
8
- export interface PointTransaction {
9
- userId: string;
10
- type: PointTransactionType;
11
- reason: string;
12
- amount: number;
13
- timestamp: number;
14
- metadata?: Record<string, unknown>;
15
- }
16
6
  export interface GameEntry {
17
7
  gameId: string;
18
8
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ export declare enum BotId {
2
+ edgenets = 7001972098,
3
+ ariagame = 6725302634,
4
+ zoomania = 7076105558,
5
+ playaria = 7075595472,
6
+ playgam = 7171779056
7
+ }
8
+ /** 样例说明
9
+ {
10
+ "chatId": "123456789",
11
+ "sendStatus": false,
12
+ "messageText": "Hello, this is your scheduled message!",
13
+ "mediaUrl": "https://example.com/media.mp4",
14
+ "keyboard": [
15
+ {
16
+ "text": "Visit Website",
17
+ "url": "https://example.com"
18
+ }
19
+ ],
20
+ "messageFormat": "markdown",
21
+ "botId": 7171779056
22
+ }
23
+ */
24
+ export interface Notification {
25
+ id: string;
26
+ jobId: string;
27
+ botId: BotId;
28
+ chatId: string;
29
+ sendStatus: boolean;
30
+ messageText: string;
31
+ messageFormat: "HTML" | "Markdown" | "MarkdownV2";
32
+ mediaUrl?: string;
33
+ mediaType: "Image" | "Video" | undefined;
34
+ keyboard?: {
35
+ text: string;
36
+ callback_data?: string;
37
+ url?: string;
38
+ }[];
39
+ errCount: number;
40
+ createdAt: Date;
41
+ alertedAt: Date;
42
+ updatedAt?: Date;
43
+ }
44
+ //# sourceMappingURL=broadcast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/types/broadcast.ts"],"names":[],"mappings":"AACA,oBAAY,KAAK;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,OAAO,aAAa;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;IAEJ,QAAQ,EAAE,MAAM,CAAC;IAEjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -0,0 +1,10 @@
1
+ // ## Notification
2
+ export var BotId;
3
+ (function (BotId) {
4
+ BotId[BotId["edgenets"] = 7001972098] = "edgenets";
5
+ BotId[BotId["ariagame"] = 6725302634] = "ariagame";
6
+ BotId[BotId["zoomania"] = 7076105558] = "zoomania";
7
+ BotId[BotId["playaria"] = 7075595472] = "playaria";
8
+ BotId[BotId["playgam"] = 7171779056] = "playgam";
9
+ })(BotId || (BotId = {}));
10
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/types/broadcast.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,MAAM,CAAN,IAAY,KAMX;AAND,WAAY,KAAK;IACf,kDAAqB,CAAA;IACrB,kDAAqB,CAAA;IACrB,kDAAqB,CAAA;IACrB,kDAAqB,CAAA;IACrB,gDAAoB,CAAA;AACtB,CAAC,EANW,KAAK,KAAL,KAAK,QAMhB"}
@@ -0,0 +1,7 @@
1
+ export interface Logger {
2
+ debug(message: string): void;
3
+ info(message: string): void;
4
+ warn(message: string): void;
5
+ error(message: string): void;
6
+ }
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAE9B"}
@@ -0,0 +1,3 @@
1
+ // src/interfaces/Logger.ts
2
+ export {};
3
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":"AAAA,2BAA2B"}
@@ -0,0 +1,112 @@
1
+ export declare enum OrderStatus {
2
+ Draft = "draft",// 用户创建了订单草稿
3
+ Pending = "pending",// 信息已准备完成,待处理或待支付
4
+ Confirmed = "confirmed",// 已确认(含已支付),准备发货
5
+ Completed = "completed",// 已发货并完成,客户确认收货
6
+ Canceled = "canceled",// 已取消
7
+ Refunded = "refunded"
8
+ }
9
+ export declare enum PaymentMethod {
10
+ Digital = "digital",// 在线支付(如 PayPal, Alipay)
11
+ Credit = "credit",// 信用卡支付
12
+ Points = "points",// 积分支付,无需KYC
13
+ Crypto = "crypto"
14
+ }
15
+ export declare enum PaymentStatus {
16
+ Pending = "pending",
17
+ Paid = "paid",
18
+ Failed = "failed"
19
+ }
20
+ export declare enum RefundStatus {
21
+ Requested = "requested",// 退款已请求
22
+ Processing = "processing",// 退款处理中
23
+ Completed = "completed",// 退款已完成
24
+ Rejected = "rejected"
25
+ }
26
+ export declare enum ShippingMethod {
27
+ Standard = "standard",
28
+ Express = "express",
29
+ Pickup = "pickup",
30
+ Online = "online"
31
+ }
32
+ export declare enum ShippingStatus {
33
+ NotShipped = "not_shipped",
34
+ Shipped = "shipped",
35
+ Delivered = "delivered",
36
+ Failed = "failed"
37
+ }
38
+ export interface OrderCustomer {
39
+ id: string;
40
+ name?: string;
41
+ phone?: string;
42
+ email?: string;
43
+ metadata?: {
44
+ telegram?: {
45
+ id: number;
46
+ };
47
+ [key: string]: unknown;
48
+ };
49
+ }
50
+ export interface OrderItem {
51
+ id: string;
52
+ name?: string;
53
+ description?: string;
54
+ quantity: number;
55
+ price?: number;
56
+ totalPrice?: number;
57
+ }
58
+ export interface OrderPayment {
59
+ method: PaymentMethod;
60
+ status: PaymentStatus;
61
+ transactionId?: string;
62
+ metadata?: Record<string, unknown>;
63
+ }
64
+ export interface OrderRefund {
65
+ refundId: string;
66
+ refundAmount: number;
67
+ refundReason?: string;
68
+ refundStatus: RefundStatus;
69
+ refundedAt?: number;
70
+ }
71
+ export interface ShippingAddress {
72
+ addressLine1: string;
73
+ addressLine2?: string;
74
+ city: string;
75
+ state?: string;
76
+ postalCode: string;
77
+ country: string;
78
+ }
79
+ export interface OrderShipping {
80
+ method: ShippingMethod;
81
+ status: ShippingStatus;
82
+ cost?: number;
83
+ address?: ShippingAddress;
84
+ trackingNumber?: string;
85
+ }
86
+ export interface OrderDiscount {
87
+ code: string;
88
+ amount: number;
89
+ promoApplied: boolean;
90
+ }
91
+ export interface Order {
92
+ readonly id?: string;
93
+ readonly orderNumber: number;
94
+ status: OrderStatus;
95
+ items: OrderItem[];
96
+ currency: string;
97
+ totalAmount?: number;
98
+ customer: OrderCustomer;
99
+ payment: OrderPayment;
100
+ refund?: OrderRefund;
101
+ shipping?: OrderShipping;
102
+ discount?: OrderDiscount;
103
+ notes?: string;
104
+ source?: string;
105
+ metadata?: Record<string, unknown>;
106
+ createdAt?: number;
107
+ updatedAt?: number;
108
+ expiresAt?: number;
109
+ completedAt?: number;
110
+ canceledAt?: number;
111
+ }
112
+ //# sourceMappingURL=order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/types/order.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ ///////////////
2
+ //
3
+ // 基础接口定义
4
+ //
5
+ // 订单状态枚举
6
+ export var OrderStatus;
7
+ (function (OrderStatus) {
8
+ OrderStatus["Draft"] = "draft";
9
+ OrderStatus["Pending"] = "pending";
10
+ OrderStatus["Confirmed"] = "confirmed";
11
+ OrderStatus["Completed"] = "completed";
12
+ OrderStatus["Canceled"] = "canceled";
13
+ OrderStatus["Refunded"] = "refunded";
14
+ })(OrderStatus || (OrderStatus = {}));
15
+ // 支付方式枚举
16
+ export var PaymentMethod;
17
+ (function (PaymentMethod) {
18
+ PaymentMethod["Digital"] = "digital";
19
+ PaymentMethod["Credit"] = "credit";
20
+ PaymentMethod["Points"] = "points";
21
+ PaymentMethod["Crypto"] = "crypto";
22
+ })(PaymentMethod || (PaymentMethod = {}));
23
+ // 支付状态枚举
24
+ export var PaymentStatus;
25
+ (function (PaymentStatus) {
26
+ PaymentStatus["Pending"] = "pending";
27
+ PaymentStatus["Paid"] = "paid";
28
+ PaymentStatus["Failed"] = "failed";
29
+ })(PaymentStatus || (PaymentStatus = {}));
30
+ // 退款状态枚举
31
+ export var RefundStatus;
32
+ (function (RefundStatus) {
33
+ RefundStatus["Requested"] = "requested";
34
+ RefundStatus["Processing"] = "processing";
35
+ RefundStatus["Completed"] = "completed";
36
+ RefundStatus["Rejected"] = "rejected";
37
+ })(RefundStatus || (RefundStatus = {}));
38
+ // 配送方式枚举
39
+ export var ShippingMethod;
40
+ (function (ShippingMethod) {
41
+ ShippingMethod["Standard"] = "standard";
42
+ ShippingMethod["Express"] = "express";
43
+ ShippingMethod["Pickup"] = "pickup";
44
+ ShippingMethod["Online"] = "online";
45
+ })(ShippingMethod || (ShippingMethod = {}));
46
+ // 配送状态枚举
47
+ export var ShippingStatus;
48
+ (function (ShippingStatus) {
49
+ ShippingStatus["NotShipped"] = "not_shipped";
50
+ ShippingStatus["Shipped"] = "shipped";
51
+ ShippingStatus["Delivered"] = "delivered";
52
+ ShippingStatus["Failed"] = "failed";
53
+ })(ShippingStatus || (ShippingStatus = {}));
54
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../../src/types/order.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,EAAE;AACF,SAAS;AACT,EAAE;AAEF,SAAS;AACT,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;IACvB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,SAAS;AACT,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;AACnB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED,SAAS;AACT,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;IACb,kCAAiB,CAAA;AACnB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,SAAS;AACT,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,yCAAyB,CAAA;IACzB,uCAAuB,CAAA;IACvB,qCAAqB,CAAA;AACvB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,SAAS;AACT,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACnB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAED,SAAS;AACT,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,4CAA0B,CAAA;IAC1B,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACnB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB"}
@@ -0,0 +1,8 @@
1
+ export interface Product {
2
+ id: string;
3
+ name: string;
4
+ price: number;
5
+ description: string;
6
+ metadata?: Record<string, unknown>;
7
+ }
8
+ //# sourceMappingURL=product.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/types/product.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=product.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/types/product.ts"],"names":[],"mappings":""}
@@ -0,0 +1,135 @@
1
+ export type UserRole = "admin" | "member" | "guest";
2
+ export type UserStatus = "active" | "inactive" | "banned";
3
+ export type WalletType = "ton" | "evm" | "btc";
4
+ export type BadgeType = "season" | "special";
5
+ export type InviterType = "user" | "channel";
6
+ export type PointTransactionType = "earn" | "spend" | "expire";
7
+ export type PointTransactionReason = "purchase" | "bonus" | "refund" | "manual" | "other";
8
+ export interface UserPointInfo {
9
+ userId: string;
10
+ lastUpdatedAt: number;
11
+ spentPoints: number;
12
+ expiredPoints: number;
13
+ transactions: PointTransaction[];
14
+ metadata?: Record<string, unknown>;
15
+ }
16
+ export interface PointTransaction {
17
+ userId: string;
18
+ pointType: string;
19
+ type: PointTransactionType;
20
+ reason: PointTransactionReason;
21
+ amount: number;
22
+ timestamp: number;
23
+ metadata?: Record<string, unknown>;
24
+ }
25
+ export interface GameEntry {
26
+ gameId: string;
27
+ name?: string;
28
+ enteredAt: number;
29
+ metadata?: Record<string, unknown>;
30
+ }
31
+ export interface Inviter {
32
+ type: InviterType;
33
+ id: string;
34
+ name?: string;
35
+ metadata?: Record<string, unknown>;
36
+ }
37
+ export interface UserAddress {
38
+ addressLine1: string;
39
+ addressLine2?: string;
40
+ city: string;
41
+ state?: string;
42
+ postalCode: string;
43
+ country: string;
44
+ }
45
+ export interface Wallet {
46
+ type: WalletType;
47
+ address: string;
48
+ metadata?: Record<string, unknown>;
49
+ }
50
+ export interface Badge {
51
+ id: string;
52
+ name: string;
53
+ type: BadgeType;
54
+ awardedAt: number;
55
+ level?: number;
56
+ metadata?: Record<string, unknown>;
57
+ }
58
+ export interface User {
59
+ id: string;
60
+ name: string;
61
+ email: string;
62
+ phone?: string;
63
+ avatarUrl?: string;
64
+ displayName?: string;
65
+ emailVerified?: boolean;
66
+ role: UserRole;
67
+ status: UserStatus;
68
+ points?: number;
69
+ rankLevel?: string;
70
+ rankPosition?: number;
71
+ badges?: Badge[];
72
+ inviter?: Inviter;
73
+ inviteCode?: string;
74
+ inviteCount?: number;
75
+ addresses?: UserAddress[];
76
+ wallets?: Wallet[];
77
+ isVip?: boolean;
78
+ /**
79
+ * metadata 信息可能包含如下信息
80
+ *
81
+ * iss: string; // issuer - 发放令牌的机构
82
+ * aud: string; // audience - 接收令牌的一方
83
+ * sub: string; // subject - 通常是与 `userId` 一致
84
+ * iat: number; // issued at - 令牌签发时间
85
+ * exp: number; // expiration - 令牌过期时间
86
+ * authTime: number; // 认证时间
87
+ * firebase: FirebaseInfo;
88
+ * telegram {
89
+ * id: number;
90
+ * username?: string;
91
+ * firstName?: string;
92
+ * lastName?: string;
93
+ * languageCode?: string;
94
+ * isPremium?: boolean;
95
+ * };
96
+ * discord: {};
97
+ */
98
+ metadata?: Record<string, unknown>;
99
+ preferences?: Record<string, unknown>;
100
+ gamesPlayed?: GameEntry[];
101
+ createdAt?: number;
102
+ updatedAt?: number;
103
+ lastLoginAt?: number;
104
+ }
105
+ export interface TelegramUser {
106
+ id: number;
107
+ username?: string;
108
+ firstName: string;
109
+ lastName?: string;
110
+ photoUrl?: string;
111
+ languageCode?: string;
112
+ isBot?: boolean;
113
+ isPremium?: boolean;
114
+ addedToAttachmentMenu?: boolean;
115
+ allowsWriteToPm?: boolean;
116
+ }
117
+ export interface AuthUser {
118
+ id: string;
119
+ name: string;
120
+ email: string;
121
+ displayName: string;
122
+ role: string;
123
+ status: string;
124
+ emailVerified: boolean;
125
+ metadata: {
126
+ telegram?: Record<string, unknown>;
127
+ firebase?: Record<string, unknown>;
128
+ iss: string;
129
+ aud: string;
130
+ sub: string;
131
+ iat: number;
132
+ exp: number;
133
+ };
134
+ }
135
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC1D,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC7C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,OAAO,CAAC;AAIZ,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IAEjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAE1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { Logger } from "../../types/logger.js";
2
+ declare class ConsoleLogger implements Logger {
3
+ private static instance;
4
+ private constructor();
5
+ static getInstance(): ConsoleLogger;
6
+ debug(message: string): void;
7
+ warn(message: string): void;
8
+ info(message: string): void;
9
+ error(message: string): void;
10
+ }
11
+ export declare const consoleLogger: ConsoleLogger;
12
+ export {};
13
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/utils/logger/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,cAAM,aAAc,YAAW,MAAM;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,OAAO;WAEO,WAAW,IAAI,aAAa;IAO1C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAG5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAG3B,IAAI,CAAC,OAAO,EAAE,MAAM;IAGpB,KAAK,CAAC,OAAO,EAAE,MAAM;CAGtB;AAGD,eAAO,MAAM,aAAa,eAA8B,CAAC"}
@@ -0,0 +1,27 @@
1
+ class ConsoleLogger {
2
+ static instance = null;
3
+ // 私有构造函数,防止外部实例化
4
+ constructor() { }
5
+ // 获取单例实例的静态方法
6
+ static getInstance() {
7
+ if (!ConsoleLogger.instance) {
8
+ ConsoleLogger.instance = new ConsoleLogger();
9
+ }
10
+ return ConsoleLogger.instance;
11
+ }
12
+ debug(message) {
13
+ console.debug(`[DEBUG] ${message}`);
14
+ }
15
+ warn(message) {
16
+ console.warn(`[WARN] ${message}`);
17
+ }
18
+ info(message) {
19
+ console.log(`[INFO] ${message}`);
20
+ }
21
+ error(message) {
22
+ console.error(`[ERROR] ${message}`);
23
+ }
24
+ }
25
+ // 导出单一实例,保证全局唯一
26
+ export const consoleLogger = ConsoleLogger.getInstance();
27
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/utils/logger/default.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa;IACT,MAAM,CAAC,QAAQ,GAAyB,IAAI,CAAC;IACrD,iBAAiB;IACjB,gBAAuB,CAAC;IACxB,cAAc;IACP,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;;AAGH,gBAAgB;AAChB,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Logger } from "../types/logger.js";
2
+ export declare class ConsoleLogger implements Logger {
3
+ debug(message: string): void;
4
+ warn(message: string): void;
5
+ info(message: string): void;
6
+ error(message: string): void;
7
+ }
8
+ //# sourceMappingURL=logger.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.util.d.ts","sourceRoot":"","sources":["../../src/utils/logger.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,aAAc,YAAW,MAAM;IAC1C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAG5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAG3B,IAAI,CAAC,OAAO,EAAE,MAAM;IAGpB,KAAK,CAAC,OAAO,EAAE,MAAM;CAGtB"}
@@ -0,0 +1,15 @@
1
+ export class ConsoleLogger {
2
+ debug(message) {
3
+ console.debug(`[DEBUG] ${message}`);
4
+ }
5
+ warn(message) {
6
+ console.warn(`[WARN] ${message}`);
7
+ }
8
+ info(message) {
9
+ console.log(`[INFO] ${message}`);
10
+ }
11
+ error(message) {
12
+ console.error(`[ERROR] ${message}`);
13
+ }
14
+ }
15
+ //# sourceMappingURL=logger.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.util.js","sourceRoot":"","sources":["../../src/utils/logger.util.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ type Task = () => Promise<boolean>;
2
+ export interface SchedulerOptions {
3
+ interval?: number;
4
+ taskTimeout?: number;
5
+ logInterval?: number;
6
+ maxRecursions: number;
7
+ maxRetries?: number;
8
+ maxTotalTime?: number;
9
+ }
10
+ declare class SchedulerUtils {
11
+ private static instance;
12
+ private tasks;
13
+ private constructor();
14
+ static getInstance(): SchedulerUtils;
15
+ run(task: Task, options: SchedulerOptions): void;
16
+ private handleTaskError;
17
+ private timeout;
18
+ private delay;
19
+ cancelAll(): void;
20
+ }
21
+ export declare const schedule: SchedulerUtils;
22
+ export {};
23
+ //# sourceMappingURL=scheduler.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.util.d.ts","sourceRoot":"","sources":["../../src/utils/scheduler.util.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,cAAM,cAAc;IAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD,OAAO,CAAC,KAAK,CAA2D;IAGxE,OAAO;WAGO,WAAW,IAAI,cAAc;IAOpC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;YA0DzC,eAAe;IAmB7B,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,KAAK;IAIN,SAAS,IAAI,IAAI;CAMzB;AAGD,eAAO,MAAM,QAAQ,gBAA+B,CAAC"}
@@ -0,0 +1,81 @@
1
+ class SchedulerUtils {
2
+ static instance = null;
3
+ tasks = new Map();
4
+ // 私有构造函数,防止外部实例化
5
+ constructor() { }
6
+ // 获取单例实例的静态方法
7
+ static getInstance() {
8
+ if (!SchedulerUtils.instance) {
9
+ SchedulerUtils.instance = new SchedulerUtils();
10
+ }
11
+ return SchedulerUtils.instance;
12
+ }
13
+ run(task, options) {
14
+ const { interval = 1000, // 默认 1000 毫秒
15
+ maxRecursions = 0, // 默认不迭代
16
+ maxRetries = 0, // 默认不重试
17
+ logInterval = 1, // 默认每次递归都打印日志
18
+ taskTimeout = 30000, // 默认单次执行时间30秒
19
+ maxTotalTime = 60000, // 默认最大执行时间60秒
20
+ } = options || {};
21
+ let counter = 0;
22
+ let retries = 0;
23
+ const startTime = Date.now();
24
+ const executeTask = async () => {
25
+ try {
26
+ if (maxTotalTime && Date.now() - startTime > maxTotalTime) {
27
+ console.log("达到总的最大执行时间,停止任务。");
28
+ this.cancelAll();
29
+ return;
30
+ }
31
+ const shouldContinue = await Promise.race([
32
+ task(),
33
+ this.timeout(taskTimeout),
34
+ ]);
35
+ counter++;
36
+ if (shouldContinue && counter < maxRecursions) {
37
+ if (counter % logInterval === 0) {
38
+ console.log(`递归执行, 第 ${counter} 次, 已执行 ${(Date.now() - startTime) / 1000} 秒`);
39
+ }
40
+ this.tasks.set(setTimeout(async () => {
41
+ await executeTask();
42
+ }, interval), setTimeout(() => { }, interval));
43
+ }
44
+ else {
45
+ this.cancelAll();
46
+ }
47
+ }
48
+ catch (error) {
49
+ await this.handleTaskError(error, retries, maxRetries, executeTask, interval);
50
+ retries++;
51
+ }
52
+ };
53
+ executeTask();
54
+ }
55
+ async handleTaskError(error, retries, maxRetries, retryTask, interval) {
56
+ if (retries < maxRetries) {
57
+ console.error(`Retry attempt ${retries + 1} due to error: ${error}`);
58
+ await this.delay(interval * (retries + 1)); // 指数退避
59
+ await retryTask(); // 重新执行任务
60
+ }
61
+ else {
62
+ console.error("Max retries reached. Task execution stopped due to persistent errors.");
63
+ this.cancelAll();
64
+ }
65
+ }
66
+ timeout(ms) {
67
+ return new Promise((_, reject) => setTimeout(() => reject("Task timed out"), ms));
68
+ }
69
+ delay(ms) {
70
+ return new Promise((resolve) => setTimeout(resolve, ms));
71
+ }
72
+ cancelAll() {
73
+ this.tasks.forEach((_, taskId) => {
74
+ clearTimeout(taskId);
75
+ });
76
+ this.tasks.clear();
77
+ }
78
+ }
79
+ // 导出 BotService 的单一实例,保证全局唯一
80
+ export const schedule = SchedulerUtils.getInstance();
81
+ //# sourceMappingURL=scheduler.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.util.js","sourceRoot":"","sources":["../../src/utils/scheduler.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type QueueTask<T> = () => Promise<T>;
2
+ export interface QueueOptions {
3
+ concurrency?: number;
4
+ interval?: number;
5
+ }
6
+ export declare class Queue<T> {
7
+ private options;
8
+ private queue;
9
+ private activeTasks;
10
+ private isProcessing;
11
+ constructor(options?: QueueOptions);
12
+ enqueue(task: QueueTask<T>): void;
13
+ trigger(): Promise<void>;
14
+ getStatus(): {
15
+ activeTasks: number;
16
+ pendingTasks: number;
17
+ isProcessing: boolean;
18
+ };
19
+ private processQueue;
20
+ private delay;
21
+ private updateActiveTasks;
22
+ }
23
+ //# sourceMappingURL=queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,KAAK,CAAC,CAAC;IAMhB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAS;gBAGnB,OAAO,GAAE,YAAiD;IAI7D,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAS3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B,SAAS,IAAI;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;KACvB;YASa,YAAY;IAiC1B,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,iBAAiB;CAI1B"}
@@ -0,0 +1,72 @@
1
+ export class Queue {
2
+ options;
3
+ queue = [];
4
+ activeTasks = 0;
5
+ isProcessing = false;
6
+ constructor(options = { concurrency: 1, interval: 1000 }) {
7
+ this.options = options;
8
+ }
9
+ // 添加任务到队列
10
+ enqueue(task) {
11
+ this.queue.push(task);
12
+ if (!this.isProcessing) {
13
+ console.log("[Queue] Automatically starting processQueue...");
14
+ this.processQueue();
15
+ }
16
+ }
17
+ // 手动触发队列处理
18
+ async trigger() {
19
+ console.log("[Queue] Manually triggered processQueue...");
20
+ if (!this.isProcessing) {
21
+ await this.processQueue();
22
+ }
23
+ else {
24
+ console.log("[Queue] Already processing.");
25
+ }
26
+ }
27
+ // 获取队列状态
28
+ getStatus() {
29
+ return {
30
+ activeTasks: this.activeTasks,
31
+ pendingTasks: this.queue.length,
32
+ isProcessing: this.isProcessing,
33
+ };
34
+ }
35
+ // 队列处理逻辑
36
+ async processQueue() {
37
+ this.isProcessing = true;
38
+ while (this.queue.length > 0) {
39
+ const batch = this.queue.splice(0, this.options.concurrency || 1);
40
+ this.activeTasks += batch.length; // 增加活动任务计数
41
+ console.log(`[Queue] Processing batch of ${batch.length} tasks...`);
42
+ // 批次并行执行
43
+ await Promise.all(batch.map(async (task) => {
44
+ try {
45
+ await task();
46
+ }
47
+ catch (err) {
48
+ console.error(`[Queue][TaskFailed]: ${err}`);
49
+ }
50
+ finally {
51
+ this.updateActiveTasks();
52
+ }
53
+ }));
54
+ if (this.queue.length > 0) {
55
+ console.log(`[Queue] Delaying for ${this.options.interval || 0}ms...`);
56
+ await this.delay(this.options.interval || 0);
57
+ }
58
+ }
59
+ this.isProcessing = false;
60
+ console.log("[Queue] All tasks processed.");
61
+ }
62
+ // 延迟执行
63
+ delay(ms) {
64
+ return new Promise((resolve) => setTimeout(resolve, ms));
65
+ }
66
+ // 更新活动任务计数
67
+ updateActiveTasks() {
68
+ this.activeTasks--;
69
+ console.log(`[Queue] Active tasks: ${this.activeTasks}`);
70
+ }
71
+ }
72
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Logger } from "../../types/logger.js";
2
+ export type SchedulerTask = () => Promise<boolean>;
3
+ export interface SchedulerOptions {
4
+ interval?: number;
5
+ taskTimeout?: number;
6
+ logInterval?: number;
7
+ maxRecursions: number;
8
+ maxRetries?: number;
9
+ maxTotalTime?: number;
10
+ }
11
+ declare class Scheduler {
12
+ private static instance;
13
+ private tasks;
14
+ private constructor();
15
+ static getInstance(): Scheduler;
16
+ run(task: SchedulerTask, options: SchedulerOptions, logger?: Logger): void;
17
+ private handleTaskError;
18
+ private timeout;
19
+ private delay;
20
+ cancelAll(): void;
21
+ }
22
+ export declare const scheduler: Scheduler;
23
+ export {};
24
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/utils/tasks/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,cAAM,SAAS;IACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,KAAK,CAA2D;IAExE,OAAO;WAEO,WAAW,IAAI,SAAS;IAO/B,GAAG,CACR,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,gBAAgB,EACzB,MAAM,GAAE,MAAsB,GAC7B,IAAI;YAuDO,eAAe;IAmB7B,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,KAAK;IAIN,SAAS,IAAI,IAAI;CAMzB;AAGD,eAAO,MAAM,SAAS,WAA0B,CAAC"}
@@ -0,0 +1,98 @@
1
+ import { consoleLogger } from "../logger/default.js";
2
+ class Scheduler {
3
+ static instance = null;
4
+ tasks = new Map();
5
+ // 私有构造函数,防止外部实例化
6
+ constructor() { }
7
+ // 获取单例实例的静态方法
8
+ static getInstance() {
9
+ if (!Scheduler.instance) {
10
+ Scheduler.instance = new Scheduler();
11
+ }
12
+ return Scheduler.instance;
13
+ }
14
+ run(task, options, logger = consoleLogger) {
15
+ const { interval = 1000, // 默认 1000 毫秒
16
+ maxRecursions = 0, // 默认不迭代
17
+ maxRetries = 0, // 默认不重试
18
+ logInterval = 1, // 默认每次递归都打印日志
19
+ taskTimeout = 30000, // 默认单次执行时间30秒
20
+ maxTotalTime = 60000, // 默认最大执行时间60秒
21
+ } = options || {};
22
+ let counter = 0;
23
+ let retries = 0;
24
+ const startTime = Date.now();
25
+ const executeTask = async () => {
26
+ try {
27
+ if (maxTotalTime && Date.now() - startTime > maxTotalTime) {
28
+ logger.info("达到总的最大执行时间,停止任务。");
29
+ this.cancelAll();
30
+ return;
31
+ }
32
+ const shouldContinue = await Promise.race([
33
+ task(),
34
+ this.timeout(taskTimeout),
35
+ ]);
36
+ counter++;
37
+ if (shouldContinue && counter < maxRecursions) {
38
+ if (counter % logInterval === 0) {
39
+ logger.info(`递归执行, 第 ${counter} 次, 已执行 ${(Date.now() - startTime) / 1000} 秒`);
40
+ }
41
+ this.tasks.set(setTimeout(async () => {
42
+ await executeTask();
43
+ }, interval), setTimeout(() => { }, interval));
44
+ }
45
+ else {
46
+ this.cancelAll();
47
+ }
48
+ }
49
+ catch (error) {
50
+ await this.handleTaskError(error, retries, maxRetries, executeTask, interval);
51
+ retries++;
52
+ }
53
+ };
54
+ executeTask();
55
+ }
56
+ async handleTaskError(error, retries, maxRetries, retryTask, interval) {
57
+ if (retries < maxRetries) {
58
+ console.error(`Retry attempt ${retries + 1} due to error: ${error}`);
59
+ await this.delay(interval * (retries + 1)); // 指数退避
60
+ await retryTask(); // 重新执行任务
61
+ }
62
+ else {
63
+ console.error("Max retries reached. Task execution stopped due to persistent errors.");
64
+ this.cancelAll();
65
+ }
66
+ }
67
+ timeout(ms) {
68
+ return new Promise((_, reject) => setTimeout(() => reject("Task timed out"), ms));
69
+ }
70
+ delay(ms) {
71
+ return new Promise((resolve) => setTimeout(resolve, ms));
72
+ }
73
+ cancelAll() {
74
+ this.tasks.forEach((_, taskId) => {
75
+ clearTimeout(taskId);
76
+ });
77
+ this.tasks.clear();
78
+ }
79
+ }
80
+ // 导出单一实例,保证全局唯一
81
+ export const scheduler = Scheduler.getInstance();
82
+ ///////////////
83
+ // 使用示例
84
+ // 使用 Scheduler 调度任务
85
+ //
86
+ // import { schedule } from "@edgenets/utils";
87
+ // const exampleTask: Task = async () => {
88
+ // console.log("Executing task...");
89
+ // return Math.random() < 0.8; // 80% 概率继续执行
90
+ // };
91
+ // scheduler.run(exampleTask, {
92
+ // interval: 2000, // 每 2 秒执行一次
93
+ // maxRecursions: 10, // 最多递归 10 次
94
+ // logInterval: 2, // 每 2 次打印一次日志
95
+ // taskTimeout: 3000, // 单次任务最多执行 3 秒
96
+ // maxRetries: 3, // 每次失败最多重试 3 次
97
+ // });
98
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/utils/tasks/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAarD,MAAM,SAAS;IACL,MAAM,CAAC,QAAQ,GAAqB,IAAI,CAAC;IACzC,KAAK,GAAiD,IAAI,GAAG,EAAE,CAAC;IACxE,iBAAiB;IACjB,gBAAuB,CAAC;IACxB,cAAc;IACP,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAEM,GAAG,CACR,IAAmB,EACnB,OAAyB,EACzB,SAAiB,aAAa;QAE9B,MAAM,EACJ,QAAQ,GAAG,IAAI,EAAE,aAAa;QAC9B,aAAa,GAAG,CAAC,EAAE,QAAQ;QAC3B,UAAU,GAAG,CAAC,EAAE,QAAQ;QACxB,WAAW,GAAG,CAAC,EAAE,cAAc;QAC/B,WAAW,GAAG,KAAK,EAAE,cAAc;QACnC,YAAY,GAAG,KAAK,EAAE,cAAc;UACrC,GAAG,OAAO,IAAI,EAAE,CAAC;QAElB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACH,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,YAAY,EAAE,CAAC;oBAC1D,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAChC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,OAAO;gBACT,CAAC;gBACD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBACxC,IAAI,EAAE;oBACN,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;iBAC1B,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC;gBACV,IAAI,cAAc,IAAI,OAAO,GAAG,aAAa,EAAE,CAAC;oBAC9C,IAAI,OAAO,GAAG,WAAW,KAAK,CAAC,EAAE,CAAC;wBAChC,MAAM,CAAC,IAAI,CACT,WAAW,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,IAAI,CACjE,CAAC;oBACJ,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,UAAU,CAAC,KAAK,IAAI,EAAE;wBACpB,MAAM,WAAW,EAAE,CAAC;oBACtB,CAAC,EAAE,QAAQ,CAAC,EACZ,UAAU,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,QAAQ,CAAC,CAC/B,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,eAAe,CACxB,KAAc,EACd,OAAO,EACP,UAAU,EACV,WAAW,EACX,QAAQ,CACT,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QACF,WAAW,EAAE,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,KAAY,EACZ,OAAe,EACf,UAAkB,EAClB,SAA8B,EAC9B,QAAgB;QAEhB,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,iBAAiB,OAAO,GAAG,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;YACnD,MAAM,SAAS,EAAE,CAAC,CAAC,SAAS;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CACX,uEAAuE,CACxE,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAC/C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEM,SAAS;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/B,YAAY,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;;AAGH,gBAAgB;AAChB,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;AAEjD,eAAe;AACf,OAAO;AACP,oBAAoB;AACpB,EAAE;AAEF,8CAA8C;AAC9C,0CAA0C;AAC1C,sCAAsC;AACtC,8CAA8C;AAC9C,KAAK;AACL,+BAA+B;AAC/B,iCAAiC;AACjC,oCAAoC;AACpC,mCAAmC;AACnC,uCAAuC;AACvC,mCAAmC;AACnC,MAAM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgenets/utils",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Edgenets utilities package containing common types and utilities.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",