@edgenets/utils 0.3.11 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -104
- package/dist/constants/env.d.ts +3 -0
- package/dist/constants/env.d.ts.map +1 -0
- package/dist/constants/env.js +2 -0
- package/dist/constants/env.js.map +1 -0
- package/dist/constants/index.d.ts +2 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +2 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/date/diff.d.ts +2 -0
- package/dist/date/diff.d.ts.map +1 -0
- package/dist/date/diff.js +4 -0
- package/dist/date/diff.js.map +1 -0
- package/dist/date/format.d.ts +2 -0
- package/dist/date/format.d.ts.map +1 -0
- package/dist/date/format.js +12 -0
- package/dist/date/format.js.map +1 -0
- package/dist/date/index.d.ts +3 -0
- package/dist/date/index.d.ts.map +1 -0
- package/dist/date/index.js +3 -0
- package/dist/date/index.js.map +1 -0
- package/dist/env/index.d.ts +2 -0
- package/dist/env/index.d.ts.map +1 -0
- package/dist/env/index.js +8 -0
- package/dist/env/index.js.map +1 -0
- package/dist/errors/app-error.d.ts +12 -0
- package/dist/errors/app-error.d.ts.map +1 -0
- package/dist/errors/app-error.js +19 -0
- package/dist/errors/app-error.js.map +1 -0
- package/dist/errors/{code.d.ts → codes.d.ts} +1 -1
- package/dist/errors/codes.d.ts.map +1 -0
- package/dist/errors/{code.js → codes.js} +1 -1
- package/dist/errors/codes.js.map +1 -0
- package/dist/errors/index.d.ts +3 -13
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +3 -80
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/messages.d.ts +3 -0
- package/dist/errors/messages.d.ts.map +1 -0
- package/dist/errors/messages.js +21 -0
- package/dist/errors/messages.js.map +1 -0
- package/dist/id/index.d.ts +2 -0
- package/dist/id/index.d.ts.map +1 -0
- package/dist/id/index.js +2 -0
- package/dist/id/index.js.map +1 -0
- package/dist/{utils/nanoid.util.d.ts → id/nano-id.util.d.ts} +2 -2
- package/dist/id/nano-id.util.d.ts.map +1 -0
- package/dist/id/nano-id.util.js +34 -0
- package/dist/id/nano-id.util.js.map +1 -0
- package/dist/index.d.ts +7 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -12
- package/dist/index.js.map +1 -1
- package/dist/logger/console-logger.d.ts +12 -0
- package/dist/logger/console-logger.d.ts.map +1 -0
- package/dist/logger/console-logger.js +40 -0
- package/dist/logger/console-logger.js.map +1 -0
- package/dist/logger/factory.d.ts +5 -0
- package/dist/logger/factory.d.ts.map +1 -0
- package/dist/logger/factory.js +12 -0
- package/dist/logger/factory.js.map +1 -0
- package/dist/logger/index.d.ts +4 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +4 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/{models/logger.d.ts → logger/types.d.ts} +2 -1
- package/dist/logger/types.d.ts.map +1 -0
- package/dist/logger/types.js +2 -0
- package/dist/logger/types.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/validation/index.d.ts +11 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +2 -0
- package/dist/validation/index.js.map +1 -0
- package/package.json +23 -5
- package/dist/config/product.config.d.ts +0 -7
- package/dist/config/product.config.d.ts.map +0 -1
- package/dist/config/product.config.js +0 -65
- package/dist/config/product.config.js.map +0 -1
- package/dist/errors/code.d.ts.map +0 -1
- package/dist/errors/code.js.map +0 -1
- package/dist/logger/default.d.ts +0 -13
- package/dist/logger/default.d.ts.map +0 -1
- package/dist/logger/default.js +0 -24
- package/dist/logger/default.js.map +0 -1
- package/dist/models/broadcast.d.ts +0 -28
- package/dist/models/broadcast.d.ts.map +0 -1
- package/dist/models/broadcast.js +0 -9
- package/dist/models/broadcast.js.map +0 -1
- package/dist/models/logger.d.ts.map +0 -1
- package/dist/models/logger.js +0 -2
- package/dist/models/logger.js.map +0 -1
- package/dist/models/order.d.ts +0 -113
- package/dist/models/order.d.ts.map +0 -1
- package/dist/models/order.js +0 -45
- package/dist/models/order.js.map +0 -1
- package/dist/models/point.d.ts +0 -21
- package/dist/models/point.d.ts.map +0 -1
- package/dist/models/point.js +0 -2
- package/dist/models/point.js.map +0 -1
- package/dist/models/product.d.ts +0 -8
- package/dist/models/product.d.ts.map +0 -1
- package/dist/models/product.js +0 -2
- package/dist/models/product.js.map +0 -1
- package/dist/models/transaction.d.ts +0 -27
- package/dist/models/transaction.d.ts.map +0 -1
- package/dist/models/transaction.js +0 -13
- package/dist/models/transaction.js.map +0 -1
- package/dist/models/user.d.ts +0 -96
- package/dist/models/user.d.ts.map +0 -1
- package/dist/models/user.js +0 -2
- package/dist/models/user.js.map +0 -1
- package/dist/queue/index.d.ts +0 -2
- package/dist/queue/index.d.ts.map +0 -1
- package/dist/queue/index.js +0 -12
- package/dist/queue/index.js.map +0 -1
- package/dist/queue/queue.d.ts +0 -25
- package/dist/queue/queue.d.ts.map +0 -1
- package/dist/queue/queue.js +0 -64
- package/dist/queue/queue.js.map +0 -1
- package/dist/utils/nanoid.util.d.ts.map +0 -1
- package/dist/utils/nanoid.util.js +0 -36
- package/dist/utils/nanoid.util.js.map +0 -1
- package/dist/utils/signature.util.d.ts +0 -12
- package/dist/utils/signature.util.d.ts.map +0 -1
- package/dist/utils/signature.util.js +0 -51
- package/dist/utils/signature.util.js.map +0 -1
- package/dist/utils/statemachine.util.d.ts +0 -7
- package/dist/utils/statemachine.util.d.ts.map +0 -1
- package/dist/utils/statemachine.util.js +0 -21
- package/dist/utils/statemachine.util.js.map +0 -1
- package/dist/utils/string.util.d.ts +0 -6
- package/dist/utils/string.util.d.ts.map +0 -1
- package/dist/utils/string.util.js +0 -13
- package/dist/utils/string.util.js.map +0 -1
package/dist/models/point.d.ts
DELETED
@@ -1,21 +0,0 @@
|
|
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
|
@@ -1 +0,0 @@
|
|
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"}
|
package/dist/models/point.js
DELETED
package/dist/models/point.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"point.js","sourceRoot":"","sources":["../../src/models/point.ts"],"names":[],"mappings":""}
|
package/dist/models/product.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/models/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"}
|
package/dist/models/product.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/models/product.ts"],"names":[],"mappings":""}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
export interface Transaction {
|
2
|
-
id: string;
|
3
|
-
amount: string;
|
4
|
-
currency: string;
|
5
|
-
from: string;
|
6
|
-
to: string;
|
7
|
-
memo: string;
|
8
|
-
type: TransactionType;
|
9
|
-
status: TransactionStatus;
|
10
|
-
hash?: string;
|
11
|
-
userId?: string;
|
12
|
-
orderId?: string;
|
13
|
-
createdAt: Date;
|
14
|
-
updatedAt?: Date;
|
15
|
-
confirmedAt?: Date;
|
16
|
-
}
|
17
|
-
export declare enum TransactionType {
|
18
|
-
DEPOSIT = "deposit",
|
19
|
-
WITHDRAWAL = "withdrawal"
|
20
|
-
}
|
21
|
-
export declare enum TransactionStatus {
|
22
|
-
PENDING = "pending",
|
23
|
-
Confirmed = "confirmed",
|
24
|
-
Completed = "completed",
|
25
|
-
FAILED = "failed"
|
26
|
-
}
|
27
|
-
//# sourceMappingURL=transaction.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/models/transaction.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,oBAAY,eAAe;IACzB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
export var TransactionType;
|
2
|
-
(function (TransactionType) {
|
3
|
-
TransactionType["DEPOSIT"] = "deposit";
|
4
|
-
TransactionType["WITHDRAWAL"] = "withdrawal";
|
5
|
-
})(TransactionType || (TransactionType = {}));
|
6
|
-
export var TransactionStatus;
|
7
|
-
(function (TransactionStatus) {
|
8
|
-
TransactionStatus["PENDING"] = "pending";
|
9
|
-
TransactionStatus["Confirmed"] = "confirmed";
|
10
|
-
TransactionStatus["Completed"] = "completed";
|
11
|
-
TransactionStatus["FAILED"] = "failed";
|
12
|
-
})(TransactionStatus || (TransactionStatus = {}));
|
13
|
-
//# sourceMappingURL=transaction.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/models/transaction.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,4CAAyB,CAAA;AAC3B,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,4CAAuB,CAAA;IACvB,sCAAiB,CAAA;AACnB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B"}
|
package/dist/models/user.d.ts
DELETED
@@ -1,96 +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 interface GameEntry {
|
7
|
-
gameId: string;
|
8
|
-
name?: string;
|
9
|
-
enteredAt: number;
|
10
|
-
metadata?: Record<string, unknown>;
|
11
|
-
}
|
12
|
-
export interface Inviter {
|
13
|
-
type: InviterType;
|
14
|
-
id: string;
|
15
|
-
name?: string;
|
16
|
-
metadata?: Record<string, unknown>;
|
17
|
-
}
|
18
|
-
export interface UserAddress {
|
19
|
-
addressLine1: string;
|
20
|
-
addressLine2?: string;
|
21
|
-
city: string;
|
22
|
-
state?: string;
|
23
|
-
postalCode: string;
|
24
|
-
country: string;
|
25
|
-
}
|
26
|
-
export interface Wallet {
|
27
|
-
type: WalletType;
|
28
|
-
address: string;
|
29
|
-
metadata?: Record<string, unknown>;
|
30
|
-
}
|
31
|
-
export interface Badge {
|
32
|
-
id: string;
|
33
|
-
name: string;
|
34
|
-
type: BadgeType;
|
35
|
-
awardedAt: number;
|
36
|
-
level?: number;
|
37
|
-
metadata?: Record<string, unknown>;
|
38
|
-
}
|
39
|
-
export interface User {
|
40
|
-
id: string;
|
41
|
-
name: string;
|
42
|
-
email: string;
|
43
|
-
phone?: string;
|
44
|
-
avatarUrl?: string;
|
45
|
-
displayName?: string;
|
46
|
-
emailVerified?: boolean;
|
47
|
-
role: UserRole;
|
48
|
-
status: UserStatus;
|
49
|
-
points?: number;
|
50
|
-
rankLevel?: string;
|
51
|
-
rankPosition?: number;
|
52
|
-
badges?: Badge[];
|
53
|
-
inviter?: Inviter;
|
54
|
-
inviteCode?: string;
|
55
|
-
inviteCount?: number;
|
56
|
-
addresses?: UserAddress[];
|
57
|
-
wallets?: Wallet[];
|
58
|
-
isVip?: boolean;
|
59
|
-
metadata?: Record<string, unknown>;
|
60
|
-
preferences?: Record<string, unknown>;
|
61
|
-
gamesPlayed?: GameEntry[];
|
62
|
-
createdAt?: number;
|
63
|
-
updatedAt?: number;
|
64
|
-
lastLoginAt?: number;
|
65
|
-
}
|
66
|
-
export interface TelegramUser {
|
67
|
-
id: number;
|
68
|
-
username?: string;
|
69
|
-
firstName: string;
|
70
|
-
lastName?: string;
|
71
|
-
photoUrl?: string;
|
72
|
-
languageCode?: string;
|
73
|
-
isBot?: boolean;
|
74
|
-
isPremium?: boolean;
|
75
|
-
addedToAttachmentMenu?: boolean;
|
76
|
-
allowsWriteToPm?: boolean;
|
77
|
-
}
|
78
|
-
export interface AuthUser {
|
79
|
-
id: string;
|
80
|
-
name: string;
|
81
|
-
email: string;
|
82
|
-
displayName: string;
|
83
|
-
role: string;
|
84
|
-
status: string;
|
85
|
-
emailVerified: boolean;
|
86
|
-
metadata: {
|
87
|
-
telegram?: Record<string, unknown>;
|
88
|
-
firebase?: Record<string, unknown>;
|
89
|
-
iss: string;
|
90
|
-
aud: string;
|
91
|
-
sub: string;
|
92
|
-
iat: number;
|
93
|
-
exp: number;
|
94
|
-
};
|
95
|
-
}
|
96
|
-
//# sourceMappingURL=user.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":"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"}
|
package/dist/models/user.js
DELETED
package/dist/models/user.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":""}
|
package/dist/queue/index.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":""}
|
package/dist/queue/index.js
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
import { queue } from "./queue.js";
|
2
|
-
for (let i = 0; i < 10000; i++) {
|
3
|
-
const waitTime = Math.floor(Math.random() * 5000 + 3000);
|
4
|
-
queue.addTask(async () => {
|
5
|
-
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
6
|
-
});
|
7
|
-
}
|
8
|
-
setInterval(() => {
|
9
|
-
const status = queue.getStatus();
|
10
|
-
console.log(`[Queue][Length: ${status.queueLength}][Active: ${status.activeTasks}][Completed: ${status.completedTasksSinceLastOutput}][Total completed: ${status.totalCompletedTasks}][Execution: ${status.totalExecutionTime.toFixed(2)} seconds]`);
|
11
|
-
}, 1000);
|
12
|
-
//# sourceMappingURL=index.js.map
|
package/dist/queue/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACzD,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEhE,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,WAAW,CAAC,GAAG,EAAE;IACf,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,CACT,mBAAmB,MAAM,CAAC,WAAW,aAAa,MAAM,CAAC,WAAW,gBAAgB,MAAM,CAAC,6BAA6B,sBAAsB,MAAM,CAAC,mBAAmB,gBAAgB,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CACxO,CAAC;AACJ,CAAC,EAAE,IAAI,CAAC,CAAC"}
|
package/dist/queue/queue.d.ts
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
export declare class Queue {
|
2
|
-
private isProcessing;
|
3
|
-
private activeTasks;
|
4
|
-
private readonly maxConcurrent;
|
5
|
-
private readonly requestRate;
|
6
|
-
private readonly tasks;
|
7
|
-
private statusInterval;
|
8
|
-
private completedTasksSinceLastOutput;
|
9
|
-
private totalCompletedTasks;
|
10
|
-
private startTime;
|
11
|
-
constructor(maxConcurrent?: number, requestRate?: number);
|
12
|
-
addTask(task: () => Promise<void>): void;
|
13
|
-
startProcessing(): Promise<void>;
|
14
|
-
private startStatusInterval;
|
15
|
-
private stopStatusInterval;
|
16
|
-
getStatus(): {
|
17
|
-
queueLength: number;
|
18
|
-
activeTasks: number;
|
19
|
-
completedTasksSinceLastOutput: number;
|
20
|
-
totalCompletedTasks: number;
|
21
|
-
totalExecutionTime: number;
|
22
|
-
};
|
23
|
-
}
|
24
|
-
export declare const queue: Queue;
|
25
|
-
//# sourceMappingURL=queue.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/queue/queue.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;IAChB,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,6BAA6B,CAAa;IAClD,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,SAAS,CAAa;gBAElB,aAAa,GAAE,MAAa,EAAE,WAAW,GAAE,MAAW;IAK3D,OAAO,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAOlC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B7C,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,kBAAkB;IAOnB,SAAS,IAAI;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,6BAA6B,EAAE,MAAM,CAAC;QACtC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;KAC5B;CAWF;AAGD,eAAO,MAAM,KAAK,OAAqB,CAAC"}
|
package/dist/queue/queue.js
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
export class Queue {
|
2
|
-
isProcessing = false;
|
3
|
-
activeTasks = 0;
|
4
|
-
maxConcurrent;
|
5
|
-
requestRate;
|
6
|
-
tasks = [];
|
7
|
-
statusInterval = null;
|
8
|
-
completedTasksSinceLastOutput = 0;
|
9
|
-
totalCompletedTasks = 0;
|
10
|
-
startTime = 0;
|
11
|
-
constructor(maxConcurrent = 1000, requestRate = 30) {
|
12
|
-
this.maxConcurrent = maxConcurrent;
|
13
|
-
this.requestRate = requestRate;
|
14
|
-
}
|
15
|
-
addTask(task) {
|
16
|
-
this.tasks.push(task);
|
17
|
-
if (!this.isProcessing) {
|
18
|
-
this.startProcessing();
|
19
|
-
}
|
20
|
-
}
|
21
|
-
async startProcessing() {
|
22
|
-
this.isProcessing = true;
|
23
|
-
this.startTime = Date.now();
|
24
|
-
this.startStatusInterval();
|
25
|
-
while (this.tasks.length > 0 || this.activeTasks > 0) {
|
26
|
-
const tasksToStart = Math.min(this.requestRate, this.tasks.length, this.maxConcurrent - this.activeTasks);
|
27
|
-
const tasksBatch = this.tasks.splice(0, tasksToStart);
|
28
|
-
tasksBatch.forEach((task) => {
|
29
|
-
this.activeTasks++;
|
30
|
-
task().finally(() => {
|
31
|
-
this.activeTasks--;
|
32
|
-
this.completedTasksSinceLastOutput++;
|
33
|
-
this.totalCompletedTasks++;
|
34
|
-
});
|
35
|
-
});
|
36
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
37
|
-
}
|
38
|
-
this.stopStatusInterval();
|
39
|
-
this.isProcessing = false;
|
40
|
-
}
|
41
|
-
startStatusInterval() {
|
42
|
-
this.statusInterval = setInterval(() => {
|
43
|
-
}, 1000);
|
44
|
-
}
|
45
|
-
stopStatusInterval() {
|
46
|
-
if (this.statusInterval) {
|
47
|
-
clearInterval(this.statusInterval);
|
48
|
-
this.statusInterval = null;
|
49
|
-
}
|
50
|
-
}
|
51
|
-
getStatus() {
|
52
|
-
const status = {
|
53
|
-
queueLength: this.tasks.length,
|
54
|
-
activeTasks: this.activeTasks,
|
55
|
-
completedTasksSinceLastOutput: this.completedTasksSinceLastOutput,
|
56
|
-
totalCompletedTasks: this.totalCompletedTasks,
|
57
|
-
totalExecutionTime: (Date.now() - this.startTime) / 1000,
|
58
|
-
};
|
59
|
-
this.completedTasksSinceLastOutput = 0;
|
60
|
-
return status;
|
61
|
-
}
|
62
|
-
}
|
63
|
-
export const queue = new Queue(300, 20);
|
64
|
-
//# sourceMappingURL=queue.js.map
|
package/dist/queue/queue.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/queue/queue.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
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,CAAC,MAAM,GAAE,MAAU,GAAG,MAAM;CAsB3D"}
|
@@ -1,36 +0,0 @@
|
|
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 generateNumberId(length = 8) {
|
22
|
-
const now = new Date();
|
23
|
-
const startOfYear2000 = new Date("2025-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(length, "0123456789");
|
29
|
-
let id = `${dayPart}${minutePart}${randomPart}`;
|
30
|
-
while (id.startsWith("0")) {
|
31
|
-
id = id.replace(/^0/, "1");
|
32
|
-
}
|
33
|
-
return Number(id);
|
34
|
-
}
|
35
|
-
}
|
36
|
-
//# sourceMappingURL=nanoid.util.js.map
|
@@ -1 +0,0 @@
|
|
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,CAAC,SAAiB,CAAC;QAC/C,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,MAAM,EAAE,YAAY,CAAC,CAAC;QAE7D,IAAI,EAAE,GAAG,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC;QAEhD,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC"}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
export declare class SignatureUtils {
|
2
|
-
static generateSignature(data: Record<string, unknown>, secretKey: string): string;
|
3
|
-
static validateSignature(data: Record<string, unknown>, receivedSignature: string, secretKey: string): boolean;
|
4
|
-
private static safeCompare;
|
5
|
-
private static sortObjectKeys;
|
6
|
-
static signWithTimestampAndNonce(data: Record<string, unknown>, secretKey: string, timestamp?: number, nonce?: string): {
|
7
|
-
signature: string;
|
8
|
-
timestamp: number;
|
9
|
-
nonce: string;
|
10
|
-
};
|
11
|
-
}
|
12
|
-
//# sourceMappingURL=signature.util.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"signature.util.d.ts","sourceRoot":"","sources":["../../src/utils/signature.util.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;WAEX,iBAAiB,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,MAAM,GAChB,MAAM;WAqBK,iBAAiB,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO;IAMV,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,CAAC,MAAM,CAAC,cAAc;WAmBf,yBAAyB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAmB,EAC9B,KAAK,GAAE,MAAoD,GAC1D;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAK3D"}
|
@@ -1,51 +0,0 @@
|
|
1
|
-
import { createHmac } from "crypto";
|
2
|
-
export class SignatureUtils {
|
3
|
-
static generateSignature(data, secretKey) {
|
4
|
-
const sortedData = Object.keys(data)
|
5
|
-
.sort()
|
6
|
-
.map((key) => {
|
7
|
-
const value = data[key];
|
8
|
-
if (value && typeof value === "object" && !Array.isArray(value)) {
|
9
|
-
const serializedValue = JSON.stringify(this.sortObjectKeys(value));
|
10
|
-
return `${key}=${serializedValue}`;
|
11
|
-
}
|
12
|
-
else {
|
13
|
-
const serializedValue = JSON.stringify(value);
|
14
|
-
return `${key}=${serializedValue}`;
|
15
|
-
}
|
16
|
-
})
|
17
|
-
.join("&");
|
18
|
-
return createHmac("sha256", secretKey).update(sortedData).digest("hex");
|
19
|
-
}
|
20
|
-
static validateSignature(data, receivedSignature, secretKey) {
|
21
|
-
const calculatedSignature = this.generateSignature(data, secretKey);
|
22
|
-
return this.safeCompare(calculatedSignature, receivedSignature);
|
23
|
-
}
|
24
|
-
static safeCompare(a, b) {
|
25
|
-
if (a.length !== b.length)
|
26
|
-
return false;
|
27
|
-
let result = 0;
|
28
|
-
for (let i = 0; i < a.length; i++) {
|
29
|
-
result |= a.charCodeAt(i) ^ b.charCodeAt(i);
|
30
|
-
}
|
31
|
-
return result === 0;
|
32
|
-
}
|
33
|
-
static sortObjectKeys(obj) {
|
34
|
-
return Object.keys(obj)
|
35
|
-
.sort()
|
36
|
-
.reduce((acc, key) => {
|
37
|
-
const value = obj[key];
|
38
|
-
acc[key] =
|
39
|
-
value && typeof value === "object" && !Array.isArray(value)
|
40
|
-
? this.sortObjectKeys(value)
|
41
|
-
: value;
|
42
|
-
return acc;
|
43
|
-
}, {});
|
44
|
-
}
|
45
|
-
static signWithTimestampAndNonce(data, secretKey, timestamp = Date.now(), nonce = Math.random().toString(36).substring(2, 15)) {
|
46
|
-
const extendedData = { ...data, timestamp, nonce };
|
47
|
-
const signature = this.generateSignature(extendedData, secretKey);
|
48
|
-
return { signature, timestamp, nonce };
|
49
|
-
}
|
50
|
-
}
|
51
|
-
//# sourceMappingURL=signature.util.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"signature.util.js","sourceRoot":"","sources":["../../src/utils/signature.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,OAAO,cAAc;IAElB,MAAM,CAAC,iBAAiB,CAC7B,IAA6B,EAC7B,SAAiB;QAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACjC,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CACpC,IAAI,CAAC,cAAc,CAAC,KAAgC,CAAC,CACtD,CAAC;gBACF,OAAO,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC9C,OAAO,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,OAAO,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IAGM,MAAM,CAAC,iBAAiB,CAC7B,IAA6B,EAC7B,iBAAyB,EACzB,SAAiB;QAEjB,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAGO,MAAM,CAAC,WAAW,CAAC,CAAS,EAAE,CAAS;QAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,MAAM,KAAK,CAAC,CAAC;IACtB,CAAC;IAGO,MAAM,CAAC,cAAc,CAC3B,GAA4B;QAE5B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,IAAI,EAAE;aACN,MAAM,CACL,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC;gBACN,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACzD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAgC,CAAC;oBACvD,CAAC,CAAC,KAAK,CAAC;YACZ,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA6B,CAC9B,CAAC;IACN,CAAC;IAGM,MAAM,CAAC,yBAAyB,CACrC,IAA6B,EAC7B,SAAiB,EACjB,YAAoB,IAAI,CAAC,GAAG,EAAE,EAC9B,QAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAE3D,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;CACF"}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
export declare class SimpleStateMachine {
|
2
|
-
private transitions;
|
3
|
-
constructor(transitions: Record<string, string[]>);
|
4
|
-
canTransition(currentStatus: string, targetStatus: string): boolean;
|
5
|
-
}
|
6
|
-
export declare const OrderStateMachine: SimpleStateMachine;
|
7
|
-
//# sourceMappingURL=statemachine.util.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"statemachine.util.d.ts","sourceRoot":"","sources":["../../src/utils/statemachine.util.ts"],"names":[],"mappings":"AAEA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAA2B;gBAElC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAUjD,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;CAIpE;AAWD,eAAO,MAAM,iBAAiB,oBAA2C,CAAC"}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { OrderStatus } from "../models/order.js";
|
2
|
-
export class SimpleStateMachine {
|
3
|
-
transitions;
|
4
|
-
constructor(transitions) {
|
5
|
-
this.transitions = transitions;
|
6
|
-
}
|
7
|
-
canTransition(currentStatus, targetStatus) {
|
8
|
-
const allowedTransitions = this.transitions[currentStatus] || [];
|
9
|
-
return allowedTransitions.includes(targetStatus);
|
10
|
-
}
|
11
|
-
}
|
12
|
-
const orderTransitions = {
|
13
|
-
[OrderStatus.Draft]: [OrderStatus.Pending, OrderStatus.Canceled],
|
14
|
-
[OrderStatus.Pending]: [OrderStatus.Confirmed, OrderStatus.Canceled],
|
15
|
-
[OrderStatus.Confirmed]: [OrderStatus.Completed, OrderStatus.Refunded],
|
16
|
-
[OrderStatus.Completed]: [OrderStatus.Refunded],
|
17
|
-
[OrderStatus.Canceled]: [],
|
18
|
-
[OrderStatus.Refunded]: [],
|
19
|
-
};
|
20
|
-
export const OrderStateMachine = new SimpleStateMachine(orderTransitions);
|
21
|
-
//# sourceMappingURL=statemachine.util.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"statemachine.util.js","sourceRoot":"","sources":["../../src/utils/statemachine.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,kBAAkB;IACrB,WAAW,CAA2B;IAE9C,YAAY,WAAqC;QAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAQD,aAAa,CAAC,aAAqB,EAAE,YAAoB;QACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACjE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,gBAAgB,GAAuC;IAC3D,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC;IAChE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC;IACpE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC;IACtE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC/C,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC1B,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"string.util.d.ts","sourceRoot":"","sources":["../../src/utils/string.util.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IAEtB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKtC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKhC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAI9C"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
export class StringUtils {
|
2
|
-
static capitalize(str) {
|
3
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
4
|
-
}
|
5
|
-
static trim(str) {
|
6
|
-
return str.trim();
|
7
|
-
}
|
8
|
-
static toNumber(value) {
|
9
|
-
const num = Number(value);
|
10
|
-
return isNaN(num) ? null : num;
|
11
|
-
}
|
12
|
-
}
|
13
|
-
//# sourceMappingURL=string.util.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../src/utils/string.util.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAEtB,MAAM,CAAC,UAAU,CAAC,GAAW;QAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAGD,MAAM,CAAC,IAAI,CAAC,GAAW;QACrB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAGD,MAAM,CAAC,QAAQ,CAAC,KAAa;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;CACF"}
|