@tasknet-protocol/shared 0.5.0 → 0.6.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/dist/index.d.mts +30 -1
- package/dist/index.d.ts +30 -1
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -45,6 +45,22 @@ declare const BADGE_TIER: {
|
|
|
45
45
|
readonly GOLD: 2;
|
|
46
46
|
};
|
|
47
47
|
type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];
|
|
48
|
+
declare const CLAIM_TYPE: {
|
|
49
|
+
readonly PENDING: 0;
|
|
50
|
+
readonly TWITTER: 1;
|
|
51
|
+
readonly MOLTBOOK: 2;
|
|
52
|
+
readonly GITHUB: 3;
|
|
53
|
+
readonly WALLET: 4;
|
|
54
|
+
};
|
|
55
|
+
type ClaimType = (typeof CLAIM_TYPE)[keyof typeof CLAIM_TYPE];
|
|
56
|
+
declare const CLAIM_TYPE_LABELS: Record<ClaimType, string>;
|
|
57
|
+
declare const CLAIM_STATUS: {
|
|
58
|
+
readonly PENDING: 0;
|
|
59
|
+
readonly VERIFIED: 1;
|
|
60
|
+
readonly REVOKED: 2;
|
|
61
|
+
};
|
|
62
|
+
type ClaimStatus = (typeof CLAIM_STATUS)[keyof typeof CLAIM_STATUS];
|
|
63
|
+
declare const CLAIM_STATUS_LABELS: Record<ClaimStatus, string>;
|
|
48
64
|
declare const SUI_TOKEN: {
|
|
49
65
|
readonly PACKAGE_ID: "0x2";
|
|
50
66
|
readonly MODULE: "sui";
|
|
@@ -174,6 +190,19 @@ interface Badge {
|
|
|
174
190
|
earnedAt: bigint;
|
|
175
191
|
metadata?: object;
|
|
176
192
|
}
|
|
193
|
+
interface Claim {
|
|
194
|
+
id: string;
|
|
195
|
+
agentId: string;
|
|
196
|
+
verificationCode: string;
|
|
197
|
+
claimType: ClaimType;
|
|
198
|
+
postUrl?: string;
|
|
199
|
+
verifiedHandle?: string;
|
|
200
|
+
status: ClaimStatus;
|
|
201
|
+
createdAt: Date;
|
|
202
|
+
verifiedAt?: Date;
|
|
203
|
+
revokedAt?: Date;
|
|
204
|
+
expiresAt?: Date;
|
|
205
|
+
}
|
|
177
206
|
interface SkillCertification {
|
|
178
207
|
id: string;
|
|
179
208
|
skillId: string;
|
|
@@ -266,4 +295,4 @@ interface WebhookPayload {
|
|
|
266
295
|
signature: string;
|
|
267
296
|
}
|
|
268
297
|
|
|
269
|
-
export { API_VERSION, type Agent, type AgentStats, type ApiError, BADGE_TIER, type Badge, type BadgeTier, type Composite, type CompositeStep, FULLNODE_URLS, MIST_PER_SUI, MULTIPLIERS, NETWORKS, type Network, PRIORITY, PRIORITY_LABELS, PROTOCOL, type PaginatedResponse, type PriorityTier, STATUS, STATUS_LABELS, SUI_DECIMALS, SUI_TOKEN, type Skill, type SkillCertification, type SkillMetadata, type Task, type TaskEvent, type TaskInput, type TaskOutput, type TaskStatus, type TaskTemplate, VERIFICATION, VERIFICATION_LABELS, type VerificationType, type Webhook, type WebhookPayload, formatSui, parseSui };
|
|
298
|
+
export { API_VERSION, type Agent, type AgentStats, type ApiError, BADGE_TIER, type Badge, type BadgeTier, CLAIM_STATUS, CLAIM_STATUS_LABELS, CLAIM_TYPE, CLAIM_TYPE_LABELS, type Claim, type ClaimStatus, type ClaimType, type Composite, type CompositeStep, FULLNODE_URLS, MIST_PER_SUI, MULTIPLIERS, NETWORKS, type Network, PRIORITY, PRIORITY_LABELS, PROTOCOL, type PaginatedResponse, type PriorityTier, STATUS, STATUS_LABELS, SUI_DECIMALS, SUI_TOKEN, type Skill, type SkillCertification, type SkillMetadata, type Task, type TaskEvent, type TaskInput, type TaskOutput, type TaskStatus, type TaskTemplate, VERIFICATION, VERIFICATION_LABELS, type VerificationType, type Webhook, type WebhookPayload, formatSui, parseSui };
|
package/dist/index.d.ts
CHANGED
|
@@ -45,6 +45,22 @@ declare const BADGE_TIER: {
|
|
|
45
45
|
readonly GOLD: 2;
|
|
46
46
|
};
|
|
47
47
|
type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];
|
|
48
|
+
declare const CLAIM_TYPE: {
|
|
49
|
+
readonly PENDING: 0;
|
|
50
|
+
readonly TWITTER: 1;
|
|
51
|
+
readonly MOLTBOOK: 2;
|
|
52
|
+
readonly GITHUB: 3;
|
|
53
|
+
readonly WALLET: 4;
|
|
54
|
+
};
|
|
55
|
+
type ClaimType = (typeof CLAIM_TYPE)[keyof typeof CLAIM_TYPE];
|
|
56
|
+
declare const CLAIM_TYPE_LABELS: Record<ClaimType, string>;
|
|
57
|
+
declare const CLAIM_STATUS: {
|
|
58
|
+
readonly PENDING: 0;
|
|
59
|
+
readonly VERIFIED: 1;
|
|
60
|
+
readonly REVOKED: 2;
|
|
61
|
+
};
|
|
62
|
+
type ClaimStatus = (typeof CLAIM_STATUS)[keyof typeof CLAIM_STATUS];
|
|
63
|
+
declare const CLAIM_STATUS_LABELS: Record<ClaimStatus, string>;
|
|
48
64
|
declare const SUI_TOKEN: {
|
|
49
65
|
readonly PACKAGE_ID: "0x2";
|
|
50
66
|
readonly MODULE: "sui";
|
|
@@ -174,6 +190,19 @@ interface Badge {
|
|
|
174
190
|
earnedAt: bigint;
|
|
175
191
|
metadata?: object;
|
|
176
192
|
}
|
|
193
|
+
interface Claim {
|
|
194
|
+
id: string;
|
|
195
|
+
agentId: string;
|
|
196
|
+
verificationCode: string;
|
|
197
|
+
claimType: ClaimType;
|
|
198
|
+
postUrl?: string;
|
|
199
|
+
verifiedHandle?: string;
|
|
200
|
+
status: ClaimStatus;
|
|
201
|
+
createdAt: Date;
|
|
202
|
+
verifiedAt?: Date;
|
|
203
|
+
revokedAt?: Date;
|
|
204
|
+
expiresAt?: Date;
|
|
205
|
+
}
|
|
177
206
|
interface SkillCertification {
|
|
178
207
|
id: string;
|
|
179
208
|
skillId: string;
|
|
@@ -266,4 +295,4 @@ interface WebhookPayload {
|
|
|
266
295
|
signature: string;
|
|
267
296
|
}
|
|
268
297
|
|
|
269
|
-
export { API_VERSION, type Agent, type AgentStats, type ApiError, BADGE_TIER, type Badge, type BadgeTier, type Composite, type CompositeStep, FULLNODE_URLS, MIST_PER_SUI, MULTIPLIERS, NETWORKS, type Network, PRIORITY, PRIORITY_LABELS, PROTOCOL, type PaginatedResponse, type PriorityTier, STATUS, STATUS_LABELS, SUI_DECIMALS, SUI_TOKEN, type Skill, type SkillCertification, type SkillMetadata, type Task, type TaskEvent, type TaskInput, type TaskOutput, type TaskStatus, type TaskTemplate, VERIFICATION, VERIFICATION_LABELS, type VerificationType, type Webhook, type WebhookPayload, formatSui, parseSui };
|
|
298
|
+
export { API_VERSION, type Agent, type AgentStats, type ApiError, BADGE_TIER, type Badge, type BadgeTier, CLAIM_STATUS, CLAIM_STATUS_LABELS, CLAIM_TYPE, CLAIM_TYPE_LABELS, type Claim, type ClaimStatus, type ClaimType, type Composite, type CompositeStep, FULLNODE_URLS, MIST_PER_SUI, MULTIPLIERS, NETWORKS, type Network, PRIORITY, PRIORITY_LABELS, PROTOCOL, type PaginatedResponse, type PriorityTier, STATUS, STATUS_LABELS, SUI_DECIMALS, SUI_TOKEN, type Skill, type SkillCertification, type SkillMetadata, type Task, type TaskEvent, type TaskInput, type TaskOutput, type TaskStatus, type TaskTemplate, VERIFICATION, VERIFICATION_LABELS, type VerificationType, type Webhook, type WebhookPayload, formatSui, parseSui };
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,10 @@ var index_exports = {};
|
|
|
22
22
|
__export(index_exports, {
|
|
23
23
|
API_VERSION: () => API_VERSION,
|
|
24
24
|
BADGE_TIER: () => BADGE_TIER,
|
|
25
|
+
CLAIM_STATUS: () => CLAIM_STATUS,
|
|
26
|
+
CLAIM_STATUS_LABELS: () => CLAIM_STATUS_LABELS,
|
|
27
|
+
CLAIM_TYPE: () => CLAIM_TYPE,
|
|
28
|
+
CLAIM_TYPE_LABELS: () => CLAIM_TYPE_LABELS,
|
|
25
29
|
FULLNODE_URLS: () => FULLNODE_URLS,
|
|
26
30
|
MIST_PER_SUI: () => MIST_PER_SUI,
|
|
27
31
|
MULTIPLIERS: () => MULTIPLIERS,
|
|
@@ -111,6 +115,30 @@ var BADGE_TIER = {
|
|
|
111
115
|
SILVER: 1,
|
|
112
116
|
GOLD: 2
|
|
113
117
|
};
|
|
118
|
+
var CLAIM_TYPE = {
|
|
119
|
+
PENDING: 0,
|
|
120
|
+
TWITTER: 1,
|
|
121
|
+
MOLTBOOK: 2,
|
|
122
|
+
GITHUB: 3,
|
|
123
|
+
WALLET: 4
|
|
124
|
+
};
|
|
125
|
+
var CLAIM_TYPE_LABELS = {
|
|
126
|
+
[CLAIM_TYPE.PENDING]: "Pending",
|
|
127
|
+
[CLAIM_TYPE.TWITTER]: "Twitter/X",
|
|
128
|
+
[CLAIM_TYPE.MOLTBOOK]: "Moltbook",
|
|
129
|
+
[CLAIM_TYPE.GITHUB]: "GitHub",
|
|
130
|
+
[CLAIM_TYPE.WALLET]: "Wallet Signature"
|
|
131
|
+
};
|
|
132
|
+
var CLAIM_STATUS = {
|
|
133
|
+
PENDING: 0,
|
|
134
|
+
VERIFIED: 1,
|
|
135
|
+
REVOKED: 2
|
|
136
|
+
};
|
|
137
|
+
var CLAIM_STATUS_LABELS = {
|
|
138
|
+
[CLAIM_STATUS.PENDING]: "Pending",
|
|
139
|
+
[CLAIM_STATUS.VERIFIED]: "Verified",
|
|
140
|
+
[CLAIM_STATUS.REVOKED]: "Revoked"
|
|
141
|
+
};
|
|
114
142
|
var SUI_TOKEN = {
|
|
115
143
|
PACKAGE_ID: "0x2",
|
|
116
144
|
MODULE: "sui",
|
|
@@ -153,6 +181,10 @@ var FULLNODE_URLS = {
|
|
|
153
181
|
0 && (module.exports = {
|
|
154
182
|
API_VERSION,
|
|
155
183
|
BADGE_TIER,
|
|
184
|
+
CLAIM_STATUS,
|
|
185
|
+
CLAIM_STATUS_LABELS,
|
|
186
|
+
CLAIM_TYPE,
|
|
187
|
+
CLAIM_TYPE_LABELS,
|
|
156
188
|
FULLNODE_URLS,
|
|
157
189
|
MIST_PER_SUI,
|
|
158
190
|
MULTIPLIERS,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/constants.ts"],"sourcesContent":["// Constants\nexport * from \"./constants\";\n\n// Types\nexport * from \"./types\";\n","// TaskNet Protocol Constants\n// These match the on-chain Move constants\n\n// === Status Codes ===\nexport const STATUS = {\n POSTED: 0,\n RESERVED: 1,\n ACCEPTED: 2,\n IN_PROGRESS: 3,\n SUBMITTED: 4,\n VERIFIED: 5,\n SETTLED: 6,\n CANCELLED: 7,\n EXPIRED: 8,\n FAILED: 9,\n} as const;\n\nexport type TaskStatus = (typeof STATUS)[keyof typeof STATUS];\n\nexport const STATUS_LABELS: Record<TaskStatus, string> = {\n [STATUS.POSTED]: \"Posted\",\n [STATUS.RESERVED]: \"Reserved\",\n [STATUS.ACCEPTED]: \"Accepted\",\n [STATUS.IN_PROGRESS]: \"InProgress\",\n [STATUS.SUBMITTED]: \"Submitted\",\n [STATUS.VERIFIED]: \"Verified\",\n [STATUS.SETTLED]: \"Settled\",\n [STATUS.CANCELLED]: \"Cancelled\",\n [STATUS.EXPIRED]: \"Expired\",\n [STATUS.FAILED]: \"Failed\",\n};\n\n// === Verification Types ===\nexport const VERIFICATION = {\n DETERMINISTIC: 0,\n REQUESTER_CONFIRM: 1,\n TIME_BOUND: 2,\n} as const;\n\nexport type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];\n\nexport const VERIFICATION_LABELS: Record<VerificationType, string> = {\n [VERIFICATION.DETERMINISTIC]: \"Deterministic\",\n [VERIFICATION.REQUESTER_CONFIRM]: \"RequesterConfirm\",\n [VERIFICATION.TIME_BOUND]: \"TimeBoundCompletion\",\n};\n\n// === Priority Tiers ===\nexport const PRIORITY = {\n STANDARD: 0,\n PRIORITY: 1,\n URGENT: 2,\n} as const;\n\nexport type PriorityTier = (typeof PRIORITY)[keyof typeof PRIORITY];\n\nexport const PRIORITY_LABELS: Record<PriorityTier, string> = {\n [PRIORITY.STANDARD]: \"Standard\",\n [PRIORITY.PRIORITY]: \"Priority\",\n [PRIORITY.URGENT]: \"Urgent\",\n};\n\n// === Protocol Constants ===\nexport const PROTOCOL = {\n FEE_BPS: 200, // 2%\n MIN_FEE_BPS: 50, // 0.5%\n MAX_FEE_BPS: 500, // 5%\n BPS_DENOMINATOR: 10_000,\n RESERVATION_DURATION_MS: 60_000, // 60 seconds\n FEE_CHANGE_TIMELOCK_MS: 604_800_000, // 7 days\n} as const;\n\n// === Priority Multipliers (default) ===\nexport const MULTIPLIERS = {\n STANDARD: 10_000, // 1.0x\n PRIORITY: 15_000, // 1.5x\n URGENT: 25_000, // 2.5x\n} as const;\n\n// === Badge Tiers ===\nexport const BADGE_TIER = {\n BRONZE: 0,\n SILVER: 1,\n GOLD: 2,\n} as const;\n\nexport type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];\n\n// === SUI (Native Token) ===\n// TaskNet uses native SUI for all payments\n// SUI has 9 decimals (1 SUI = 1_000_000_000 MIST)\nexport const SUI_TOKEN = {\n PACKAGE_ID: \"0x2\",\n MODULE: \"sui\",\n TYPE: \"SUI\",\n FULL_TYPE: \"0x2::sui::SUI\",\n DECIMALS: 9,\n MIST_PER_SUI: 1_000_000_000, // 10^9 - 1 SUI = 1_000_000_000 MIST\n MIN_PAYMENT: 1_000_000, // 0.001 SUI\n} as const;\n\n// Convenience re-exports (matching @mysten/sui/utils)\nexport const MIST_PER_SUI = BigInt(SUI_TOKEN.MIST_PER_SUI);\nexport const SUI_DECIMALS = SUI_TOKEN.DECIMALS;\n\n/**\n * Convert MIST to human-readable SUI amount\n * @param mist Raw MIST units (9 decimals)\n * @returns Formatted string with appropriate decimal places\n */\nexport function formatSui(mist: bigint | number | string): string {\n const value = typeof mist === 'bigint' ? mist : BigInt(mist);\n const whole = value / MIST_PER_SUI;\n const fraction = value % MIST_PER_SUI;\n const fractionStr = fraction.toString().padStart(9, '0').slice(0, 4);\n // Remove trailing zeros\n const trimmed = fractionStr.replace(/0+$/, '') || '0';\n return `${whole}.${trimmed} SUI`;\n}\n\n/**\n * Convert SUI amount to raw MIST\n * @param sui SUI amount (e.g., 1.5 for 1.5 SUI)\n * @returns Raw MIST as bigint\n */\nexport function parseSui(sui: number | string): bigint {\n const value = typeof sui === 'string' ? parseFloat(sui) : sui;\n return BigInt(Math.round(value * SUI_TOKEN.MIST_PER_SUI));\n}\n\n// === API ===\nexport const API_VERSION = \"0.3.0\";\n\n// === Networks ===\nexport const NETWORKS = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n DEVNET: \"devnet\",\n LOCALNET: \"localnet\",\n} as const;\n\nexport type Network = (typeof NETWORKS)[keyof typeof NETWORKS];\n\nexport const FULLNODE_URLS: Record<Network, string> = {\n mainnet: \"https://fullnode.mainnet.sui.io:443\",\n testnet: \"https://fullnode.testnet.sui.io:443\",\n devnet: \"https://fullnode.devnet.sui.io:443\",\n localnet: \"http://127.0.0.1:9000\",\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACIO,IAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AACV;AAIO,IAAM,gBAA4C;AAAA,EACvD,CAAC,OAAO,MAAM,GAAG;AAAA,EACjB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,WAAW,GAAG;AAAA,EACtB,CAAC,OAAO,SAAS,GAAG;AAAA,EACpB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,OAAO,GAAG;AAAA,EAClB,CAAC,OAAO,SAAS,GAAG;AAAA,EACpB,CAAC,OAAO,OAAO,GAAG;AAAA,EAClB,CAAC,OAAO,MAAM,GAAG;AACnB;AAGO,IAAM,eAAe;AAAA,EAC1B,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,YAAY;AACd;AAIO,IAAM,sBAAwD;AAAA,EACnE,CAAC,aAAa,aAAa,GAAG;AAAA,EAC9B,CAAC,aAAa,iBAAiB,GAAG;AAAA,EAClC,CAAC,aAAa,UAAU,GAAG;AAC7B;AAGO,IAAM,WAAW;AAAA,EACtB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AACV;AAIO,IAAM,kBAAgD;AAAA,EAC3D,CAAC,SAAS,QAAQ,GAAG;AAAA,EACrB,CAAC,SAAS,QAAQ,GAAG;AAAA,EACrB,CAAC,SAAS,MAAM,GAAG;AACrB;AAGO,IAAM,WAAW;AAAA,EACtB,SAAS;AAAA;AAAA,EACT,aAAa;AAAA;AAAA,EACb,aAAa;AAAA;AAAA,EACb,iBAAiB;AAAA,EACjB,yBAAyB;AAAA;AAAA,EACzB,wBAAwB;AAAA;AAC1B;AAGO,IAAM,cAAc;AAAA,EACzB,UAAU;AAAA;AAAA,EACV,UAAU;AAAA;AAAA,EACV,QAAQ;AAAA;AACV;AAGO,IAAM,aAAa;AAAA,EACxB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AACR;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/constants.ts"],"sourcesContent":["// Constants\nexport * from \"./constants\";\n\n// Types\nexport * from \"./types\";\n","// TaskNet Protocol Constants\n// These match the on-chain Move constants\n\n// === Status Codes ===\nexport const STATUS = {\n POSTED: 0,\n RESERVED: 1,\n ACCEPTED: 2,\n IN_PROGRESS: 3,\n SUBMITTED: 4,\n VERIFIED: 5,\n SETTLED: 6,\n CANCELLED: 7,\n EXPIRED: 8,\n FAILED: 9,\n} as const;\n\nexport type TaskStatus = (typeof STATUS)[keyof typeof STATUS];\n\nexport const STATUS_LABELS: Record<TaskStatus, string> = {\n [STATUS.POSTED]: \"Posted\",\n [STATUS.RESERVED]: \"Reserved\",\n [STATUS.ACCEPTED]: \"Accepted\",\n [STATUS.IN_PROGRESS]: \"InProgress\",\n [STATUS.SUBMITTED]: \"Submitted\",\n [STATUS.VERIFIED]: \"Verified\",\n [STATUS.SETTLED]: \"Settled\",\n [STATUS.CANCELLED]: \"Cancelled\",\n [STATUS.EXPIRED]: \"Expired\",\n [STATUS.FAILED]: \"Failed\",\n};\n\n// === Verification Types ===\nexport const VERIFICATION = {\n DETERMINISTIC: 0,\n REQUESTER_CONFIRM: 1,\n TIME_BOUND: 2,\n} as const;\n\nexport type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];\n\nexport const VERIFICATION_LABELS: Record<VerificationType, string> = {\n [VERIFICATION.DETERMINISTIC]: \"Deterministic\",\n [VERIFICATION.REQUESTER_CONFIRM]: \"RequesterConfirm\",\n [VERIFICATION.TIME_BOUND]: \"TimeBoundCompletion\",\n};\n\n// === Priority Tiers ===\nexport const PRIORITY = {\n STANDARD: 0,\n PRIORITY: 1,\n URGENT: 2,\n} as const;\n\nexport type PriorityTier = (typeof PRIORITY)[keyof typeof PRIORITY];\n\nexport const PRIORITY_LABELS: Record<PriorityTier, string> = {\n [PRIORITY.STANDARD]: \"Standard\",\n [PRIORITY.PRIORITY]: \"Priority\",\n [PRIORITY.URGENT]: \"Urgent\",\n};\n\n// === Protocol Constants ===\nexport const PROTOCOL = {\n FEE_BPS: 200, // 2%\n MIN_FEE_BPS: 50, // 0.5%\n MAX_FEE_BPS: 500, // 5%\n BPS_DENOMINATOR: 10_000,\n RESERVATION_DURATION_MS: 60_000, // 60 seconds\n FEE_CHANGE_TIMELOCK_MS: 604_800_000, // 7 days\n} as const;\n\n// === Priority Multipliers (default) ===\nexport const MULTIPLIERS = {\n STANDARD: 10_000, // 1.0x\n PRIORITY: 15_000, // 1.5x\n URGENT: 25_000, // 2.5x\n} as const;\n\n// === Badge Tiers ===\nexport const BADGE_TIER = {\n BRONZE: 0,\n SILVER: 1,\n GOLD: 2,\n} as const;\n\nexport type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];\n\n// === Claim Types (Off-Chain Identity Verification) ===\nexport const CLAIM_TYPE = {\n PENDING: 0,\n TWITTER: 1,\n MOLTBOOK: 2,\n GITHUB: 3,\n WALLET: 4,\n} as const;\n\nexport type ClaimType = (typeof CLAIM_TYPE)[keyof typeof CLAIM_TYPE];\n\nexport const CLAIM_TYPE_LABELS: Record<ClaimType, string> = {\n [CLAIM_TYPE.PENDING]: \"Pending\",\n [CLAIM_TYPE.TWITTER]: \"Twitter/X\",\n [CLAIM_TYPE.MOLTBOOK]: \"Moltbook\",\n [CLAIM_TYPE.GITHUB]: \"GitHub\",\n [CLAIM_TYPE.WALLET]: \"Wallet Signature\",\n};\n\n// === Claim Status ===\nexport const CLAIM_STATUS = {\n PENDING: 0,\n VERIFIED: 1,\n REVOKED: 2,\n} as const;\n\nexport type ClaimStatus = (typeof CLAIM_STATUS)[keyof typeof CLAIM_STATUS];\n\nexport const CLAIM_STATUS_LABELS: Record<ClaimStatus, string> = {\n [CLAIM_STATUS.PENDING]: \"Pending\",\n [CLAIM_STATUS.VERIFIED]: \"Verified\",\n [CLAIM_STATUS.REVOKED]: \"Revoked\",\n};\n\n// === SUI (Native Token) ===\n// TaskNet uses native SUI for all payments\n// SUI has 9 decimals (1 SUI = 1_000_000_000 MIST)\nexport const SUI_TOKEN = {\n PACKAGE_ID: \"0x2\",\n MODULE: \"sui\",\n TYPE: \"SUI\",\n FULL_TYPE: \"0x2::sui::SUI\",\n DECIMALS: 9,\n MIST_PER_SUI: 1_000_000_000, // 10^9 - 1 SUI = 1_000_000_000 MIST\n MIN_PAYMENT: 1_000_000, // 0.001 SUI\n} as const;\n\n// Convenience re-exports (matching @mysten/sui/utils)\nexport const MIST_PER_SUI = BigInt(SUI_TOKEN.MIST_PER_SUI);\nexport const SUI_DECIMALS = SUI_TOKEN.DECIMALS;\n\n/**\n * Convert MIST to human-readable SUI amount\n * @param mist Raw MIST units (9 decimals)\n * @returns Formatted string with appropriate decimal places\n */\nexport function formatSui(mist: bigint | number | string): string {\n const value = typeof mist === 'bigint' ? mist : BigInt(mist);\n const whole = value / MIST_PER_SUI;\n const fraction = value % MIST_PER_SUI;\n const fractionStr = fraction.toString().padStart(9, '0').slice(0, 4);\n // Remove trailing zeros\n const trimmed = fractionStr.replace(/0+$/, '') || '0';\n return `${whole}.${trimmed} SUI`;\n}\n\n/**\n * Convert SUI amount to raw MIST\n * @param sui SUI amount (e.g., 1.5 for 1.5 SUI)\n * @returns Raw MIST as bigint\n */\nexport function parseSui(sui: number | string): bigint {\n const value = typeof sui === 'string' ? parseFloat(sui) : sui;\n return BigInt(Math.round(value * SUI_TOKEN.MIST_PER_SUI));\n}\n\n// === API ===\nexport const API_VERSION = \"0.3.0\";\n\n// === Networks ===\nexport const NETWORKS = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n DEVNET: \"devnet\",\n LOCALNET: \"localnet\",\n} as const;\n\nexport type Network = (typeof NETWORKS)[keyof typeof NETWORKS];\n\nexport const FULLNODE_URLS: Record<Network, string> = {\n mainnet: \"https://fullnode.mainnet.sui.io:443\",\n testnet: \"https://fullnode.testnet.sui.io:443\",\n devnet: \"https://fullnode.devnet.sui.io:443\",\n localnet: \"http://127.0.0.1:9000\",\n};\n"],"mappings":"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","names":[]}
|
package/dist/index.mjs
CHANGED
|
@@ -69,6 +69,30 @@ var BADGE_TIER = {
|
|
|
69
69
|
SILVER: 1,
|
|
70
70
|
GOLD: 2
|
|
71
71
|
};
|
|
72
|
+
var CLAIM_TYPE = {
|
|
73
|
+
PENDING: 0,
|
|
74
|
+
TWITTER: 1,
|
|
75
|
+
MOLTBOOK: 2,
|
|
76
|
+
GITHUB: 3,
|
|
77
|
+
WALLET: 4
|
|
78
|
+
};
|
|
79
|
+
var CLAIM_TYPE_LABELS = {
|
|
80
|
+
[CLAIM_TYPE.PENDING]: "Pending",
|
|
81
|
+
[CLAIM_TYPE.TWITTER]: "Twitter/X",
|
|
82
|
+
[CLAIM_TYPE.MOLTBOOK]: "Moltbook",
|
|
83
|
+
[CLAIM_TYPE.GITHUB]: "GitHub",
|
|
84
|
+
[CLAIM_TYPE.WALLET]: "Wallet Signature"
|
|
85
|
+
};
|
|
86
|
+
var CLAIM_STATUS = {
|
|
87
|
+
PENDING: 0,
|
|
88
|
+
VERIFIED: 1,
|
|
89
|
+
REVOKED: 2
|
|
90
|
+
};
|
|
91
|
+
var CLAIM_STATUS_LABELS = {
|
|
92
|
+
[CLAIM_STATUS.PENDING]: "Pending",
|
|
93
|
+
[CLAIM_STATUS.VERIFIED]: "Verified",
|
|
94
|
+
[CLAIM_STATUS.REVOKED]: "Revoked"
|
|
95
|
+
};
|
|
72
96
|
var SUI_TOKEN = {
|
|
73
97
|
PACKAGE_ID: "0x2",
|
|
74
98
|
MODULE: "sui",
|
|
@@ -110,6 +134,10 @@ var FULLNODE_URLS = {
|
|
|
110
134
|
export {
|
|
111
135
|
API_VERSION,
|
|
112
136
|
BADGE_TIER,
|
|
137
|
+
CLAIM_STATUS,
|
|
138
|
+
CLAIM_STATUS_LABELS,
|
|
139
|
+
CLAIM_TYPE,
|
|
140
|
+
CLAIM_TYPE_LABELS,
|
|
113
141
|
FULLNODE_URLS,
|
|
114
142
|
MIST_PER_SUI,
|
|
115
143
|
MULTIPLIERS,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// TaskNet Protocol Constants\n// These match the on-chain Move constants\n\n// === Status Codes ===\nexport const STATUS = {\n POSTED: 0,\n RESERVED: 1,\n ACCEPTED: 2,\n IN_PROGRESS: 3,\n SUBMITTED: 4,\n VERIFIED: 5,\n SETTLED: 6,\n CANCELLED: 7,\n EXPIRED: 8,\n FAILED: 9,\n} as const;\n\nexport type TaskStatus = (typeof STATUS)[keyof typeof STATUS];\n\nexport const STATUS_LABELS: Record<TaskStatus, string> = {\n [STATUS.POSTED]: \"Posted\",\n [STATUS.RESERVED]: \"Reserved\",\n [STATUS.ACCEPTED]: \"Accepted\",\n [STATUS.IN_PROGRESS]: \"InProgress\",\n [STATUS.SUBMITTED]: \"Submitted\",\n [STATUS.VERIFIED]: \"Verified\",\n [STATUS.SETTLED]: \"Settled\",\n [STATUS.CANCELLED]: \"Cancelled\",\n [STATUS.EXPIRED]: \"Expired\",\n [STATUS.FAILED]: \"Failed\",\n};\n\n// === Verification Types ===\nexport const VERIFICATION = {\n DETERMINISTIC: 0,\n REQUESTER_CONFIRM: 1,\n TIME_BOUND: 2,\n} as const;\n\nexport type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];\n\nexport const VERIFICATION_LABELS: Record<VerificationType, string> = {\n [VERIFICATION.DETERMINISTIC]: \"Deterministic\",\n [VERIFICATION.REQUESTER_CONFIRM]: \"RequesterConfirm\",\n [VERIFICATION.TIME_BOUND]: \"TimeBoundCompletion\",\n};\n\n// === Priority Tiers ===\nexport const PRIORITY = {\n STANDARD: 0,\n PRIORITY: 1,\n URGENT: 2,\n} as const;\n\nexport type PriorityTier = (typeof PRIORITY)[keyof typeof PRIORITY];\n\nexport const PRIORITY_LABELS: Record<PriorityTier, string> = {\n [PRIORITY.STANDARD]: \"Standard\",\n [PRIORITY.PRIORITY]: \"Priority\",\n [PRIORITY.URGENT]: \"Urgent\",\n};\n\n// === Protocol Constants ===\nexport const PROTOCOL = {\n FEE_BPS: 200, // 2%\n MIN_FEE_BPS: 50, // 0.5%\n MAX_FEE_BPS: 500, // 5%\n BPS_DENOMINATOR: 10_000,\n RESERVATION_DURATION_MS: 60_000, // 60 seconds\n FEE_CHANGE_TIMELOCK_MS: 604_800_000, // 7 days\n} as const;\n\n// === Priority Multipliers (default) ===\nexport const MULTIPLIERS = {\n STANDARD: 10_000, // 1.0x\n PRIORITY: 15_000, // 1.5x\n URGENT: 25_000, // 2.5x\n} as const;\n\n// === Badge Tiers ===\nexport const BADGE_TIER = {\n BRONZE: 0,\n SILVER: 1,\n GOLD: 2,\n} as const;\n\nexport type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];\n\n// === SUI (Native Token) ===\n// TaskNet uses native SUI for all payments\n// SUI has 9 decimals (1 SUI = 1_000_000_000 MIST)\nexport const SUI_TOKEN = {\n PACKAGE_ID: \"0x2\",\n MODULE: \"sui\",\n TYPE: \"SUI\",\n FULL_TYPE: \"0x2::sui::SUI\",\n DECIMALS: 9,\n MIST_PER_SUI: 1_000_000_000, // 10^9 - 1 SUI = 1_000_000_000 MIST\n MIN_PAYMENT: 1_000_000, // 0.001 SUI\n} as const;\n\n// Convenience re-exports (matching @mysten/sui/utils)\nexport const MIST_PER_SUI = BigInt(SUI_TOKEN.MIST_PER_SUI);\nexport const SUI_DECIMALS = SUI_TOKEN.DECIMALS;\n\n/**\n * Convert MIST to human-readable SUI amount\n * @param mist Raw MIST units (9 decimals)\n * @returns Formatted string with appropriate decimal places\n */\nexport function formatSui(mist: bigint | number | string): string {\n const value = typeof mist === 'bigint' ? mist : BigInt(mist);\n const whole = value / MIST_PER_SUI;\n const fraction = value % MIST_PER_SUI;\n const fractionStr = fraction.toString().padStart(9, '0').slice(0, 4);\n // Remove trailing zeros\n const trimmed = fractionStr.replace(/0+$/, '') || '0';\n return `${whole}.${trimmed} SUI`;\n}\n\n/**\n * Convert SUI amount to raw MIST\n * @param sui SUI amount (e.g., 1.5 for 1.5 SUI)\n * @returns Raw MIST as bigint\n */\nexport function parseSui(sui: number | string): bigint {\n const value = typeof sui === 'string' ? parseFloat(sui) : sui;\n return BigInt(Math.round(value * SUI_TOKEN.MIST_PER_SUI));\n}\n\n// === API ===\nexport const API_VERSION = \"0.3.0\";\n\n// === Networks ===\nexport const NETWORKS = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n DEVNET: \"devnet\",\n LOCALNET: \"localnet\",\n} as const;\n\nexport type Network = (typeof NETWORKS)[keyof typeof NETWORKS];\n\nexport const FULLNODE_URLS: Record<Network, string> = {\n mainnet: \"https://fullnode.mainnet.sui.io:443\",\n testnet: \"https://fullnode.testnet.sui.io:443\",\n devnet: \"https://fullnode.devnet.sui.io:443\",\n localnet: \"http://127.0.0.1:9000\",\n};\n"],"mappings":";AAIO,IAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AACV;AAIO,IAAM,gBAA4C;AAAA,EACvD,CAAC,OAAO,MAAM,GAAG;AAAA,EACjB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,WAAW,GAAG;AAAA,EACtB,CAAC,OAAO,SAAS,GAAG;AAAA,EACpB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,OAAO,GAAG;AAAA,EAClB,CAAC,OAAO,SAAS,GAAG;AAAA,EACpB,CAAC,OAAO,OAAO,GAAG;AAAA,EAClB,CAAC,OAAO,MAAM,GAAG;AACnB;AAGO,IAAM,eAAe;AAAA,EAC1B,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,YAAY;AACd;AAIO,IAAM,sBAAwD;AAAA,EACnE,CAAC,aAAa,aAAa,GAAG;AAAA,EAC9B,CAAC,aAAa,iBAAiB,GAAG;AAAA,EAClC,CAAC,aAAa,UAAU,GAAG;AAC7B;AAGO,IAAM,WAAW;AAAA,EACtB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AACV;AAIO,IAAM,kBAAgD;AAAA,EAC3D,CAAC,SAAS,QAAQ,GAAG;AAAA,EACrB,CAAC,SAAS,QAAQ,GAAG;AAAA,EACrB,CAAC,SAAS,MAAM,GAAG;AACrB;AAGO,IAAM,WAAW;AAAA,EACtB,SAAS;AAAA;AAAA,EACT,aAAa;AAAA;AAAA,EACb,aAAa;AAAA;AAAA,EACb,iBAAiB;AAAA,EACjB,yBAAyB;AAAA;AAAA,EACzB,wBAAwB;AAAA;AAC1B;AAGO,IAAM,cAAc;AAAA,EACzB,UAAU;AAAA;AAAA,EACV,UAAU;AAAA;AAAA,EACV,QAAQ;AAAA;AACV;AAGO,IAAM,aAAa;AAAA,EACxB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AACR;
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// TaskNet Protocol Constants\n// These match the on-chain Move constants\n\n// === Status Codes ===\nexport const STATUS = {\n POSTED: 0,\n RESERVED: 1,\n ACCEPTED: 2,\n IN_PROGRESS: 3,\n SUBMITTED: 4,\n VERIFIED: 5,\n SETTLED: 6,\n CANCELLED: 7,\n EXPIRED: 8,\n FAILED: 9,\n} as const;\n\nexport type TaskStatus = (typeof STATUS)[keyof typeof STATUS];\n\nexport const STATUS_LABELS: Record<TaskStatus, string> = {\n [STATUS.POSTED]: \"Posted\",\n [STATUS.RESERVED]: \"Reserved\",\n [STATUS.ACCEPTED]: \"Accepted\",\n [STATUS.IN_PROGRESS]: \"InProgress\",\n [STATUS.SUBMITTED]: \"Submitted\",\n [STATUS.VERIFIED]: \"Verified\",\n [STATUS.SETTLED]: \"Settled\",\n [STATUS.CANCELLED]: \"Cancelled\",\n [STATUS.EXPIRED]: \"Expired\",\n [STATUS.FAILED]: \"Failed\",\n};\n\n// === Verification Types ===\nexport const VERIFICATION = {\n DETERMINISTIC: 0,\n REQUESTER_CONFIRM: 1,\n TIME_BOUND: 2,\n} as const;\n\nexport type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];\n\nexport const VERIFICATION_LABELS: Record<VerificationType, string> = {\n [VERIFICATION.DETERMINISTIC]: \"Deterministic\",\n [VERIFICATION.REQUESTER_CONFIRM]: \"RequesterConfirm\",\n [VERIFICATION.TIME_BOUND]: \"TimeBoundCompletion\",\n};\n\n// === Priority Tiers ===\nexport const PRIORITY = {\n STANDARD: 0,\n PRIORITY: 1,\n URGENT: 2,\n} as const;\n\nexport type PriorityTier = (typeof PRIORITY)[keyof typeof PRIORITY];\n\nexport const PRIORITY_LABELS: Record<PriorityTier, string> = {\n [PRIORITY.STANDARD]: \"Standard\",\n [PRIORITY.PRIORITY]: \"Priority\",\n [PRIORITY.URGENT]: \"Urgent\",\n};\n\n// === Protocol Constants ===\nexport const PROTOCOL = {\n FEE_BPS: 200, // 2%\n MIN_FEE_BPS: 50, // 0.5%\n MAX_FEE_BPS: 500, // 5%\n BPS_DENOMINATOR: 10_000,\n RESERVATION_DURATION_MS: 60_000, // 60 seconds\n FEE_CHANGE_TIMELOCK_MS: 604_800_000, // 7 days\n} as const;\n\n// === Priority Multipliers (default) ===\nexport const MULTIPLIERS = {\n STANDARD: 10_000, // 1.0x\n PRIORITY: 15_000, // 1.5x\n URGENT: 25_000, // 2.5x\n} as const;\n\n// === Badge Tiers ===\nexport const BADGE_TIER = {\n BRONZE: 0,\n SILVER: 1,\n GOLD: 2,\n} as const;\n\nexport type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];\n\n// === Claim Types (Off-Chain Identity Verification) ===\nexport const CLAIM_TYPE = {\n PENDING: 0,\n TWITTER: 1,\n MOLTBOOK: 2,\n GITHUB: 3,\n WALLET: 4,\n} as const;\n\nexport type ClaimType = (typeof CLAIM_TYPE)[keyof typeof CLAIM_TYPE];\n\nexport const CLAIM_TYPE_LABELS: Record<ClaimType, string> = {\n [CLAIM_TYPE.PENDING]: \"Pending\",\n [CLAIM_TYPE.TWITTER]: \"Twitter/X\",\n [CLAIM_TYPE.MOLTBOOK]: \"Moltbook\",\n [CLAIM_TYPE.GITHUB]: \"GitHub\",\n [CLAIM_TYPE.WALLET]: \"Wallet Signature\",\n};\n\n// === Claim Status ===\nexport const CLAIM_STATUS = {\n PENDING: 0,\n VERIFIED: 1,\n REVOKED: 2,\n} as const;\n\nexport type ClaimStatus = (typeof CLAIM_STATUS)[keyof typeof CLAIM_STATUS];\n\nexport const CLAIM_STATUS_LABELS: Record<ClaimStatus, string> = {\n [CLAIM_STATUS.PENDING]: \"Pending\",\n [CLAIM_STATUS.VERIFIED]: \"Verified\",\n [CLAIM_STATUS.REVOKED]: \"Revoked\",\n};\n\n// === SUI (Native Token) ===\n// TaskNet uses native SUI for all payments\n// SUI has 9 decimals (1 SUI = 1_000_000_000 MIST)\nexport const SUI_TOKEN = {\n PACKAGE_ID: \"0x2\",\n MODULE: \"sui\",\n TYPE: \"SUI\",\n FULL_TYPE: \"0x2::sui::SUI\",\n DECIMALS: 9,\n MIST_PER_SUI: 1_000_000_000, // 10^9 - 1 SUI = 1_000_000_000 MIST\n MIN_PAYMENT: 1_000_000, // 0.001 SUI\n} as const;\n\n// Convenience re-exports (matching @mysten/sui/utils)\nexport const MIST_PER_SUI = BigInt(SUI_TOKEN.MIST_PER_SUI);\nexport const SUI_DECIMALS = SUI_TOKEN.DECIMALS;\n\n/**\n * Convert MIST to human-readable SUI amount\n * @param mist Raw MIST units (9 decimals)\n * @returns Formatted string with appropriate decimal places\n */\nexport function formatSui(mist: bigint | number | string): string {\n const value = typeof mist === 'bigint' ? mist : BigInt(mist);\n const whole = value / MIST_PER_SUI;\n const fraction = value % MIST_PER_SUI;\n const fractionStr = fraction.toString().padStart(9, '0').slice(0, 4);\n // Remove trailing zeros\n const trimmed = fractionStr.replace(/0+$/, '') || '0';\n return `${whole}.${trimmed} SUI`;\n}\n\n/**\n * Convert SUI amount to raw MIST\n * @param sui SUI amount (e.g., 1.5 for 1.5 SUI)\n * @returns Raw MIST as bigint\n */\nexport function parseSui(sui: number | string): bigint {\n const value = typeof sui === 'string' ? parseFloat(sui) : sui;\n return BigInt(Math.round(value * SUI_TOKEN.MIST_PER_SUI));\n}\n\n// === API ===\nexport const API_VERSION = \"0.3.0\";\n\n// === Networks ===\nexport const NETWORKS = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n DEVNET: \"devnet\",\n LOCALNET: \"localnet\",\n} as const;\n\nexport type Network = (typeof NETWORKS)[keyof typeof NETWORKS];\n\nexport const FULLNODE_URLS: Record<Network, string> = {\n mainnet: \"https://fullnode.mainnet.sui.io:443\",\n testnet: \"https://fullnode.testnet.sui.io:443\",\n devnet: \"https://fullnode.devnet.sui.io:443\",\n localnet: \"http://127.0.0.1:9000\",\n};\n"],"mappings":";AAIO,IAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AACV;AAIO,IAAM,gBAA4C;AAAA,EACvD,CAAC,OAAO,MAAM,GAAG;AAAA,EACjB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,WAAW,GAAG;AAAA,EACtB,CAAC,OAAO,SAAS,GAAG;AAAA,EACpB,CAAC,OAAO,QAAQ,GAAG;AAAA,EACnB,CAAC,OAAO,OAAO,GAAG;AAAA,EAClB,CAAC,OAAO,SAAS,GAAG;AAAA,EACpB,CAAC,OAAO,OAAO,GAAG;AAAA,EAClB,CAAC,OAAO,MAAM,GAAG;AACnB;AAGO,IAAM,eAAe;AAAA,EAC1B,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,YAAY;AACd;AAIO,IAAM,sBAAwD;AAAA,EACnE,CAAC,aAAa,aAAa,GAAG;AAAA,EAC9B,CAAC,aAAa,iBAAiB,GAAG;AAAA,EAClC,CAAC,aAAa,UAAU,GAAG;AAC7B;AAGO,IAAM,WAAW;AAAA,EACtB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AACV;AAIO,IAAM,kBAAgD;AAAA,EAC3D,CAAC,SAAS,QAAQ,GAAG;AAAA,EACrB,CAAC,SAAS,QAAQ,GAAG;AAAA,EACrB,CAAC,SAAS,MAAM,GAAG;AACrB;AAGO,IAAM,WAAW;AAAA,EACtB,SAAS;AAAA;AAAA,EACT,aAAa;AAAA;AAAA,EACb,aAAa;AAAA;AAAA,EACb,iBAAiB;AAAA,EACjB,yBAAyB;AAAA;AAAA,EACzB,wBAAwB;AAAA;AAC1B;AAGO,IAAM,cAAc;AAAA,EACzB,UAAU;AAAA;AAAA,EACV,UAAU;AAAA;AAAA,EACV,QAAQ;AAAA;AACV;AAGO,IAAM,aAAa;AAAA,EACxB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AACR;AAKO,IAAM,aAAa;AAAA,EACxB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AACV;AAIO,IAAM,oBAA+C;AAAA,EAC1D,CAAC,WAAW,OAAO,GAAG;AAAA,EACtB,CAAC,WAAW,OAAO,GAAG;AAAA,EACtB,CAAC,WAAW,QAAQ,GAAG;AAAA,EACvB,CAAC,WAAW,MAAM,GAAG;AAAA,EACrB,CAAC,WAAW,MAAM,GAAG;AACvB;AAGO,IAAM,eAAe;AAAA,EAC1B,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AACX;AAIO,IAAM,sBAAmD;AAAA,EAC9D,CAAC,aAAa,OAAO,GAAG;AAAA,EACxB,CAAC,aAAa,QAAQ,GAAG;AAAA,EACzB,CAAC,aAAa,OAAO,GAAG;AAC1B;AAKO,IAAM,YAAY;AAAA,EACvB,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,cAAc;AAAA;AAAA,EACd,aAAa;AAAA;AACf;AAGO,IAAM,eAAe,OAAO,UAAU,YAAY;AAClD,IAAM,eAAe,UAAU;AAO/B,SAAS,UAAU,MAAwC;AAChE,QAAM,QAAQ,OAAO,SAAS,WAAW,OAAO,OAAO,IAAI;AAC3D,QAAM,QAAQ,QAAQ;AACtB,QAAM,WAAW,QAAQ;AACzB,QAAM,cAAc,SAAS,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE,MAAM,GAAG,CAAC;AAEnE,QAAM,UAAU,YAAY,QAAQ,OAAO,EAAE,KAAK;AAClD,SAAO,GAAG,KAAK,IAAI,OAAO;AAC5B;AAOO,SAAS,SAAS,KAA8B;AACrD,QAAM,QAAQ,OAAO,QAAQ,WAAW,WAAW,GAAG,IAAI;AAC1D,SAAO,OAAO,KAAK,MAAM,QAAQ,UAAU,YAAY,CAAC;AAC1D;AAGO,IAAM,cAAc;AAGpB,IAAM,WAAW;AAAA,EACtB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AACZ;AAIO,IAAM,gBAAyC;AAAA,EACpD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AACZ;","names":[]}
|