@edgenets/utils 0.3.4 → 0.3.6

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 (61) hide show
  1. package/dist/errors/code.d.ts +20 -0
  2. package/dist/errors/code.d.ts.map +1 -0
  3. package/dist/errors/code.js +21 -0
  4. package/dist/errors/code.js.map +1 -0
  5. package/dist/errors/index.d.ts +14 -0
  6. package/dist/errors/index.d.ts.map +1 -0
  7. package/dist/errors/index.js +83 -0
  8. package/dist/errors/index.js.map +1 -0
  9. package/dist/index.d.ts +2 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/utils/nanoid.util.d.ts +8 -0
  14. package/dist/utils/nanoid.util.d.ts.map +1 -0
  15. package/dist/utils/nanoid.util.js +32 -0
  16. package/dist/utils/nanoid.util.js.map +1 -0
  17. package/package.json +1 -1
  18. package/dist/array/unique.d.ts +0 -2
  19. package/dist/array/unique.d.ts.map +0 -1
  20. package/dist/array/unique.js +0 -4
  21. package/dist/array/unique.js.map +0 -1
  22. package/dist/types/broadcast.d.ts +0 -44
  23. package/dist/types/broadcast.d.ts.map +0 -1
  24. package/dist/types/broadcast.js +0 -10
  25. package/dist/types/broadcast.js.map +0 -1
  26. package/dist/types/logger.d.ts +0 -7
  27. package/dist/types/logger.d.ts.map +0 -1
  28. package/dist/types/logger.js +0 -3
  29. package/dist/types/logger.js.map +0 -1
  30. package/dist/types/order.d.ts +0 -112
  31. package/dist/types/order.d.ts.map +0 -1
  32. package/dist/types/order.js +0 -54
  33. package/dist/types/order.js.map +0 -1
  34. package/dist/types/product.d.ts +0 -8
  35. package/dist/types/product.d.ts.map +0 -1
  36. package/dist/types/product.js +0 -2
  37. package/dist/types/product.js.map +0 -1
  38. package/dist/types/user.d.ts +0 -135
  39. package/dist/types/user.d.ts.map +0 -1
  40. package/dist/types/user.js +0 -2
  41. package/dist/types/user.js.map +0 -1
  42. package/dist/utils/logger/default.d.ts +0 -13
  43. package/dist/utils/logger/default.d.ts.map +0 -1
  44. package/dist/utils/logger/default.js +0 -27
  45. package/dist/utils/logger/default.js.map +0 -1
  46. package/dist/utils/logger.util.d.ts +0 -8
  47. package/dist/utils/logger.util.d.ts.map +0 -1
  48. package/dist/utils/logger.util.js +0 -15
  49. package/dist/utils/logger.util.js.map +0 -1
  50. package/dist/utils/scheduler.util.d.ts +0 -23
  51. package/dist/utils/scheduler.util.d.ts.map +0 -1
  52. package/dist/utils/scheduler.util.js +0 -81
  53. package/dist/utils/scheduler.util.js.map +0 -1
  54. package/dist/utils/tasks/queue.d.ts +0 -23
  55. package/dist/utils/tasks/queue.d.ts.map +0 -1
  56. package/dist/utils/tasks/queue.js +0 -72
  57. package/dist/utils/tasks/queue.js.map +0 -1
  58. package/dist/utils/tasks/scheduler.d.ts +0 -24
  59. package/dist/utils/tasks/scheduler.d.ts.map +0 -1
  60. package/dist/utils/tasks/scheduler.js +0 -98
  61. package/dist/utils/tasks/scheduler.js.map +0 -1
@@ -0,0 +1,20 @@
1
+ export declare enum ErrorCode {
2
+ USR_VAL_MISSING_FIELDS = "USR-VAL-001",
3
+ USR_VAL_INVALID_INPUT = "USR-VAL-002",
4
+ USR_DATA_NOT_FOUND = "USR-DATA-001",
5
+ USR_DATA_DUPLICATE = "USR-DATA-002",
6
+ AUTH_VAL_SIGNATURE_INVALID = "AUTH-VAL-001",
7
+ AUTH_VAL_TOKEN_EXPIRED = "AUTH-VAL-002",
8
+ AUTH_VAL_TOKEN_INVALID = "AUTH-VAL-003",
9
+ AUTH_AUTH_UNAUTHORIZED = "AUTH-AUTH-001",
10
+ DB_CONN_FAILED = "DB-SYS-001",
11
+ DB_QUERY_FAILED = "DB-SYS-002",
12
+ DB_DATA_CONFLICT = "DB-DATA-001",
13
+ SYS_UNKNOWN = "SYS-SYS-001",
14
+ SYS_INTERNAL_ERROR = "SYS-SYS-002",
15
+ SYS_TIMEOUT = "SYS-SYS-003",
16
+ API_VAL_RESPONSE_INVALID = "API-VAL-001",
17
+ API_CONN_FAILED = "API-SYS-001",
18
+ API_RATE_LIMIT_EXCEEDED = "API-SYS-002"
19
+ }
20
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/errors/code.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IAEnB,sBAAsB,gBAAgB;IACtC,qBAAqB,gBAAgB;IACrC,kBAAkB,iBAAiB;IACnC,kBAAkB,iBAAiB;IAGnC,0BAA0B,iBAAiB;IAC3C,sBAAsB,iBAAiB;IACvC,sBAAsB,iBAAiB;IACvC,sBAAsB,kBAAkB;IAGxC,cAAc,eAAe;IAC7B,eAAe,eAAe;IAC9B,gBAAgB,gBAAgB;IAGhC,WAAW,gBAAgB;IAC3B,kBAAkB,gBAAgB;IAClC,WAAW,gBAAgB;IAG3B,wBAAwB,gBAAgB;IACxC,eAAe,gBAAgB;IAC/B,uBAAuB,gBAAgB;CACxC"}
@@ -0,0 +1,21 @@
1
+ export var ErrorCode;
2
+ (function (ErrorCode) {
3
+ ErrorCode["USR_VAL_MISSING_FIELDS"] = "USR-VAL-001";
4
+ ErrorCode["USR_VAL_INVALID_INPUT"] = "USR-VAL-002";
5
+ ErrorCode["USR_DATA_NOT_FOUND"] = "USR-DATA-001";
6
+ ErrorCode["USR_DATA_DUPLICATE"] = "USR-DATA-002";
7
+ ErrorCode["AUTH_VAL_SIGNATURE_INVALID"] = "AUTH-VAL-001";
8
+ ErrorCode["AUTH_VAL_TOKEN_EXPIRED"] = "AUTH-VAL-002";
9
+ ErrorCode["AUTH_VAL_TOKEN_INVALID"] = "AUTH-VAL-003";
10
+ ErrorCode["AUTH_AUTH_UNAUTHORIZED"] = "AUTH-AUTH-001";
11
+ ErrorCode["DB_CONN_FAILED"] = "DB-SYS-001";
12
+ ErrorCode["DB_QUERY_FAILED"] = "DB-SYS-002";
13
+ ErrorCode["DB_DATA_CONFLICT"] = "DB-DATA-001";
14
+ ErrorCode["SYS_UNKNOWN"] = "SYS-SYS-001";
15
+ ErrorCode["SYS_INTERNAL_ERROR"] = "SYS-SYS-002";
16
+ ErrorCode["SYS_TIMEOUT"] = "SYS-SYS-003";
17
+ ErrorCode["API_VAL_RESPONSE_INVALID"] = "API-VAL-001";
18
+ ErrorCode["API_CONN_FAILED"] = "API-SYS-001";
19
+ ErrorCode["API_RATE_LIMIT_EXCEEDED"] = "API-SYS-002";
20
+ })(ErrorCode || (ErrorCode = {}));
21
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/errors/code.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SA2BX;AA3BD,WAAY,SAAS;IAEnB,mDAAsC,CAAA;IACtC,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IAGnC,wDAA2C,CAAA;IAC3C,oDAAuC,CAAA;IACvC,oDAAuC,CAAA;IACvC,qDAAwC,CAAA;IAGxC,0CAA6B,CAAA;IAC7B,2CAA8B,CAAA;IAC9B,6CAAgC,CAAA;IAGhC,wCAA2B,CAAA;IAC3B,+CAAkC,CAAA;IAClC,wCAA2B,CAAA;IAG3B,qDAAwC,CAAA;IACxC,4CAA+B,CAAA;IAC/B,oDAAuC,CAAA;AACzC,CAAC,EA3BW,SAAS,KAAT,SAAS,QA2BpB"}
@@ -0,0 +1,14 @@
1
+ import { ErrorCode } from "./code.js";
2
+ export { ErrorCode };
3
+ export declare const ErrorDetails: {
4
+ [key in ErrorCode]: {
5
+ message: string;
6
+ httpStatus: number;
7
+ };
8
+ };
9
+ export declare function handleError(errorCode: ErrorCode): {
10
+ code: string;
11
+ message: string;
12
+ httpStatus: number;
13
+ };
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,eAAO,MAAM,YAAY,EAAE;KACxB,GAAG,IAAI,SAAS,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CA+E5D,CAAC;AAEF,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAOA"}
@@ -0,0 +1,83 @@
1
+ import { ErrorCode } from "./code.js";
2
+ export { ErrorCode };
3
+ export const ErrorDetails = {
4
+ [ErrorCode.USR_VAL_MISSING_FIELDS]: {
5
+ message: "Required fields are missing.",
6
+ httpStatus: 400,
7
+ },
8
+ [ErrorCode.USR_VAL_INVALID_INPUT]: {
9
+ message: "Invalid input provided.",
10
+ httpStatus: 400,
11
+ },
12
+ [ErrorCode.USR_DATA_NOT_FOUND]: {
13
+ message: "User data not found.",
14
+ httpStatus: 404,
15
+ },
16
+ [ErrorCode.USR_DATA_DUPLICATE]: {
17
+ message: "Duplicate user data found.",
18
+ httpStatus: 409,
19
+ },
20
+ [ErrorCode.AUTH_VAL_SIGNATURE_INVALID]: {
21
+ message: "Signature is invalid.",
22
+ httpStatus: 401,
23
+ },
24
+ [ErrorCode.AUTH_VAL_TOKEN_EXPIRED]: {
25
+ message: "Authentication token has expired.",
26
+ httpStatus: 401,
27
+ },
28
+ [ErrorCode.AUTH_VAL_TOKEN_INVALID]: {
29
+ message: "Invalid authentication token.",
30
+ httpStatus: 401,
31
+ },
32
+ [ErrorCode.AUTH_AUTH_UNAUTHORIZED]: {
33
+ message: "User is unauthorized.",
34
+ httpStatus: 403,
35
+ },
36
+ [ErrorCode.DB_CONN_FAILED]: {
37
+ message: "Database connection failed.",
38
+ httpStatus: 500,
39
+ },
40
+ [ErrorCode.DB_QUERY_FAILED]: {
41
+ message: "Database query failed.",
42
+ httpStatus: 500,
43
+ },
44
+ [ErrorCode.DB_DATA_CONFLICT]: {
45
+ message: "Data conflict in database.",
46
+ httpStatus: 409,
47
+ },
48
+ [ErrorCode.SYS_UNKNOWN]: {
49
+ message: "Unknown system error.",
50
+ httpStatus: 500,
51
+ },
52
+ [ErrorCode.SYS_INTERNAL_ERROR]: {
53
+ message: "Internal server error.",
54
+ httpStatus: 500,
55
+ },
56
+ [ErrorCode.SYS_TIMEOUT]: {
57
+ message: "System request timed out.",
58
+ httpStatus: 504,
59
+ },
60
+ [ErrorCode.API_VAL_RESPONSE_INVALID]: {
61
+ message: "Invalid response from external API.",
62
+ httpStatus: 502,
63
+ },
64
+ [ErrorCode.API_CONN_FAILED]: {
65
+ message: "Failed to connect to external API.",
66
+ httpStatus: 502,
67
+ },
68
+ [ErrorCode.API_RATE_LIMIT_EXCEEDED]: {
69
+ message: "External API rate limit exceeded.",
70
+ httpStatus: 429,
71
+ },
72
+ };
73
+ export function handleError(errorCode) {
74
+ const errorDetail = ErrorDetails[errorCode];
75
+ return {
76
+ code: errorCode,
77
+ message: errorDetail.message,
78
+ httpStatus: errorDetail.httpStatus,
79
+ };
80
+ }
81
+ const errorResponse = handleError(ErrorCode.AUTH_VAL_SIGNATURE_INVALID);
82
+ console.log(errorResponse);
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,MAAM,CAAC,MAAM,YAAY,GAErB;IAEF,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;QAClC,OAAO,EAAE,8BAA8B;QACvC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE;QACjC,OAAO,EAAE,yBAAyB;QAClC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC9B,OAAO,EAAE,sBAAsB;QAC/B,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC9B,OAAO,EAAE,4BAA4B;QACrC,UAAU,EAAE,GAAG;KAChB;IAGD,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE;QACtC,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;QAClC,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;QAClC,OAAO,EAAE,+BAA+B;QACxC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;QAClC,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,GAAG;KAChB;IAGD,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;QAC1B,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;QAC3B,OAAO,EAAE,wBAAwB;QACjC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;QAC5B,OAAO,EAAE,4BAA4B;QACrC,UAAU,EAAE,GAAG;KAChB;IAGD,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;QACvB,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC9B,OAAO,EAAE,wBAAwB;QACjC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;QACvB,OAAO,EAAE,2BAA2B;QACpC,UAAU,EAAE,GAAG;KAChB;IAGD,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE;QACpC,OAAO,EAAE,qCAAqC;QAC9C,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;QAC3B,OAAO,EAAE,oCAAoC;QAC7C,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE;QACnC,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,GAAG;KAChB;CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,SAAoB;IAK9C,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,UAAU,EAAE,WAAW,CAAC,UAAU;KACnC,CAAC;AACJ,CAAC;AAGD,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACxE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export { StringUtils } from "./utils/string.util.js";
8
8
  export { SimpleStateMachine, OrderStateMachine, } from "./utils/statemachine.util.js";
9
9
  export { SignatureUtils } from "./utils/signature.util.js";
10
10
  export * from "./queue/queue.js";
11
- export * from "./utils/generate.util.js";
11
+ export * from "./utils/nanoid.util.js";
12
12
  export * from "./logger/default.js";
13
+ export * from "./errors/index.js";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -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;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"}
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,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { StringUtils } from "./utils/string.util.js";
8
8
  export { SimpleStateMachine, OrderStateMachine, } from "./utils/statemachine.util.js";
9
9
  export { SignatureUtils } from "./utils/signature.util.js";
10
10
  export * from "./queue/queue.js";
11
- export * from "./utils/generate.util.js";
11
+ export * from "./utils/nanoid.util.js";
12
12
  export * from "./logger/default.js";
13
+ export * from "./errors/index.js";
13
14
  //# sourceMappingURL=index.js.map
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;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"}
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,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class NanoidUtil {
2
+ private static readonly DEFAULT_CHARS;
3
+ static generate(length: number, chars?: string): string;
4
+ static generateDefault(length: number): string;
5
+ static generateCustom(length: number, customChars: string): string;
6
+ static generateCustomId(): string;
7
+ }
8
+ //# sourceMappingURL=nanoid.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nanoid.util.d.ts","sourceRoot":"","sources":["../../src/utils/nanoid.util.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAU;IAIrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC8B;WAQrD,QAAQ,CACpB,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAiC,GACvC,MAAM;WAiBK,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;WAUvC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;WAW3D,gBAAgB,IAAI,MAAM;CAgBzC"}
@@ -0,0 +1,32 @@
1
+ import crypto from "crypto";
2
+ export class NanoidUtil {
3
+ static DEFAULT_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
4
+ static generate(length, chars = NanoidUtil.DEFAULT_CHARS) {
5
+ if (length <= 0) {
6
+ throw new Error("Length must be greater than 0");
7
+ }
8
+ const bytes = crypto.randomBytes(length);
9
+ const result = Array.from({ length }, (_, i) => {
10
+ const charIndex = bytes[i] % chars.length;
11
+ return chars[charIndex];
12
+ });
13
+ return result.join("");
14
+ }
15
+ static generateDefault(length) {
16
+ return NanoidUtil.generate(length);
17
+ }
18
+ static generateCustom(length, customChars) {
19
+ return NanoidUtil.generate(length, customChars);
20
+ }
21
+ static generateCustomId() {
22
+ const now = new Date();
23
+ const startOfYear2000 = new Date("2020-01-01T00:00:00Z");
24
+ const dayCount = Math.floor((now.getTime() - startOfYear2000.getTime()) / (1000 * 60 * 60 * 24));
25
+ const dayPart = dayCount.toString().slice(-4).padStart(4, "0");
26
+ const minutesOfDay = now.getHours() * 60 + now.getMinutes();
27
+ const minutePart = minutesOfDay.toString().padStart(4, "0");
28
+ const randomPart = NanoidUtil.generate(8, "0123456789");
29
+ return `${dayPart}${minutePart}${randomPart}`;
30
+ }
31
+ }
32
+ //# sourceMappingURL=nanoid.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nanoid.util.js","sourceRoot":"","sources":["../../src/utils/nanoid.util.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,OAAO,UAAU;IAIb,MAAM,CAAU,aAAa,GACnC,gEAAgE,CAAC;IAQ5D,MAAM,CAAC,QAAQ,CACpB,MAAc,EACd,QAAgB,UAAU,CAAC,aAAa;QAExC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1C,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAOM,MAAM,CAAC,eAAe,CAAC,MAAc;QAC1C,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAQM,MAAM,CAAC,cAAc,CAAC,MAAc,EAAE,WAAmB;QAC9D,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IASM,MAAM,CAAC,gBAAgB;QAC5B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CACpE,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAExD,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC;IAChD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgenets/utils",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "Edgenets utilities package containing common types and utilities.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,2 +0,0 @@
1
- export declare function unique<T>(arr: T[]): T[];
2
- //# sourceMappingURL=unique.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,4 +0,0 @@
1
- export function unique(arr) {
2
- return [...new Set(arr)];
3
- }
4
- //# sourceMappingURL=unique.js.map
@@ -1 +0,0 @@
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"}
@@ -1,44 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,3 +0,0 @@
1
- // src/interfaces/Logger.ts
2
- export {};
3
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":"AAAA,2BAA2B"}
@@ -1,112 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/types/order.ts"],"names":[],"mappings":"AAMA,oBAAY,WAAW;IACrB,KAAK,UAAU,CAAE,YAAY;IAC7B,OAAO,YAAY,CAAE,kBAAkB;IACvC,SAAS,cAAc,CAAE,iBAAiB;IAC1C,SAAS,cAAc,CAAE,gBAAgB;IACzC,QAAQ,aAAa,CAAE,MAAM;IAC7B,QAAQ,aAAa;CACtB;AAGD,oBAAY,aAAa;IACvB,OAAO,YAAY,CAAE,yBAAyB;IAC9C,MAAM,WAAW,CAAE,QAAQ;IAC3B,MAAM,WAAW,CAAE,aAAa;IAChC,MAAM,WAAW;CAClB;AAGD,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAGD,oBAAY,YAAY;IACtB,SAAS,cAAc,CAAE,QAAQ;IACjC,UAAU,eAAe,CAAE,QAAQ;IACnC,SAAS,cAAc,CAAE,QAAQ;IACjC,QAAQ,aAAa;CACtB;AAGD,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAGD,oBAAY,cAAc;IACxB,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE;YACT,EAAE,EAAE,MAAM,CAAC;SACZ,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAGD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,eAAe;IAC9B,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;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IAEtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -1,54 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,8 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=product.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/types/product.ts"],"names":[],"mappings":""}
@@ -1,135 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=user.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,27 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,8 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,15 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,23 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,81 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduler.util.js","sourceRoot":"","sources":["../../src/utils/scheduler.util.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,72 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,98 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/utils/tasks/scheduler.ts"],"names":[],"mappings":"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"}