agenticpool 1.0.18 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -118
- package/bin/agenticpool.js +6 -0
- package/dist/adapters/autogen.d.ts +33 -0
- package/dist/adapters/autogen.d.ts.map +1 -0
- package/dist/adapters/autogen.js +49 -0
- package/dist/adapters/autogen.js.map +1 -0
- package/dist/adapters/crewai.d.ts +30 -0
- package/dist/adapters/crewai.d.ts.map +1 -0
- package/dist/adapters/crewai.js +48 -0
- package/dist/adapters/crewai.js.map +1 -0
- package/dist/adapters/langchain.d.ts +30 -0
- package/dist/adapters/langchain.d.ts.map +1 -0
- package/dist/adapters/langchain.js +53 -0
- package/dist/adapters/langchain.js.map +1 -0
- package/dist/adapters/llamaindex.d.ts +29 -0
- package/dist/adapters/llamaindex.d.ts.map +1 -0
- package/dist/adapters/llamaindex.js +47 -0
- package/dist/adapters/llamaindex.js.map +1 -0
- package/dist/adapters/openai.d.ts +21 -0
- package/dist/adapters/openai.d.ts.map +1 -0
- package/dist/adapters/openai.js +51 -0
- package/dist/adapters/openai.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +187 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +115 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +251 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/balance.d.ts +4 -0
- package/dist/commands/balance.d.ts.map +1 -0
- package/dist/commands/balance.js +34 -0
- package/dist/commands/balance.js.map +1 -0
- package/dist/commands/contract.d.ts +20 -0
- package/dist/commands/contract.d.ts.map +1 -0
- package/dist/commands/contract.js +188 -0
- package/dist/commands/contract.js.map +1 -0
- package/dist/commands/favor.d.ts +21 -0
- package/dist/commands/favor.d.ts.map +1 -0
- package/dist/commands/favor.js +144 -0
- package/dist/commands/favor.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +77 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/reputation.d.ts +2 -0
- package/dist/commands/reputation.d.ts.map +1 -0
- package/dist/commands/reputation.js +38 -0
- package/dist/commands/reputation.js.map +1 -0
- package/dist/commands/serve.d.ts +7 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +110 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/services.d.ts +16 -0
- package/dist/commands/services.d.ts.map +1 -0
- package/dist/commands/services.js +93 -0
- package/dist/commands/services.js.map +1 -0
- package/dist/commands/trust.d.ts +2 -0
- package/dist/commands/trust.d.ts.map +1 -0
- package/dist/commands/trust.js +44 -0
- package/dist/commands/trust.js.map +1 -0
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +32 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +72 -0
- package/dist/config.js.map +1 -0
- package/dist/economy/duckies.d.ts +75 -0
- package/dist/economy/duckies.d.ts.map +1 -0
- package/dist/economy/duckies.js +386 -0
- package/dist/economy/duckies.js.map +1 -0
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -29
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +90 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +28 -38
- package/LICENSE +0 -1
- package/dist/api/ApiClient.d.ts +0 -37
- package/dist/api/ApiClient.js +0 -160
- package/dist/api/index.d.ts +0 -1
- package/dist/api/index.js +0 -6
- package/dist/auth/AuthHelper.d.ts +0 -17
- package/dist/auth/AuthHelper.js +0 -197
- package/dist/commands/auth.d.ts +0 -2
- package/dist/commands/auth.js +0 -206
- package/dist/commands/config.d.ts +0 -2
- package/dist/commands/config.js +0 -51
- package/dist/commands/connections.d.ts +0 -2
- package/dist/commands/connections.js +0 -244
- package/dist/commands/contacts.d.ts +0 -2
- package/dist/commands/contacts.js +0 -205
- package/dist/commands/conversations.d.ts +0 -2
- package/dist/commands/conversations.js +0 -251
- package/dist/commands/errors.d.ts +0 -2
- package/dist/commands/errors.js +0 -73
- package/dist/commands/humans.d.ts +0 -2
- package/dist/commands/humans.js +0 -161
- package/dist/commands/identities.d.ts +0 -2
- package/dist/commands/identities.js +0 -141
- package/dist/commands/index.d.ts +0 -11
- package/dist/commands/index.js +0 -26
- package/dist/commands/messages.d.ts +0 -2
- package/dist/commands/messages.js +0 -154
- package/dist/commands/networks.d.ts +0 -2
- package/dist/commands/networks.js +0 -430
- package/dist/commands/profile.d.ts +0 -2
- package/dist/commands/profile.js +0 -225
- package/dist/config/ConfigManager.d.ts +0 -47
- package/dist/config/ConfigManager.js +0 -234
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -7
- package/dist/datamodel/index.d.ts +0 -3
- package/dist/datamodel/index.js +0 -20
- package/dist/datamodel/models/humans.d.ts +0 -81
- package/dist/datamodel/models/humans.js +0 -3
- package/dist/datamodel/models/index.d.ts +0 -110
- package/dist/datamodel/models/index.js +0 -3
- package/dist/datamodel/toon/index.d.ts +0 -5
- package/dist/datamodel/toon/index.js +0 -211
- package/dist/limits/LimitsManager.d.ts +0 -23
- package/dist/limits/LimitsManager.js +0 -99
- package/dist/utils/colors.d.ts +0 -16
- package/dist/utils/colors.js +0 -23
- package/dist/utils/logger.d.ts +0 -11
- package/dist/utils/logger.js +0 -34
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import type { Timestamp } from './index';
|
|
2
|
-
export type ConnectionStatus = 'proposed' | 'agent_accepted' | 'human_pending' | 'connected' | 'rejected' | 'revoked';
|
|
3
|
-
export interface HumanProfile {
|
|
4
|
-
uid?: string;
|
|
5
|
-
displayName: string;
|
|
6
|
-
phone: string;
|
|
7
|
-
email: string;
|
|
8
|
-
telegram: string;
|
|
9
|
-
photoUrl: string;
|
|
10
|
-
notes: string;
|
|
11
|
-
createdAt?: Timestamp;
|
|
12
|
-
updatedAt?: Timestamp;
|
|
13
|
-
}
|
|
14
|
-
export interface NetworkIdentity {
|
|
15
|
-
id?: string;
|
|
16
|
-
humanUid: string;
|
|
17
|
-
networkId: string;
|
|
18
|
-
publicToken: string;
|
|
19
|
-
agentDescription: string;
|
|
20
|
-
addedAt?: Timestamp;
|
|
21
|
-
}
|
|
22
|
-
export interface ConnectionProposal {
|
|
23
|
-
id?: string;
|
|
24
|
-
fromHumanUid: string;
|
|
25
|
-
toHumanUid: string;
|
|
26
|
-
fromAgentToken: string;
|
|
27
|
-
toAgentToken: string;
|
|
28
|
-
networkId: string;
|
|
29
|
-
fromExplanation: string;
|
|
30
|
-
toExplanation: string;
|
|
31
|
-
status: ConnectionStatus;
|
|
32
|
-
proposedAt?: Timestamp;
|
|
33
|
-
agentAcceptedAt?: Timestamp;
|
|
34
|
-
humanAcceptedAt?: Timestamp;
|
|
35
|
-
revokedAt?: Timestamp;
|
|
36
|
-
revokedBy?: string;
|
|
37
|
-
}
|
|
38
|
-
export interface Contact {
|
|
39
|
-
id?: string;
|
|
40
|
-
ownerUid: string;
|
|
41
|
-
contactUid: string;
|
|
42
|
-
contactDisplayName: string;
|
|
43
|
-
contactPhone: string;
|
|
44
|
-
contactEmail: string;
|
|
45
|
-
contactTelegram: string;
|
|
46
|
-
contactPhotoUrl: string;
|
|
47
|
-
notes: string;
|
|
48
|
-
linkedIdentities: ContactIdentity[];
|
|
49
|
-
connectionId: string;
|
|
50
|
-
status: 'active' | 'blocked';
|
|
51
|
-
createdAt?: Timestamp;
|
|
52
|
-
updatedAt?: Timestamp;
|
|
53
|
-
}
|
|
54
|
-
export interface ContactIdentity {
|
|
55
|
-
networkId: string;
|
|
56
|
-
publicToken: string;
|
|
57
|
-
agentDescription: string;
|
|
58
|
-
}
|
|
59
|
-
export interface HumanAuthCredentials {
|
|
60
|
-
humanUid: string;
|
|
61
|
-
email: string;
|
|
62
|
-
jwt?: string;
|
|
63
|
-
expiresAt?: number;
|
|
64
|
-
}
|
|
65
|
-
export interface ConnectionProposalInput {
|
|
66
|
-
toAgentToken: string;
|
|
67
|
-
networkId: string;
|
|
68
|
-
fromExplanation: string;
|
|
69
|
-
}
|
|
70
|
-
export interface ConnectionAcceptInput {
|
|
71
|
-
toExplanation: string;
|
|
72
|
-
}
|
|
73
|
-
export interface IdentityRegisterInput {
|
|
74
|
-
networkId: string;
|
|
75
|
-
publicToken: string;
|
|
76
|
-
agentDescription: string;
|
|
77
|
-
}
|
|
78
|
-
export interface ContactUpdateInput {
|
|
79
|
-
notes?: string;
|
|
80
|
-
linkIdentity?: ContactIdentity;
|
|
81
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFtb2RlbC9tb2RlbHMvaHVtYW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRpbWVzdGFtcCB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgdHlwZSBDb25uZWN0aW9uU3RhdHVzID1cbiAgfCAncHJvcG9zZWQnXG4gIHwgJ2FnZW50X2FjY2VwdGVkJ1xuICB8ICdodW1hbl9wZW5kaW5nJ1xuICB8ICdjb25uZWN0ZWQnXG4gIHwgJ3JlamVjdGVkJ1xuICB8ICdyZXZva2VkJztcblxuZXhwb3J0IGludGVyZmFjZSBIdW1hblByb2ZpbGUge1xuICB1aWQ/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHRlbGVncmFtOiBzdHJpbmc7XG4gIHBob3RvVXJsOiBzdHJpbmc7XG4gIG5vdGVzOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdD86IFRpbWVzdGFtcDtcbiAgdXBkYXRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJZGVudGl0eSB7XG4gIGlkPzogc3RyaW5nO1xuICBodW1hblVpZDogc3RyaW5nO1xuICBuZXR3b3JrSWQ6IHN0cmluZztcbiAgcHVibGljVG9rZW46IHN0cmluZztcbiAgYWdlbnREZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhZGRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25Qcm9wb3NhbCB7XG4gIGlkPzogc3RyaW5nO1xuICBmcm9tSHVtYW5VaWQ6IHN0cmluZztcbiAgdG9IdW1hblVpZDogc3RyaW5nO1xuICBmcm9tQWdlbnRUb2tlbjogc3RyaW5nO1xuICB0b0FnZW50VG9rZW46IHN0cmluZztcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIGZyb21FeHBsYW5hdGlvbjogc3RyaW5nO1xuICB0b0V4cGxhbmF0aW9uOiBzdHJpbmc7XG4gIHN0YXR1czogQ29ubmVjdGlvblN0YXR1cztcbiAgcHJvcG9zZWRBdD86IFRpbWVzdGFtcDtcbiAgYWdlbnRBY2NlcHRlZEF0PzogVGltZXN0YW1wO1xuICBodW1hbkFjY2VwdGVkQXQ/OiBUaW1lc3RhbXA7XG4gIHJldm9rZWRBdD86IFRpbWVzdGFtcDtcbiAgcmV2b2tlZEJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3Qge1xuICBpZD86IHN0cmluZztcbiAgb3duZXJVaWQ6IHN0cmluZztcbiAgY29udGFjdFVpZDogc3RyaW5nO1xuICBjb250YWN0RGlzcGxheU5hbWU6IHN0cmluZztcbiAgY29udGFjdFBob25lOiBzdHJpbmc7XG4gIGNvbnRhY3RFbWFpbDogc3RyaW5nO1xuICBjb250YWN0VGVsZWdyYW06IHN0cmluZztcbiAgY29udGFjdFBob3RvVXJsOiBzdHJpbmc7XG4gIG5vdGVzOiBzdHJpbmc7XG4gIGxpbmtlZElkZW50aXRpZXM6IENvbnRhY3RJZGVudGl0eVtdO1xuICBjb25uZWN0aW9uSWQ6IHN0cmluZztcbiAgc3RhdHVzOiAnYWN0aXZlJyB8ICdibG9ja2VkJztcbiAgY3JlYXRlZEF0PzogVGltZXN0YW1wO1xuICB1cGRhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdElkZW50aXR5IHtcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIGFnZW50RGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdW1hbkF1dGhDcmVkZW50aWFscyB7XG4gIGh1bWFuVWlkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGp3dD86IHN0cmluZztcbiAgZXhwaXJlc0F0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25Qcm9wb3NhbElucHV0IHtcbiAgdG9BZ2VudFRva2VuOiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBmcm9tRXhwbGFuYXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uQWNjZXB0SW5wdXQge1xuICB0b0V4cGxhbmF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlSZWdpc3RlcklucHV0IHtcbiAgbmV0d29ya0lkOiBzdHJpbmc7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIGFnZW50RGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0VXBkYXRlSW5wdXQge1xuICBub3Rlcz86IHN0cmluZztcbiAgbGlua0lkZW50aXR5PzogQ29udGFjdElkZW50aXR5O1xufVxuIl19
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
export type NetworkStatus = 'live' | 'testing';
|
|
2
|
-
export type MemberRole = 'member' | 'admin';
|
|
3
|
-
export type ConversationType = 'topic' | 'direct' | 'group';
|
|
4
|
-
export type InvitationStatus = 'pending' | 'accepted' | 'rejected';
|
|
5
|
-
export interface FirestoreTimestamp {
|
|
6
|
-
_seconds: number;
|
|
7
|
-
_nanoseconds: number;
|
|
8
|
-
toDate(): Date;
|
|
9
|
-
}
|
|
10
|
-
export type Timestamp = Date | FirestoreTimestamp;
|
|
11
|
-
export interface Network {
|
|
12
|
-
id?: string;
|
|
13
|
-
name: string;
|
|
14
|
-
description: string;
|
|
15
|
-
longDescription: string;
|
|
16
|
-
logoUrl: string;
|
|
17
|
-
status: NetworkStatus;
|
|
18
|
-
isPublic: boolean;
|
|
19
|
-
users: number;
|
|
20
|
-
createdBy: string;
|
|
21
|
-
createdAt?: Timestamp;
|
|
22
|
-
}
|
|
23
|
-
export interface Member {
|
|
24
|
-
id?: string;
|
|
25
|
-
networkId: string;
|
|
26
|
-
publicToken: string;
|
|
27
|
-
privateKeyHash: string;
|
|
28
|
-
shortDescription: string;
|
|
29
|
-
longDescription: string;
|
|
30
|
-
joinedAt?: Timestamp;
|
|
31
|
-
lastAccessReason?: string;
|
|
32
|
-
role: MemberRole;
|
|
33
|
-
}
|
|
34
|
-
export interface Invitation {
|
|
35
|
-
id?: string;
|
|
36
|
-
networkId: string;
|
|
37
|
-
fromUserId: string;
|
|
38
|
-
toPublicToken?: string;
|
|
39
|
-
status: InvitationStatus;
|
|
40
|
-
createdAt?: Timestamp;
|
|
41
|
-
}
|
|
42
|
-
export interface ProfileQuestion {
|
|
43
|
-
id?: string;
|
|
44
|
-
networkId: string;
|
|
45
|
-
question: string;
|
|
46
|
-
order: number;
|
|
47
|
-
required: boolean;
|
|
48
|
-
}
|
|
49
|
-
export interface Conversation {
|
|
50
|
-
id?: string;
|
|
51
|
-
networkId: string;
|
|
52
|
-
title: string;
|
|
53
|
-
type: ConversationType;
|
|
54
|
-
maxMembers: number;
|
|
55
|
-
createdBy: string;
|
|
56
|
-
createdAt?: Timestamp;
|
|
57
|
-
}
|
|
58
|
-
export interface Participant {
|
|
59
|
-
id?: string;
|
|
60
|
-
conversationId: string;
|
|
61
|
-
userId: string;
|
|
62
|
-
joinedAt?: Timestamp;
|
|
63
|
-
}
|
|
64
|
-
export interface Message {
|
|
65
|
-
id?: string;
|
|
66
|
-
conversationId: string;
|
|
67
|
-
senderId: string;
|
|
68
|
-
receiverId: string | null;
|
|
69
|
-
content: string;
|
|
70
|
-
replyTo?: string;
|
|
71
|
-
createdAt?: Timestamp;
|
|
72
|
-
}
|
|
73
|
-
export interface NetworkShort {
|
|
74
|
-
id: string;
|
|
75
|
-
name: string;
|
|
76
|
-
description: string;
|
|
77
|
-
logoUrl: string;
|
|
78
|
-
status: NetworkStatus;
|
|
79
|
-
users: number;
|
|
80
|
-
}
|
|
81
|
-
export interface MemberShort {
|
|
82
|
-
publicToken: string;
|
|
83
|
-
shortDescription: string;
|
|
84
|
-
role: MemberRole;
|
|
85
|
-
}
|
|
86
|
-
export interface ConversationShort {
|
|
87
|
-
id: string;
|
|
88
|
-
title: string;
|
|
89
|
-
type: ConversationType;
|
|
90
|
-
maxMembers: number;
|
|
91
|
-
}
|
|
92
|
-
export interface AuthCredentials {
|
|
93
|
-
publicToken: string;
|
|
94
|
-
privateKey: string;
|
|
95
|
-
}
|
|
96
|
-
export interface AuthTokens {
|
|
97
|
-
jwt: string;
|
|
98
|
-
expiresAt: number;
|
|
99
|
-
publicToken: string;
|
|
100
|
-
}
|
|
101
|
-
export interface ApiError {
|
|
102
|
-
code: string;
|
|
103
|
-
message: string;
|
|
104
|
-
details?: Record<string, unknown>;
|
|
105
|
-
}
|
|
106
|
-
export interface ApiResponse<T> {
|
|
107
|
-
success: boolean;
|
|
108
|
-
data?: T;
|
|
109
|
-
error?: ApiError;
|
|
110
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTmV0d29ya1N0YXR1cyA9ICdsaXZlJyB8ICd0ZXN0aW5nJztcbmV4cG9ydCB0eXBlIE1lbWJlclJvbGUgPSAnbWVtYmVyJyB8ICdhZG1pbic7XG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25UeXBlID0gJ3RvcGljJyB8ICdkaXJlY3QnIHwgJ2dyb3VwJztcbmV4cG9ydCB0eXBlIEludml0YXRpb25TdGF0dXMgPSAncGVuZGluZycgfCAnYWNjZXB0ZWQnIHwgJ3JlamVjdGVkJztcblxuZXhwb3J0IGludGVyZmFjZSBGaXJlc3RvcmVUaW1lc3RhbXAge1xuICBfc2Vjb25kczogbnVtYmVyO1xuICBfbmFub3NlY29uZHM6IG51bWJlcjtcbiAgdG9EYXRlKCk6IERhdGU7XG59XG5cbmV4cG9ydCB0eXBlIFRpbWVzdGFtcCA9IERhdGUgfCBGaXJlc3RvcmVUaW1lc3RhbXA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29yayB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxvbmdEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBsb2dvVXJsOiBzdHJpbmc7XG4gIHN0YXR1czogTmV0d29ya1N0YXR1cztcbiAgaXNQdWJsaWM6IGJvb2xlYW47XG4gIHVzZXJzOiBudW1iZXI7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBwdWJsaWNUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlS2V5SGFzaDogc3RyaW5nO1xuICBzaG9ydERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxvbmdEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBqb2luZWRBdD86IFRpbWVzdGFtcDtcbiAgbGFzdEFjY2Vzc1JlYXNvbj86IHN0cmluZztcbiAgcm9sZTogTWVtYmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZpdGF0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICBmcm9tVXNlcklkOiBzdHJpbmc7XG4gIHRvUHVibGljVG9rZW4/OiBzdHJpbmc7XG4gIHN0YXR1czogSW52aXRhdGlvblN0YXR1cztcbiAgY3JlYXRlZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVRdWVzdGlvbiB7XG4gIGlkPzogc3RyaW5nO1xuICBuZXR3b3JrSWQ6IHN0cmluZztcbiAgcXVlc3Rpb246IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5ldHdvcmtJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlOiBDb252ZXJzYXRpb25UeXBlO1xuICBtYXhNZW1iZXJzOiBudW1iZXI7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGljaXBhbnQge1xuICBpZD86IHN0cmluZztcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGpvaW5lZEF0PzogVGltZXN0YW1wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICBpZD86IHN0cmluZztcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbiAgc2VuZGVySWQ6IHN0cmluZztcbiAgcmVjZWl2ZXJJZDogc3RyaW5nIHwgbnVsbDtcbiAgY29udGVudDogc3RyaW5nO1xuICByZXBseVRvPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBUaW1lc3RhbXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1Nob3J0IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBsb2dvVXJsOiBzdHJpbmc7XG4gIHN0YXR1czogTmV0d29ya1N0YXR1cztcbiAgdXNlcnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZW1iZXJTaG9ydCB7XG4gIHB1YmxpY1Rva2VuOiBzdHJpbmc7XG4gIHNob3J0RGVzY3JpcHRpb246IHN0cmluZztcbiAgcm9sZTogTWVtYmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25TaG9ydCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHR5cGU6IENvbnZlcnNhdGlvblR5cGU7XG4gIG1heE1lbWJlcnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoQ3JlZGVudGlhbHMge1xuICBwdWJsaWNUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFRva2VucyB7XG4gIGp3dDogc3RyaW5nO1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgcHVibGljVG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlFcnJvciB7XG4gIGNvZGU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpUmVzcG9uc2U8VD4ge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBkYXRhPzogVDtcbiAgZXJyb3I/OiBBcGlFcnJvcjtcbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function encode(data: unknown): string;
|
|
2
|
-
export declare function decode<T = unknown>(str: string): T;
|
|
3
|
-
export declare function isToonFormat(content: string): boolean;
|
|
4
|
-
export declare function safeEncode(data: unknown): string | null;
|
|
5
|
-
export declare function safeDecode<T = unknown>(str: string): T | null;
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.encode = encode;
|
|
4
|
-
exports.decode = decode;
|
|
5
|
-
exports.isToonFormat = isToonFormat;
|
|
6
|
-
exports.safeEncode = safeEncode;
|
|
7
|
-
exports.safeDecode = safeDecode;
|
|
8
|
-
function encode(data) {
|
|
9
|
-
if (data === null || data === undefined)
|
|
10
|
-
return "null";
|
|
11
|
-
if (typeof data === "boolean")
|
|
12
|
-
return data ? "true" : "false";
|
|
13
|
-
if (typeof data === "number")
|
|
14
|
-
return String(data);
|
|
15
|
-
if (typeof data === "string") {
|
|
16
|
-
if (/^[a-zA-Z0-9_-]+$/.test(data) && data.length < 500)
|
|
17
|
-
return data;
|
|
18
|
-
return `"${data}"`;
|
|
19
|
-
}
|
|
20
|
-
if (Array.isArray(data)) {
|
|
21
|
-
if (data.length === 0)
|
|
22
|
-
return "[]";
|
|
23
|
-
const firstItem = data[0];
|
|
24
|
-
if (typeof firstItem === "object" && firstItem !== null && !Array.isArray(firstItem)) {
|
|
25
|
-
const keys = Object.keys(firstItem);
|
|
26
|
-
const header = `[${data.length}]{${keys.join(",")}}:`;
|
|
27
|
-
const lines = data.map((item) => {
|
|
28
|
-
const values = keys.map((key) => encode(item[key]));
|
|
29
|
-
return values.join(",");
|
|
30
|
-
});
|
|
31
|
-
return header + "\n" + lines.map((line) => ` ${line}`).join("\n");
|
|
32
|
-
}
|
|
33
|
-
return `[${data.length}]:` + data.map((item) => encode(item)).join(",");
|
|
34
|
-
}
|
|
35
|
-
if (typeof data === "object") {
|
|
36
|
-
const obj = data;
|
|
37
|
-
const keys = Object.keys(obj).filter(k => obj[k] !== undefined);
|
|
38
|
-
if (keys.length === 0)
|
|
39
|
-
return "{}";
|
|
40
|
-
const lines = keys.map((key) => {
|
|
41
|
-
const val = encode(obj[key]);
|
|
42
|
-
if (val.includes("\n"))
|
|
43
|
-
return `${key}:\n${val.split("\n").map(l => ` ${l}`).join("\n")}`;
|
|
44
|
-
return `${key}:${val}`;
|
|
45
|
-
});
|
|
46
|
-
return lines.join("\n");
|
|
47
|
-
}
|
|
48
|
-
return String(data);
|
|
49
|
-
}
|
|
50
|
-
function decode(str) {
|
|
51
|
-
if (!str)
|
|
52
|
-
return null;
|
|
53
|
-
const trimmed = str.trim();
|
|
54
|
-
if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
|
|
55
|
-
try {
|
|
56
|
-
return JSON.parse(trimmed);
|
|
57
|
-
}
|
|
58
|
-
catch (e) { }
|
|
59
|
-
}
|
|
60
|
-
const lines = str.split("\n");
|
|
61
|
-
const result = {};
|
|
62
|
-
let hasKeyValues = false;
|
|
63
|
-
for (let i = 0; i < lines.length; i++) {
|
|
64
|
-
const line = lines[i];
|
|
65
|
-
if (!line.trim())
|
|
66
|
-
continue;
|
|
67
|
-
const colonIndex = line.indexOf(":");
|
|
68
|
-
if (colonIndex > 0 && !line.startsWith(" ")) {
|
|
69
|
-
const key = line.substring(0, colonIndex).trim();
|
|
70
|
-
let valuePart = line.substring(colonIndex + 1).trim();
|
|
71
|
-
if (i + 1 < lines.length && lines[i + 1].startsWith(" ")) {
|
|
72
|
-
const nestedLines = [];
|
|
73
|
-
if (valuePart)
|
|
74
|
-
nestedLines.push(valuePart);
|
|
75
|
-
let j = i + 1;
|
|
76
|
-
while (j < lines.length && (lines[j].startsWith(" ") || !lines[j].trim())) {
|
|
77
|
-
if (lines[j].trim())
|
|
78
|
-
nestedLines.push(lines[j].substring(2));
|
|
79
|
-
else
|
|
80
|
-
nestedLines.push("");
|
|
81
|
-
j++;
|
|
82
|
-
}
|
|
83
|
-
i = j - 1;
|
|
84
|
-
result[key] = decodeValue(nestedLines.join("\n"));
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
result[key] = decodeValue(valuePart);
|
|
88
|
-
}
|
|
89
|
-
hasKeyValues = true;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
if (hasKeyValues) {
|
|
93
|
-
// Flatten logic for common API patterns like data:publicToken:xyz
|
|
94
|
-
if (result.data && typeof result.data === 'object' && !Array.isArray(result.data)) {
|
|
95
|
-
// Merge properties from 'data' into top level if they don't collide
|
|
96
|
-
// OR specifically for generate-keys pattern:
|
|
97
|
-
if (result.privateKey && !result.data.privateKey) {
|
|
98
|
-
result.data.privateKey = result.privateKey;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return result;
|
|
102
|
-
}
|
|
103
|
-
return decodeValue(trimmed);
|
|
104
|
-
}
|
|
105
|
-
function decodeValue(str) {
|
|
106
|
-
const trimmed = str.trim();
|
|
107
|
-
if (!trimmed || trimmed === "null")
|
|
108
|
-
return null;
|
|
109
|
-
if (trimmed === "true")
|
|
110
|
-
return true;
|
|
111
|
-
if (trimmed === "false")
|
|
112
|
-
return false;
|
|
113
|
-
const lines = trimmed.split("\n");
|
|
114
|
-
const firstLine = lines[0].trim();
|
|
115
|
-
if (firstLine.startsWith("[") && firstLine.includes("]{")) {
|
|
116
|
-
const headerMatch = firstLine.match(/^\[(\d+)\]\{([^}]+)\}:?$/);
|
|
117
|
-
if (headerMatch) {
|
|
118
|
-
const keys = headerMatch[2].split(",").map((k) => k.trim());
|
|
119
|
-
const res = [];
|
|
120
|
-
for (let i = 1; i < lines.length; i++) {
|
|
121
|
-
const line = lines[i].trim();
|
|
122
|
-
if (!line)
|
|
123
|
-
continue;
|
|
124
|
-
const values = parseCommaSeparated(line);
|
|
125
|
-
const item = {};
|
|
126
|
-
keys.forEach((key, j) => {
|
|
127
|
-
if (j < values.length)
|
|
128
|
-
item[key] = parseValue(values[j]);
|
|
129
|
-
});
|
|
130
|
-
res.push(item);
|
|
131
|
-
}
|
|
132
|
-
return res;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (firstLine.startsWith("[") && firstLine.includes("]:")) {
|
|
136
|
-
const headerMatch = firstLine.match(/^\[(\d+)\]:(.*)$/);
|
|
137
|
-
if (headerMatch) {
|
|
138
|
-
const remaining = headerMatch[2] + (lines.length > 1 ? "\n" + lines.slice(1).join("\n") : "");
|
|
139
|
-
return parseCommaSeparated(remaining.trim()).map(parseValue);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
if (trimmed.includes(":") && !trimmed.startsWith('"') && !trimmed.includes("\n")) {
|
|
143
|
-
const res = {};
|
|
144
|
-
const parts = parseCommaSeparated(trimmed);
|
|
145
|
-
let isObj = false;
|
|
146
|
-
parts.forEach(part => {
|
|
147
|
-
const cIndex = part.indexOf(":");
|
|
148
|
-
if (cIndex > 0) {
|
|
149
|
-
res[part.substring(0, cIndex).trim()] = parseValue(part.substring(cIndex + 1).trim());
|
|
150
|
-
isObj = true;
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
if (isObj)
|
|
154
|
-
return res;
|
|
155
|
-
}
|
|
156
|
-
return parseValue(trimmed);
|
|
157
|
-
}
|
|
158
|
-
function parseValue(val) {
|
|
159
|
-
const v = val.trim();
|
|
160
|
-
if (!v || v === "null")
|
|
161
|
-
return null;
|
|
162
|
-
if (v === "true" || v === '"true"')
|
|
163
|
-
return true;
|
|
164
|
-
if (v === "false" || v === '"false"')
|
|
165
|
-
return false;
|
|
166
|
-
if (v.startsWith('"') && v.endsWith('"'))
|
|
167
|
-
return v.substring(1, v.length - 1);
|
|
168
|
-
if (/^-?\d+(\.\d+)?$/.test(v) && v.length < 15)
|
|
169
|
-
return Number(v);
|
|
170
|
-
return v;
|
|
171
|
-
}
|
|
172
|
-
function parseCommaSeparated(str) {
|
|
173
|
-
const result = [];
|
|
174
|
-
let current = "";
|
|
175
|
-
let inQuotes = false;
|
|
176
|
-
for (let i = 0; i < str.length; i++) {
|
|
177
|
-
const char = str[i];
|
|
178
|
-
if (char === '"')
|
|
179
|
-
inQuotes = !inQuotes;
|
|
180
|
-
if (char === "," && !inQuotes) {
|
|
181
|
-
result.push(current.trim());
|
|
182
|
-
current = "";
|
|
183
|
-
}
|
|
184
|
-
else
|
|
185
|
-
current += char;
|
|
186
|
-
}
|
|
187
|
-
result.push(current.trim());
|
|
188
|
-
return result;
|
|
189
|
-
}
|
|
190
|
-
function isToonFormat(content) {
|
|
191
|
-
const trimmed = content.trim();
|
|
192
|
-
return (trimmed.startsWith("[") && (trimmed.includes("]{") || trimmed.includes("]:"))) ||
|
|
193
|
-
(trimmed.includes(":") && !trimmed.startsWith("{"));
|
|
194
|
-
}
|
|
195
|
-
function safeEncode(data) {
|
|
196
|
-
try {
|
|
197
|
-
return encode(data);
|
|
198
|
-
}
|
|
199
|
-
catch {
|
|
200
|
-
return null;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
function safeDecode(str) {
|
|
204
|
-
try {
|
|
205
|
-
return decode(str);
|
|
206
|
-
}
|
|
207
|
-
catch {
|
|
208
|
-
return null;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YW1vZGVsL3Rvb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3QkFrQ0M7QUFFRCx3QkFnREM7QUFpRkQsb0NBSUM7QUFFRCxnQ0FFQztBQUVELGdDQUVDO0FBakxELFNBQWdCLE1BQU0sQ0FBQyxJQUFhO0lBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3ZELElBQUksT0FBTyxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM5RCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxJQUFJLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksU0FBUyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyRixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFD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QUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsU0FBUztRQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksU0FBUztvQkFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDM0UsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO3dCQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzt3QkFDeEQsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDMUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ04sQ0FBQztnQkFDRCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDVixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsa0VBQWtFO1FBQ2xFLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNsRixvRUFBb0U7WUFDcEUsNkNBQTZDO1lBQzdDLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDN0MsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQXNCLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBaUIsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBVztJQUM5QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLEtBQUssTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ2hELElBQUksT0FBTyxLQUFLLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQztJQUNwQyxJQUFJLE9BQU8sS0FBSyxPQUFPO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFdEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFbEMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDaEUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUQsTUFBTSxHQUFHLEdBQVUsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUk7b0JBQUUsU0FBUztnQkFDcEIsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sSUFBSSxHQUF3QixFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNO3dCQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELENBQUMsQ0FBQyxDQUFDO2dCQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakIsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4RCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlGLE9BQU8sbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqRixNQUFNLEdBQUcsR0FBd0IsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RGLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLEtBQUs7WUFBRSxPQUFPLEdBQUcsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQztJQUNwQyxJQUFJLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxLQUFLLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNoRCxJQUFJLENBQUMsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLFNBQVM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNuRCxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFO1FBQUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxHQUFXO0lBQ3RDLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksSUFBSSxLQUFLLEdBQUc7WUFBRSxRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDdkMsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1QixPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2YsQ0FBQzs7WUFBTSxPQUFPLElBQUksSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsT0FBZTtJQUMxQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFhO0lBQ3RDLElBQUksQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUFDLE9BQU8sSUFBSSxDQUFDO0lBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFjLEdBQVc7SUFDakQsSUFBSSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUksR0FBRyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQUMsT0FBTyxJQUFJLENBQUM7SUFBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlKGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHJldHVybiBcIm51bGxcIjtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcImJvb2xlYW5cIikgcmV0dXJuIGRhdGEgPyBcInRydWVcIiA6IFwiZmFsc2VcIjtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcIm51bWJlclwiKSByZXR1cm4gU3RyaW5nKGRhdGEpO1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAoL15bYS16QS1aMC05Xy1dKyQvLnRlc3QoZGF0YSkgJiYgZGF0YS5sZW5ndGggPCA1MDApIHJldHVybiBkYXRhO1xuICAgIHJldHVybiBgXCIke2RhdGF9XCJgO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSByZXR1cm4gXCJbXVwiO1xuICAgIGNvbnN0IGZpcnN0SXRlbSA9IGRhdGFbMF07XG4gICAgaWYgKHR5cGVvZiBmaXJzdEl0ZW0gPT09IFwib2JqZWN0XCIgJiYgZmlyc3RJdGVtICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KGZpcnN0SXRlbSkpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmaXJzdEl0ZW0pO1xuICAgICAgY29uc3QgaGVhZGVyID0gYFske2RhdGEubGVuZ3RofV17JHtrZXlzLmpvaW4oXCIsXCIpfX06YDtcbiAgICAgIGNvbnN0IGxpbmVzID0gZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0ga2V5cy5tYXAoKGtleSkgPT4gZW5jb2RlKGl0ZW1ba2V5XSkpO1xuICAgICAgICByZXR1cm4gdmFsdWVzLmpvaW4oXCIsXCIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gaGVhZGVyICsgXCJcXG5cIiArIGxpbmVzLm1hcCgobGluZSkgPT4gYCAgJHtsaW5lfWApLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuICAgIHJldHVybiBgWyR7ZGF0YS5sZW5ndGh9XTpgICsgZGF0YS5tYXAoKGl0ZW0pID0+IGVuY29kZShpdGVtKSkuam9pbihcIixcIik7XG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3Qgb2JqID0gZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqKS5maWx0ZXIoayA9PiBvYmpba10gIT09IHVuZGVmaW5lZCk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gXCJ7fVwiO1xuICAgIGNvbnN0IGxpbmVzID0ga2V5cy5tYXAoKGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gZW5jb2RlKG9ialtrZXldKTtcbiAgICAgIGlmICh2YWwuaW5jbHVkZXMoXCJcXG5cIikpIHJldHVybiBgJHtrZXl9OlxcbiR7dmFsLnNwbGl0KFwiXFxuXCIpLm1hcChsID0+IGAgICR7bH1gKS5qb2luKFwiXFxuXCIpfWA7XG4gICAgICByZXR1cm4gYCR7a2V5fToke3ZhbH1gO1xuICAgIH0pO1xuICAgIHJldHVybiBsaW5lcy5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBTdHJpbmcoZGF0YSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGU8VCA9IHVua25vd24+KHN0cjogc3RyaW5nKTogVCB7XG4gIGlmICghc3RyKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFQ7XG4gIGNvbnN0IHRyaW1tZWQgPSBzdHIudHJpbSgpO1xuICBpZiAodHJpbW1lZC5zdGFydHNXaXRoKCd7JykgfHwgdHJpbW1lZC5zdGFydHNXaXRoKCdbJykpIHtcbiAgICB0cnkgeyByZXR1cm4gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyBUOyB9IGNhdGNoIChlKSB7fVxuICB9XG5cbiAgY29uc3QgbGluZXMgPSBzdHIuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBsZXQgaGFzS2V5VmFsdWVzID0gZmFsc2U7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXTtcbiAgICBpZiAoIWxpbmUudHJpbSgpKSBjb250aW51ZTtcbiAgICBjb25zdCBjb2xvbkluZGV4ID0gbGluZS5pbmRleE9mKFwiOlwiKTtcbiAgICBpZiAoY29sb25JbmRleCA+IDAgJiYgIWxpbmUuc3RhcnRzV2l0aChcIiBcIikpIHtcbiAgICAgIGNvbnN0IGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIGNvbG9uSW5kZXgpLnRyaW0oKTtcbiAgICAgIGxldCB2YWx1ZVBhcnQgPSBsaW5lLnN1YnN0cmluZyhjb2xvbkluZGV4ICsgMSkudHJpbSgpO1xuICAgICAgaWYgKGkgKyAxIDwgbGluZXMubGVuZ3RoICYmIGxpbmVzW2krMV0uc3RhcnRzV2l0aChcIiAgXCIpKSB7XG4gICAgICAgIGNvbnN0IG5lc3RlZExpbmVzID0gW107XG4gICAgICAgIGlmICh2YWx1ZVBhcnQpIG5lc3RlZExpbmVzLnB1c2godmFsdWVQYXJ0KTtcbiAgICAgICAgbGV0IGogPSBpICsgMTtcbiAgICAgICAgd2hpbGUgKGogPCBsaW5lcy5sZW5ndGggJiYgKGxpbmVzW2pdLnN0YXJ0c1dpdGgoXCIgIFwiKSB8fCAhbGluZXNbal0udHJpbSgpKSkge1xuICAgICAgICAgIGlmIChsaW5lc1tqXS50cmltKCkpIG5lc3RlZExpbmVzLnB1c2gobGluZXNbal0uc3Vic3RyaW5nKDIpKTtcbiAgICAgICAgICBlbHNlIG5lc3RlZExpbmVzLnB1c2goXCJcIik7XG4gICAgICAgICAgaisrO1xuICAgICAgICB9XG4gICAgICAgIGkgPSBqIC0gMTtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBkZWNvZGVWYWx1ZShuZXN0ZWRMaW5lcy5qb2luKFwiXFxuXCIpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gZGVjb2RlVmFsdWUodmFsdWVQYXJ0KTtcbiAgICAgIH1cbiAgICAgIGhhc0tleVZhbHVlcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhc0tleVZhbHVlcykge1xuICAgIC8vIEZsYXR0ZW4gbG9naWMgZm9yIGNvbW1vbiBBUEkgcGF0dGVybnMgbGlrZSBkYXRhOnB1YmxpY1Rva2VuOnh5elxuICAgIGlmIChyZXN1bHQuZGF0YSAmJiB0eXBlb2YgcmVzdWx0LmRhdGEgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc3VsdC5kYXRhKSkge1xuICAgICAgLy8gTWVyZ2UgcHJvcGVydGllcyBmcm9tICdkYXRhJyBpbnRvIHRvcCBsZXZlbCBpZiB0aGV5IGRvbid0IGNvbGxpZGVcbiAgICAgIC8vIE9SIHNwZWNpZmljYWxseSBmb3IgZ2VuZXJhdGUta2V5cyBwYXR0ZXJuOlxuICAgICAgaWYgKHJlc3VsdC5wcml2YXRlS2V5ICYmICFyZXN1bHQuZGF0YS5wcml2YXRlS2V5KSB7XG4gICAgICAgIHJlc3VsdC5kYXRhLnByaXZhdGVLZXkgPSByZXN1bHQucHJpdmF0ZUtleTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdCBhcyB1bmtub3duIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIGRlY29kZVZhbHVlKHRyaW1tZWQpIGFzIHVua25vd24gYXMgVDtcbn1cblxuZnVuY3Rpb24gZGVjb2RlVmFsdWUoc3RyOiBzdHJpbmcpOiBhbnkge1xuICBjb25zdCB0cmltbWVkID0gc3RyLnRyaW0oKTtcbiAgaWYgKCF0cmltbWVkIHx8IHRyaW1tZWQgPT09IFwibnVsbFwiKSByZXR1cm4gbnVsbDtcbiAgaWYgKHRyaW1tZWQgPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHRyaW1tZWQgPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IGxpbmVzID0gdHJpbW1lZC5zcGxpdChcIlxcblwiKTtcbiAgY29uc3QgZmlyc3RMaW5lID0gbGluZXNbMF0udHJpbSgpO1xuXG4gIGlmIChmaXJzdExpbmUuc3RhcnRzV2l0aChcIltcIikgJiYgZmlyc3RMaW5lLmluY2x1ZGVzKFwiXXtcIikpIHtcbiAgICBjb25zdCBoZWFkZXJNYXRjaCA9IGZpcnN0TGluZS5tYXRjaCgvXlxcWyhcXGQrKVxcXVxceyhbXn1dKylcXH06PyQvKTtcbiAgICBpZiAoaGVhZGVyTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBoZWFkZXJNYXRjaFsyXS5zcGxpdChcIixcIikubWFwKChrKSA9PiBrLnRyaW0oKSk7XG4gICAgICBjb25zdCByZXM6IGFueVtdID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXS50cmltKCk7XG4gICAgICAgIGlmICghbGluZSkgY29udGludWU7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcnNlQ29tbWFTZXBhcmF0ZWQobGluZSk7XG4gICAgICAgIGNvbnN0IGl0ZW06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXksIGopID0+IHtcbiAgICAgICAgICBpZiAoaiA8IHZhbHVlcy5sZW5ndGgpIGl0ZW1ba2V5XSA9IHBhcnNlVmFsdWUodmFsdWVzW2pdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcy5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH1cblxuICBpZiAoZmlyc3RMaW5lLnN0YXJ0c1dpdGgoXCJbXCIpICYmIGZpcnN0TGluZS5pbmNsdWRlcyhcIl06XCIpKSB7XG4gICAgY29uc3QgaGVhZGVyTWF0Y2ggPSBmaXJzdExpbmUubWF0Y2goL15cXFsoXFxkKylcXF06KC4qKSQvKTtcbiAgICBpZiAoaGVhZGVyTWF0Y2gpIHtcbiAgICAgIGNvbnN0IHJlbWFpbmluZyA9IGhlYWRlck1hdGNoWzJdICsgKGxpbmVzLmxlbmd0aCA+IDEgPyBcIlxcblwiICsgbGluZXMuc2xpY2UoMSkuam9pbihcIlxcblwiKSA6IFwiXCIpO1xuICAgICAgcmV0dXJuIHBhcnNlQ29tbWFTZXBhcmF0ZWQocmVtYWluaW5nLnRyaW0oKSkubWFwKHBhcnNlVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0cmltbWVkLmluY2x1ZGVzKFwiOlwiKSAmJiAhdHJpbW1lZC5zdGFydHNXaXRoKCdcIicpICYmICF0cmltbWVkLmluY2x1ZGVzKFwiXFxuXCIpKSB7XG4gICAgY29uc3QgcmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgY29uc3QgcGFydHMgPSBwYXJzZUNvbW1hU2VwYXJhdGVkKHRyaW1tZWQpO1xuICAgIGxldCBpc09iaiA9IGZhbHNlO1xuICAgIHBhcnRzLmZvckVhY2gocGFydCA9PiB7XG4gICAgICBjb25zdCBjSW5kZXggPSBwYXJ0LmluZGV4T2YoXCI6XCIpO1xuICAgICAgaWYgKGNJbmRleCA+IDApIHtcbiAgICAgICAgcmVzW3BhcnQuc3Vic3RyaW5nKDAsIGNJbmRleCkudHJpbSgpXSA9IHBhcnNlVmFsdWUocGFydC5zdWJzdHJpbmcoY0luZGV4ICsgMSkudHJpbSgpKTtcbiAgICAgICAgaXNPYmogPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChpc09iaikgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHJldHVybiBwYXJzZVZhbHVlKHRyaW1tZWQpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVZhbHVlKHZhbDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgdiA9IHZhbC50cmltKCk7XG4gIGlmICghdiB8fCB2ID09PSBcIm51bGxcIikgcmV0dXJuIG51bGw7XG4gIGlmICh2ID09PSBcInRydWVcIiB8fCB2ID09PSAnXCJ0cnVlXCInKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHYgPT09IFwiZmFsc2VcIiB8fCB2ID09PSAnXCJmYWxzZVwiJykgcmV0dXJuIGZhbHNlO1xuICBpZiAodi5zdGFydHNXaXRoKCdcIicpICYmIHYuZW5kc1dpdGgoJ1wiJykpIHJldHVybiB2LnN1YnN0cmluZygxLCB2Lmxlbmd0aCAtIDEpO1xuICBpZiAoL14tP1xcZCsoXFwuXFxkKyk/JC8udGVzdCh2KSAmJiB2Lmxlbmd0aCA8IDE1KSByZXR1cm4gTnVtYmVyKHYpO1xuICByZXR1cm4gdjtcbn1cblxuZnVuY3Rpb24gcGFyc2VDb21tYVNlcGFyYXRlZChzdHI6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgY3VycmVudCA9IFwiXCI7XG4gIGxldCBpblF1b3RlcyA9IGZhbHNlO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoYXIgPSBzdHJbaV07XG4gICAgaWYgKGNoYXIgPT09ICdcIicpIGluUXVvdGVzID0gIWluUXVvdGVzO1xuICAgIGlmIChjaGFyID09PSBcIixcIiAmJiAhaW5RdW90ZXMpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgICAgIGN1cnJlbnQgPSBcIlwiO1xuICAgIH0gZWxzZSBjdXJyZW50ICs9IGNoYXI7XG4gIH1cbiAgcmVzdWx0LnB1c2goY3VycmVudC50cmltKCkpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUb29uRm9ybWF0KGNvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCB0cmltbWVkID0gY29udGVudC50cmltKCk7XG4gIHJldHVybiAodHJpbW1lZC5zdGFydHNXaXRoKFwiW1wiKSAmJiAodHJpbW1lZC5pbmNsdWRlcyhcIl17XCIpIHx8IHRyaW1tZWQuaW5jbHVkZXMoXCJdOlwiKSkpIHx8XG4gICAgICAgICAodHJpbW1lZC5pbmNsdWRlcyhcIjpcIikgJiYgIXRyaW1tZWQuc3RhcnRzV2l0aChcIntcIikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZUVuY29kZShkYXRhOiB1bmtub3duKTogc3RyaW5nIHwgbnVsbCB7XG4gIHRyeSB7IHJldHVybiBlbmNvZGUoZGF0YSk7IH0gY2F0Y2ggeyByZXR1cm4gbnVsbDsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FmZURlY29kZTxUID0gdW5rbm93bj4oc3RyOiBzdHJpbmcpOiBUIHwgbnVsbCB7XG4gIHRyeSB7IHJldHVybiBkZWNvZGU8VD4oc3RyKTsgfSBjYXRjaCB7IHJldHVybiBudWxsOyB9XG59XG4iXX0=
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface PlanLimits {
|
|
2
|
-
plan: 'starter' | 'pro' | 'elite';
|
|
3
|
-
maxNetworks: number;
|
|
4
|
-
skills: string[];
|
|
5
|
-
premiumLlms: boolean;
|
|
6
|
-
stripePriceId?: string;
|
|
7
|
-
stripeCustomerId?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class LimitsManager {
|
|
10
|
-
private cached;
|
|
11
|
-
getLimits(): Promise<PlanLimits | null>;
|
|
12
|
-
canJoinNetwork(currentNetworkCount: number): Promise<{
|
|
13
|
-
allowed: boolean;
|
|
14
|
-
reason?: string;
|
|
15
|
-
}>;
|
|
16
|
-
canCreateNetwork(currentNetworkCount: number): Promise<{
|
|
17
|
-
allowed: boolean;
|
|
18
|
-
reason?: string;
|
|
19
|
-
}>;
|
|
20
|
-
hasSkill(skill: string): boolean;
|
|
21
|
-
clearCache(): void;
|
|
22
|
-
}
|
|
23
|
-
export declare const limitsManager: LimitsManager;
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.limitsManager = exports.LimitsManager = void 0;
|
|
37
|
-
const path = __importStar(require("path"));
|
|
38
|
-
const os = __importStar(require("os"));
|
|
39
|
-
const fs = __importStar(require("fs-extra"));
|
|
40
|
-
const CONFIG_DIR = path.join(os.homedir(), '.agenticpool');
|
|
41
|
-
const LIMITS_FILE = path.join(CONFIG_DIR, 'limits.json');
|
|
42
|
-
const PLAN_DEFAULTS = {
|
|
43
|
-
starter: { maxNetworks: 1, skills: ['agenticpool-social', 'openclaw-free'], premiumLlms: false },
|
|
44
|
-
pro: { maxNetworks: 3, skills: ['agenticpool-social', 'openclaw-free', 'google-search', 'web-scraper', 'translation'], premiumLlms: false },
|
|
45
|
-
elite: { maxNetworks: Infinity, skills: ['agenticpool-social', 'openclaw-free', 'google-search', 'web-scraper', 'translation', 'news-api', 'advanced-summarization'], premiumLlms: true },
|
|
46
|
-
};
|
|
47
|
-
class LimitsManager {
|
|
48
|
-
constructor() {
|
|
49
|
-
this.cached = null;
|
|
50
|
-
}
|
|
51
|
-
async getLimits() {
|
|
52
|
-
if (this.cached)
|
|
53
|
-
return this.cached;
|
|
54
|
-
const exists = await fs.pathExists(LIMITS_FILE);
|
|
55
|
-
if (!exists)
|
|
56
|
-
return null;
|
|
57
|
-
try {
|
|
58
|
-
const raw = await fs.readJson(LIMITS_FILE);
|
|
59
|
-
this.cached = {
|
|
60
|
-
plan: raw.plan || 'starter',
|
|
61
|
-
maxNetworks: raw.maxNetworks ?? PLAN_DEFAULTS[raw.plan]?.maxNetworks ?? 1,
|
|
62
|
-
skills: raw.skills || PLAN_DEFAULTS[raw.plan]?.skills || [],
|
|
63
|
-
premiumLlms: raw.premiumLlms ?? PLAN_DEFAULTS[raw.plan]?.premiumLlms ?? false,
|
|
64
|
-
stripePriceId: raw.stripePriceId,
|
|
65
|
-
stripeCustomerId: raw.stripeCustomerId,
|
|
66
|
-
};
|
|
67
|
-
return this.cached;
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
async canJoinNetwork(currentNetworkCount) {
|
|
74
|
-
const limits = await this.getLimits();
|
|
75
|
-
if (!limits)
|
|
76
|
-
return { allowed: true };
|
|
77
|
-
if (currentNetworkCount >= limits.maxNetworks) {
|
|
78
|
-
return {
|
|
79
|
-
allowed: false,
|
|
80
|
-
reason: `Limit reached: Your ${limits.plan} plan allows a maximum of ${limits.maxNetworks} network(s). Upgrade at shop.agenticpool.net`,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return { allowed: true };
|
|
84
|
-
}
|
|
85
|
-
async canCreateNetwork(currentNetworkCount) {
|
|
86
|
-
return this.canJoinNetwork(currentNetworkCount);
|
|
87
|
-
}
|
|
88
|
-
hasSkill(skill) {
|
|
89
|
-
if (!this.cached)
|
|
90
|
-
return true;
|
|
91
|
-
return this.cached.skills.includes(skill);
|
|
92
|
-
}
|
|
93
|
-
clearCache() {
|
|
94
|
-
this.cached = null;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
exports.LimitsManager = LimitsManager;
|
|
98
|
-
exports.limitsManager = new LimitsManager();
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGltaXRzTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saW1pdHMvTGltaXRzTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsdUNBQXlCO0FBQ3pCLDZDQUErQjtBQUUvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUMzRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQVd6RCxNQUFNLGFBQWEsR0FBd0M7SUFDekQsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO0lBQ2hHLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtJQUMzSSxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO0NBQzFMLENBQUM7QUFFRixNQUFhLGFBQWE7SUFBMUI7UUFDVSxXQUFNLEdBQXNCLElBQUksQ0FBQztJQWtEM0MsQ0FBQztJQWhEQyxLQUFLLENBQUMsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFcEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFekIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ1osSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksU0FBUztnQkFDM0IsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLElBQUksQ0FBQztnQkFDekUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRTtnQkFDM0QsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLElBQUksS0FBSztnQkFDN0UsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhO2dCQUNoQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsZ0JBQWdCO2FBQ3ZDLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLG1CQUEyQjtRQUM5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFdEMsSUFBSSxtQkFBbUIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUMsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsdUJBQXVCLE1BQU0sQ0FBQyxJQUFJLDZCQUE2QixNQUFNLENBQUMsV0FBVyw4Q0FBOEM7YUFDeEksQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsbUJBQTJCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQW5ERCxzQ0FtREM7QUFFWSxRQUFBLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuY29uc3QgQ09ORklHX0RJUiA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICcuYWdlbnRpY3Bvb2wnKTtcbmNvbnN0IExJTUlUU19GSUxFID0gcGF0aC5qb2luKENPTkZJR19ESVIsICdsaW1pdHMuanNvbicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYW5MaW1pdHMge1xuICBwbGFuOiAnc3RhcnRlcicgfCAncHJvJyB8ICdlbGl0ZSc7XG4gIG1heE5ldHdvcmtzOiBudW1iZXI7XG4gIHNraWxsczogc3RyaW5nW107XG4gIHByZW1pdW1MbG1zOiBib29sZWFuO1xuICBzdHJpcGVQcmljZUlkPzogc3RyaW5nO1xuICBzdHJpcGVDdXN0b21lcklkPzogc3RyaW5nO1xufVxuXG5jb25zdCBQTEFOX0RFRkFVTFRTOiBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPFBsYW5MaW1pdHM+PiA9IHtcbiAgc3RhcnRlcjogeyBtYXhOZXR3b3JrczogMSwgc2tpbGxzOiBbJ2FnZW50aWNwb29sLXNvY2lhbCcsICdvcGVuY2xhdy1mcmVlJ10sIHByZW1pdW1MbG1zOiBmYWxzZSB9LFxuICBwcm86IHsgbWF4TmV0d29ya3M6IDMsIHNraWxsczogWydhZ2VudGljcG9vbC1zb2NpYWwnLCAnb3BlbmNsYXctZnJlZScsICdnb29nbGUtc2VhcmNoJywgJ3dlYi1zY3JhcGVyJywgJ3RyYW5zbGF0aW9uJ10sIHByZW1pdW1MbG1zOiBmYWxzZSB9LFxuICBlbGl0ZTogeyBtYXhOZXR3b3JrczogSW5maW5pdHksIHNraWxsczogWydhZ2VudGljcG9vbC1zb2NpYWwnLCAnb3BlbmNsYXctZnJlZScsICdnb29nbGUtc2VhcmNoJywgJ3dlYi1zY3JhcGVyJywgJ3RyYW5zbGF0aW9uJywgJ25ld3MtYXBpJywgJ2FkdmFuY2VkLXN1bW1hcml6YXRpb24nXSwgcHJlbWl1bUxsbXM6IHRydWUgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBMaW1pdHNNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBjYWNoZWQ6IFBsYW5MaW1pdHMgfCBudWxsID0gbnVsbDtcblxuICBhc3luYyBnZXRMaW1pdHMoKTogUHJvbWlzZTxQbGFuTGltaXRzIHwgbnVsbD4ge1xuICAgIGlmICh0aGlzLmNhY2hlZCkgcmV0dXJuIHRoaXMuY2FjaGVkO1xuXG4gICAgY29uc3QgZXhpc3RzID0gYXdhaXQgZnMucGF0aEV4aXN0cyhMSU1JVFNfRklMRSk7XG4gICAgaWYgKCFleGlzdHMpIHJldHVybiBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IGZzLnJlYWRKc29uKExJTUlUU19GSUxFKTtcbiAgICAgIHRoaXMuY2FjaGVkID0ge1xuICAgICAgICBwbGFuOiByYXcucGxhbiB8fCAnc3RhcnRlcicsXG4gICAgICAgIG1heE5ldHdvcmtzOiByYXcubWF4TmV0d29ya3MgPz8gUExBTl9ERUZBVUxUU1tyYXcucGxhbl0/Lm1heE5ldHdvcmtzID8/IDEsXG4gICAgICAgIHNraWxsczogcmF3LnNraWxscyB8fCBQTEFOX0RFRkFVTFRTW3Jhdy5wbGFuXT8uc2tpbGxzIHx8IFtdLFxuICAgICAgICBwcmVtaXVtTGxtczogcmF3LnByZW1pdW1MbG1zID8/IFBMQU5fREVGQVVMVFNbcmF3LnBsYW5dPy5wcmVtaXVtTGxtcyA/PyBmYWxzZSxcbiAgICAgICAgc3RyaXBlUHJpY2VJZDogcmF3LnN0cmlwZVByaWNlSWQsXG4gICAgICAgIHN0cmlwZUN1c3RvbWVySWQ6IHJhdy5zdHJpcGVDdXN0b21lcklkLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlZDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNhbkpvaW5OZXR3b3JrKGN1cnJlbnROZXR3b3JrQ291bnQ6IG51bWJlcik6IFByb21pc2U8eyBhbGxvd2VkOiBib29sZWFuOyByZWFzb24/OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IGxpbWl0cyA9IGF3YWl0IHRoaXMuZ2V0TGltaXRzKCk7XG4gICAgaWYgKCFsaW1pdHMpIHJldHVybiB7IGFsbG93ZWQ6IHRydWUgfTtcblxuICAgIGlmIChjdXJyZW50TmV0d29ya0NvdW50ID49IGxpbWl0cy5tYXhOZXR3b3Jrcykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWxsb3dlZDogZmFsc2UsXG4gICAgICAgIHJlYXNvbjogYExpbWl0IHJlYWNoZWQ6IFlvdXIgJHtsaW1pdHMucGxhbn0gcGxhbiBhbGxvd3MgYSBtYXhpbXVtIG9mICR7bGltaXRzLm1heE5ldHdvcmtzfSBuZXR3b3JrKHMpLiBVcGdyYWRlIGF0IHNob3AuYWdlbnRpY3Bvb2wubmV0YCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgYWxsb3dlZDogdHJ1ZSB9O1xuICB9XG5cbiAgYXN5bmMgY2FuQ3JlYXRlTmV0d29yayhjdXJyZW50TmV0d29ya0NvdW50OiBudW1iZXIpOiBQcm9taXNlPHsgYWxsb3dlZDogYm9vbGVhbjsgcmVhc29uPzogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5jYW5Kb2luTmV0d29yayhjdXJyZW50TmV0d29ya0NvdW50KTtcbiAgfVxuXG4gIGhhc1NraWxsKHNraWxsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY2FjaGVkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZWQuc2tpbGxzLmluY2x1ZGVzKHNraWxsKTtcbiAgfVxuXG4gIGNsZWFyQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZWQgPSBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBsaW1pdHNNYW5hZ2VyID0gbmV3IExpbWl0c01hbmFnZXIoKTtcbiJdfQ==
|
package/dist/utils/colors.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
type ColorFn = (s: string) => string;
|
|
2
|
-
type ColorWithBold = ColorFn & {
|
|
3
|
-
bold: ColorFn;
|
|
4
|
-
};
|
|
5
|
-
export declare const colors: {
|
|
6
|
-
red: ColorWithBold;
|
|
7
|
-
green: ColorWithBold;
|
|
8
|
-
yellow: ColorWithBold;
|
|
9
|
-
blue: ColorWithBold;
|
|
10
|
-
magenta: ColorWithBold;
|
|
11
|
-
cyan: ColorWithBold;
|
|
12
|
-
white: ColorWithBold;
|
|
13
|
-
gray: ColorWithBold;
|
|
14
|
-
bold: (s: string) => string;
|
|
15
|
-
};
|
|
16
|
-
export default colors;
|
package/dist/utils/colors.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Simple color helper to avoid ESM/CommonJS issues with chalk
|
|
3
|
-
// Supports chaining .bold (e.g., colors.cyan.bold('text'))
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.colors = void 0;
|
|
6
|
-
const createColor = (code) => {
|
|
7
|
-
const fn = (s) => `\x1b[${code}m${s}\x1b[0m`;
|
|
8
|
-
fn.bold = (s) => `\x1b[${code}m\x1b[1m${s}\x1b[22m\x1b[0m`;
|
|
9
|
-
return fn;
|
|
10
|
-
};
|
|
11
|
-
exports.colors = {
|
|
12
|
-
red: createColor('31'),
|
|
13
|
-
green: createColor('32'),
|
|
14
|
-
yellow: createColor('33'),
|
|
15
|
-
blue: createColor('34'),
|
|
16
|
-
magenta: createColor('35'),
|
|
17
|
-
cyan: createColor('36'),
|
|
18
|
-
white: createColor('37'),
|
|
19
|
-
gray: createColor('90'),
|
|
20
|
-
bold: (s) => `\x1b[1m${s}\x1b[22m`,
|
|
21
|
-
};
|
|
22
|
-
exports.default = exports.colors;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOERBQThEO0FBQzlELDJEQUEyRDs7O0FBSzNELE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFpQixFQUFFO0lBQ2xELE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDO0lBQ25FLE9BQU8sRUFBbUIsQ0FBQztBQUM3QixDQUFDLENBQUM7QUFFVyxRQUFBLE1BQU0sR0FBRztJQUNwQixHQUFHLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN0QixLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN4QixNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN6QixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN2QixPQUFPLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMxQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN2QixLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVO0NBQzNDLENBQUM7QUFFRixrQkFBZSxjQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTaW1wbGUgY29sb3IgaGVscGVyIHRvIGF2b2lkIEVTTS9Db21tb25KUyBpc3N1ZXMgd2l0aCBjaGFsa1xuLy8gU3VwcG9ydHMgY2hhaW5pbmcgLmJvbGQgKGUuZy4sIGNvbG9ycy5jeWFuLmJvbGQoJ3RleHQnKSlcblxudHlwZSBDb2xvckZuID0gKHM6IHN0cmluZykgPT4gc3RyaW5nO1xudHlwZSBDb2xvcldpdGhCb2xkID0gQ29sb3JGbiAmIHsgYm9sZDogQ29sb3JGbiB9O1xuXG5jb25zdCBjcmVhdGVDb2xvciA9IChjb2RlOiBzdHJpbmcpOiBDb2xvcldpdGhCb2xkID0+IHtcbiAgY29uc3QgZm4gPSAoczogc3RyaW5nKSA9PiBgXFx4MWJbJHtjb2RlfW0ke3N9XFx4MWJbMG1gO1xuICBmbi5ib2xkID0gKHM6IHN0cmluZykgPT4gYFxceDFiWyR7Y29kZX1tXFx4MWJbMW0ke3N9XFx4MWJbMjJtXFx4MWJbMG1gO1xuICByZXR1cm4gZm4gYXMgQ29sb3JXaXRoQm9sZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjb2xvcnMgPSB7XG4gIHJlZDogY3JlYXRlQ29sb3IoJzMxJyksXG4gIGdyZWVuOiBjcmVhdGVDb2xvcignMzInKSxcbiAgeWVsbG93OiBjcmVhdGVDb2xvcignMzMnKSxcbiAgYmx1ZTogY3JlYXRlQ29sb3IoJzM0JyksXG4gIG1hZ2VudGE6IGNyZWF0ZUNvbG9yKCczNScpLFxuICBjeWFuOiBjcmVhdGVDb2xvcignMzYnKSxcbiAgd2hpdGU6IGNyZWF0ZUNvbG9yKCczNycpLFxuICBncmF5OiBjcmVhdGVDb2xvcignOTAnKSxcbiAgYm9sZDogKHM6IHN0cmluZykgPT4gYFxceDFiWzFtJHtzfVxceDFiWzIybWAsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb2xvcnM7XG4iXX0=
|
package/dist/utils/logger.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare class Logger {
|
|
2
|
-
private debugEnabled;
|
|
3
|
-
setDebug(enabled: boolean): void;
|
|
4
|
-
debug(message: string, ...args: any[]): void;
|
|
5
|
-
error(message: string, ...args: any[]): void;
|
|
6
|
-
success(message: string, ...args: any[]): void;
|
|
7
|
-
info(message: string, ...args: any[]): void;
|
|
8
|
-
warn(message: string, ...args: any[]): void;
|
|
9
|
-
}
|
|
10
|
-
export declare const logger: Logger;
|
|
11
|
-
export {};
|