@shadow-corp/nearconnect 1.0.1 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/NearConnector.d.ts +29 -0
- package/build/NearConnector.js +96 -0
- package/build/NearConnector.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +7 -2
- package/build/index.js.map +1 -1
- package/build/types.d.ts +5 -0
- package/build/wallets/injected/adapter.d.ts +47 -0
- package/build/wallets/injected/adapter.js +233 -0
- package/build/wallets/injected/adapter.js.map +1 -0
- package/build/wallets/injected/detector.d.ts +82 -0
- package/build/wallets/injected/detector.js +237 -0
- package/build/wallets/injected/detector.js.map +1 -0
- package/build/wallets/injected/index.d.ts +10 -0
- package/build/wallets/injected/index.js +15 -0
- package/build/wallets/injected/index.js.map +1 -0
- package/build/wallets/injected/manager.d.ts +51 -0
- package/build/wallets/injected/manager.js +94 -0
- package/build/wallets/injected/manager.js.map +1 -0
- package/package.json +1 -1
package/build/NearConnector.d.ts
CHANGED
|
@@ -81,9 +81,21 @@ export declare class NearConnector {
|
|
|
81
81
|
private persistenceEnabled;
|
|
82
82
|
private connectedAccounts;
|
|
83
83
|
private activeAccountId;
|
|
84
|
+
private injectedManager;
|
|
84
85
|
readonly whenManifestLoaded: Promise<void>;
|
|
86
|
+
readonly whenInjectedWalletsDetected: Promise<void>;
|
|
85
87
|
readonly whenSessionRestored: Promise<Session | null>;
|
|
86
88
|
constructor(options?: NearConnectorOptions);
|
|
89
|
+
/**
|
|
90
|
+
* Initialize the connector and wait for manifest + session restoration + injected wallet detection.
|
|
91
|
+
* This is the recommended way to set up the connector.
|
|
92
|
+
* Returns the restored session if one exists, null otherwise.
|
|
93
|
+
*/
|
|
94
|
+
init(): Promise<Session | null>;
|
|
95
|
+
/**
|
|
96
|
+
* Check if the connector is ready (manifest loaded).
|
|
97
|
+
*/
|
|
98
|
+
get isReady(): boolean;
|
|
87
99
|
get availableWallets(): NearWalletBase[];
|
|
88
100
|
private _handleNearWalletInjected;
|
|
89
101
|
private _loadManifest;
|
|
@@ -97,10 +109,27 @@ export declare class NearConnector {
|
|
|
97
109
|
selectWallet(): Promise<string>;
|
|
98
110
|
connect(id?: string): Promise<NearWalletBase>;
|
|
99
111
|
disconnect(wallet?: NearWalletBase): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Try to get the connected wallet without throwing.
|
|
114
|
+
* Returns null if no wallet is connected or no accounts found.
|
|
115
|
+
* Use this for checking connection state safely.
|
|
116
|
+
*/
|
|
117
|
+
tryGetConnectedWallet(): Promise<{
|
|
118
|
+
wallet: NearWalletBase;
|
|
119
|
+
accounts: Account[];
|
|
120
|
+
} | null>;
|
|
121
|
+
/**
|
|
122
|
+
* Get the connected wallet. Throws if no wallet is connected.
|
|
123
|
+
* For a non-throwing version, use tryGetConnectedWallet().
|
|
124
|
+
*/
|
|
100
125
|
getConnectedWallet(): Promise<{
|
|
101
126
|
wallet: NearWalletBase;
|
|
102
127
|
accounts: Account[];
|
|
103
128
|
}>;
|
|
129
|
+
/**
|
|
130
|
+
* Check if a wallet is currently connected (non-throwing).
|
|
131
|
+
*/
|
|
132
|
+
isConnected(): Promise<boolean>;
|
|
104
133
|
wallet(id?: string | null): Promise<NearWalletBase>;
|
|
105
134
|
on<K extends keyof EventMap>(event: K, callback: (payload: EventMap[K]) => void): void;
|
|
106
135
|
once<K extends keyof EventMap>(event: K, callback: (payload: EventMap[K]) => void): void;
|
package/build/NearConnector.js
CHANGED
|
@@ -13,6 +13,7 @@ const ParentFrameWallet_1 = require("./ParentFrameWallet");
|
|
|
13
13
|
const InjectedWallet_1 = require("./InjectedWallet");
|
|
14
14
|
const SandboxedWallet_1 = require("./SandboxedWallet");
|
|
15
15
|
const errors_1 = require("./errors");
|
|
16
|
+
const injected_1 = require("./wallets/injected");
|
|
16
17
|
const defaultManifests = [
|
|
17
18
|
"https://raw.githubusercontent.com/hot-dao/near-selector/refs/heads/main/repository/manifest.json",
|
|
18
19
|
"https://cdn.jsdelivr.net/gh/azbang/hot-connector/repository/manifest.json",
|
|
@@ -37,7 +38,10 @@ class NearConnector {
|
|
|
37
38
|
// Multi-account state
|
|
38
39
|
connectedAccounts = [];
|
|
39
40
|
activeAccountId = null;
|
|
41
|
+
// Injected wallet manager
|
|
42
|
+
injectedManager;
|
|
40
43
|
whenManifestLoaded;
|
|
44
|
+
whenInjectedWalletsDetected;
|
|
41
45
|
whenSessionRestored;
|
|
42
46
|
constructor(options) {
|
|
43
47
|
this.db = new indexdb_1.default("hot-connector", "wallets");
|
|
@@ -90,6 +94,39 @@ class NearConnector {
|
|
|
90
94
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
91
95
|
resolve();
|
|
92
96
|
});
|
|
97
|
+
// Initialize injected wallet manager with detection callback
|
|
98
|
+
this.injectedManager = new injected_1.InjectedWalletManager({
|
|
99
|
+
detectionTimeout: 2000,
|
|
100
|
+
onDetected: (wallets) => {
|
|
101
|
+
// Add newly detected wallets (avoiding duplicates)
|
|
102
|
+
for (const wallet of wallets) {
|
|
103
|
+
if (!this.wallets.some((w) => w.manifest.id === wallet.manifest.id)) {
|
|
104
|
+
this.wallets.unshift(wallet);
|
|
105
|
+
this.events.emit("wallet:detected", {
|
|
106
|
+
walletId: wallet.manifest.id,
|
|
107
|
+
name: wallet.manifest.name,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
this.events.emit("selector:walletsChanged", {});
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
// Start injected wallet detection
|
|
115
|
+
this.whenInjectedWalletsDetected = this.injectedManager.init().then((wallets) => {
|
|
116
|
+
// Add detected wallets to the list
|
|
117
|
+
for (const wallet of wallets) {
|
|
118
|
+
if (!this.wallets.some((w) => w.manifest.id === wallet.manifest.id)) {
|
|
119
|
+
this.wallets.unshift(wallet);
|
|
120
|
+
this.events.emit("wallet:detected", {
|
|
121
|
+
walletId: wallet.manifest.id,
|
|
122
|
+
name: wallet.manifest.name,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (wallets.length > 0) {
|
|
127
|
+
this.events.emit("selector:walletsChanged", {});
|
|
128
|
+
}
|
|
129
|
+
});
|
|
93
130
|
if (typeof window !== "undefined") {
|
|
94
131
|
window.addEventListener("near-wallet-injected", this._handleNearWalletInjected);
|
|
95
132
|
window.dispatchEvent(new Event("near-selector-ready"));
|
|
@@ -145,6 +182,31 @@ class NearConnector {
|
|
|
145
182
|
return null;
|
|
146
183
|
});
|
|
147
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Initialize the connector and wait for manifest + session restoration + injected wallet detection.
|
|
187
|
+
* This is the recommended way to set up the connector.
|
|
188
|
+
* Returns the restored session if one exists, null otherwise.
|
|
189
|
+
*/
|
|
190
|
+
async init() {
|
|
191
|
+
try {
|
|
192
|
+
await Promise.all([
|
|
193
|
+
this.whenManifestLoaded,
|
|
194
|
+
this.whenInjectedWalletsDetected,
|
|
195
|
+
]);
|
|
196
|
+
const session = await this.whenSessionRestored;
|
|
197
|
+
return session;
|
|
198
|
+
}
|
|
199
|
+
catch (e) {
|
|
200
|
+
this.logger?.log("Initialization error (non-fatal)", e);
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check if the connector is ready (manifest loaded).
|
|
206
|
+
*/
|
|
207
|
+
get isReady() {
|
|
208
|
+
return this.manifest.wallets.length > 0;
|
|
209
|
+
}
|
|
148
210
|
get availableWallets() {
|
|
149
211
|
const wallets = this.wallets.filter((wallet) => {
|
|
150
212
|
return Object.entries(this.features).every(([key, value]) => {
|
|
@@ -305,6 +367,33 @@ class NearConnector {
|
|
|
305
367
|
throw walletError;
|
|
306
368
|
}
|
|
307
369
|
}
|
|
370
|
+
/**
|
|
371
|
+
* Try to get the connected wallet without throwing.
|
|
372
|
+
* Returns null if no wallet is connected or no accounts found.
|
|
373
|
+
* Use this for checking connection state safely.
|
|
374
|
+
*/
|
|
375
|
+
async tryGetConnectedWallet() {
|
|
376
|
+
try {
|
|
377
|
+
await this.whenManifestLoaded.catch(() => { });
|
|
378
|
+
const id = await this.storage.get("selected-wallet");
|
|
379
|
+
if (!id)
|
|
380
|
+
return null;
|
|
381
|
+
const wallet = this.wallets.find((wallet) => wallet.manifest.id === id);
|
|
382
|
+
if (!wallet)
|
|
383
|
+
return null;
|
|
384
|
+
const accounts = await wallet.getAccounts();
|
|
385
|
+
if (!accounts?.length)
|
|
386
|
+
return null;
|
|
387
|
+
return { wallet, accounts };
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Get the connected wallet. Throws if no wallet is connected.
|
|
395
|
+
* For a non-throwing version, use tryGetConnectedWallet().
|
|
396
|
+
*/
|
|
308
397
|
async getConnectedWallet() {
|
|
309
398
|
await this.whenManifestLoaded.catch(() => { });
|
|
310
399
|
const id = await this.storage.get("selected-wallet");
|
|
@@ -325,6 +414,13 @@ class NearConnector {
|
|
|
325
414
|
}
|
|
326
415
|
return { wallet, accounts };
|
|
327
416
|
}
|
|
417
|
+
/**
|
|
418
|
+
* Check if a wallet is currently connected (non-throwing).
|
|
419
|
+
*/
|
|
420
|
+
async isConnected() {
|
|
421
|
+
const result = await this.tryGetConnectedWallet();
|
|
422
|
+
return result !== null;
|
|
423
|
+
}
|
|
328
424
|
async wallet(id) {
|
|
329
425
|
await this.whenManifestLoaded.catch(() => { });
|
|
330
426
|
if (!id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NearConnector.js","sourceRoot":"","sources":["../src/NearConnector.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAgD;AAChD,gEAA6D;AAC7D,+CAA8D;AAC9D,+CAA4D;AAC5D,gEAA0C;AAG1C,2DAAwD;AACxD,qDAAkD;AAClD,uDAAkD;AAElD,qCAAqG;AA0DrG,MAAM,gBAAgB,GAAG;IACvB,kGAAkG;IAClG,2EAA2E;CAC5E,CAAC;AAEF,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAE1D,MAAa,aAAa;IAChB,OAAO,CAAc;IACpB,MAAM,CAAyB;IAC/B,EAAE,CAAY;IACd,OAAO,CAAiB;IACjC,MAAM,CAAU;IAEhB,OAAO,GAAqB,EAAE,CAAC;IAC/B,QAAQ,GAAmD,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC7F,QAAQ,GAA4B,EAAE,CAAC;IACvC,OAAO,GAAY,SAAS,CAAC;IAE7B,SAAS,GAA+C,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrF,UAAU,CAAwD;IAClE,aAAa,CAA0D;IAEvE,eAAe,GAAa,EAAE,CAAC;IAC/B,WAAW,CAAW;IACd,kBAAkB,CAAU;IAEpC,sBAAsB;IACd,iBAAiB,GAAuB,EAAE,CAAC;IAC3C,eAAe,GAAkB,IAAI,CAAC;IAErC,kBAAkB,CAAgB;IAClC,mBAAmB,CAA0B;IAEtD,YAAY,OAA8B;QACxC,IAAI,CAAC,EAAE,GAAG,IAAI,iBAAS,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,sBAAY,EAAE,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,qBAAY,EAAY,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAE9B,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,SAAS,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;QAE5C,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAEpE,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,MAAM,CAAC;QAElC,sBAAsB;QACtB,IAAI,CAAC,kBAAkB,GAAG,OAAO,EAAE,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAc,CAAC;YAChC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO;YACtD,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU;YAC5C,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;YACpC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,IAAI,IAAI;YAC1D,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC7B,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,gBAAgB,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACtC,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACtD,IAAI,OAAO,EAAE,QAAQ,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACtE,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/G,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YACzE,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,4BAA4B;YAEtD,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9D,2EAA2E;gBAC3E,IAAI,MAAM,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa;oBAAE,OAAO,KAAK,CAAC;gBAC1E,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAAE,OAAO,KAAK,CAAC,CAAC,mBAAmB;gBACzD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,gBAAgB,CAAM,sBAAsB,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACrF,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACjD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;oBAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC9F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,qCAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;oBAChD,IAAI,IAAI,CAAC,WAAW;wBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE;YAChC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAqB,CAAC;gBAClE,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACjE,IAAI,CAAC,IAAI,CAAC,kBAAkB;gBAAE,OAAO,IAAI,CAAC;YAE1C,2BAA2B;YAC3B,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAChD,IAAI,OAAO,EAAE,CAAC;gBACZ,oDAAoD;gBACpD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC5E,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;wBACxE,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;4BACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;4BAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;4BACvE,OAAO,OAAO,CAAC;wBACjB,CAAC;oBACH,CAAC;oBACD,wDAAwD;oBACxD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;oBACjD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,gBAAgB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC1D,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAA2B,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACpF,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO;gBAAE,OAAO,KAAK,CAAC;YACnF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,yBAAyB,GAAG,CAAC,KAA8B,EAAE,EAAE;QACrE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,+BAAc,CAAC,IAAI,EAAE,KAAK,CAAC,MAAa,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,WAAoB;QAC9C,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzE,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,SAAS;YAC9B,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,sBAAsB;QACjD,CAAC;QAED,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,kBAAS,CAAC,oBAAoB;YACpC,OAAO,EAAE,kDAAkD;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA8B,EAAE,UAAiE;QACnH,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO;QACrC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,IAAI,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAwB;QAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACvF,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO;QAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,+BAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAA6B;QACrD,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEpH,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,+BAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QAEhD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7G,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAChE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7G,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAI,mCAAgB,CAAC;gBACjC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC/D,qBAAqB,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACvE,kBAAkB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAC9E,QAAQ,EAAE,GAAG,EAAE;oBACb,MAAM,KAAK,GAAG,IAAI,0BAAiB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;oBACnE,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,CAAC;gBACD,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;aACzD,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAW;QACvB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE;YAAE,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;YAExD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;YAE5D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gBACnC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU;gBACvC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW;gBACzC,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,oBAAW,CAAC;oBACpB,IAAI,EAAE,kBAAS,CAAC,WAAW;oBAC3B,OAAO,EAAE,2CAA2C;oBACpD,QAAQ,EAAE,EAAE;iBACb,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAEtD,+BAA+B;YAC/B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,EAAE;oBACZ,QAAQ;oBACR,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1F,MAAM,WAAW,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAuB;QACtC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAEhD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAE7C,0BAA0B;YAC1B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,IAAA,kBAAS,EAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YAC9G,MAAM,WAAW,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC;gBACpB,IAAI,EAAE,kBAAS,CAAC,iBAAiB;gBACjC,OAAO,EAAE,8BAA8B;aACxC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,oBAAW,CAAC;gBACpB,IAAI,EAAE,kBAAS,CAAC,WAAW;gBAC3B,OAAO,EAAE,uCAAuC;gBAChD,QAAQ,EAAE,EAAE,IAAI,SAAS;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAkB;QAC7B,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE9C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,IAAI,CAAC,kBAAkB,EAAE;iBAC7B,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;iBAC5B,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACjB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAC7C,IAAI,CAAC,YAAY,oBAAW;oBAAE,MAAM,CAAC,CAAC;gBACtC,MAAM,IAAI,oBAAW,CAAC;oBACpB,IAAI,EAAE,kBAAS,CAAC,WAAW;oBAC3B,OAAO,EAAE,mBAAmB;oBAC5B,aAAa,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAClD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,wCAAwC;YACxC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,MAAM,IAAI,4BAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,EAAE,CAA2B,KAAQ,EAAE,QAAwC;QAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAA2B,KAAQ,EAAE,QAAwC;QAC/E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAA2B,KAAQ,EAAE,QAAwC;QAC9E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB,CAA2B,KAAS;QACpD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,uCAAuC;IAEvC;;OAEG;IACH,oBAAoB;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,oBAAW,CAAC;gBACpB,IAAI,EAAE,kBAAS,CAAC,WAAW;gBAC3B,OAAO,EAAE,WAAW,SAAS,mBAAmB;aACjD,CAAC,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,QAAiB;QAChC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU;YACvC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,oBAAW,CAAC;gBACpB,IAAI,EAAE,kBAAS,CAAC,WAAW;gBAC3B,OAAO,EAAE,2CAA2C;gBACpD,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAuB,EAAE,CAAC;QAE3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,qCAAqC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;YACvF,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,OAAO,CAAC,SAAS,oBAAoB,CAAC,CAAC;gBACnE,SAAS;YACX,CAAC;YAED,MAAM,gBAAgB,GAAqB;gBACzC,GAAG,OAAO;gBACV,QAAQ;gBACR,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBAChC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBAChC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC9C,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC;QAED,uDAAuD;QACvD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACxF,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,oBAAW,CAAC;gBACpB,IAAI,EAAE,kBAAS,CAAC,WAAW;gBAC3B,OAAO,EAAE,WAAW,SAAS,mBAAmB;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAE/C,gDAAgD;QAChD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG;gBAAE,OAAO;YAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;YACrD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,MAAM,KAAK,GAAwB;gBACjC,QAAQ,EAAE,IAAI,CAAC,iBAAiB;gBAChC,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAzjBD,sCAyjBC"}
|
|
1
|
+
{"version":3,"file":"NearConnector.js","sourceRoot":"","sources":["../src/NearConnector.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -18,4 +18,5 @@ export { type RetryConfig, type TimeoutConfig, type CircuitBreakerConfig, type C
|
|
|
18
18
|
export { type HardwareWalletType, type HardwareConfig, type LedgerConfig, type TrezorConfig, type LedgerModel, type LedgerDeviceInfo, type APDUCommand, type APDUResponse, type HardwareWaitingEvent, type HardwareConfirmEvent, type HardwareRejectedEvent, HardwareErrorCode, NEAR_CLA, NEAR_INS, LEDGER_STATUS, DEFAULT_DERIVATION_PATH, LEDGER_PRODUCT_IDS, HardwareError, createHardwareError, handleLedgerStatus, isHardwareError, isUserRejection, isDeviceNotFound, isAppNotOpen, LedgerTransport, detectLedgerModel, LedgerNearApp, type NearAppVersion, type PublicKeyResult, type SignatureResult, } from "./hardware";
|
|
19
19
|
export { LedgerWallet, createLedgerWallet, type LedgerWalletAccount, type LedgerTransactionResult, type LedgerSignedTransaction, type LedgerSignMessageParams, type LedgerSignedMessage, PrivilegedWalletManager, type PrivilegedWalletManagerConfig, type PrivilegedWalletManagerEvents, } from "./wallets/privileged";
|
|
20
20
|
export { ExternalWalletManager, type ExternalWalletType, type ExternalWalletConfig, type ExternalWalletManagerConfig, type ExternalWalletAccount, type ExternalTransactionResult, type ExternalSignMessageParams, type ExternalSignedMessage, type ExternalWalletManifest, type PendingRequest, } from "./wallets/external";
|
|
21
|
+
export { InjectedWalletDetector, InjectedWalletAdapter, InjectedWalletManager, type InjectedWalletInfo, type DetectedWallet, type DetectionCallback, type InjectedWalletManagerConfig, } from "./wallets/injected";
|
|
21
22
|
export { TransactionGuard, createDefaultTransactionGuard, type SecurityTransaction, type TransactionLimits, type TransactionRisk, OriginGuard, createSecureMessageHandler, type TrustedOrigins, type OriginGuardConfig, SecureStorage, createSecureStorage, type SecureStorageOptions, RateLimiter, connectLimiter, signLimiter, rpcLimiter, rateLimit, withRateLimit, type RateLimitConfig, type RateLimitResult, AuditLog, createAuditLog, type AuditEvent, type AuditEventType, type AuditLogConfig, generateCSP, getRecommendedCSP, mergeCSP, applyCSPMetaTag, runSecurityChecklist, getSecuritySummary, verifySecureContext, DEFAULT_CSP_DIRECTIVES, type CSPDirectives, type SecurityCheck, } from "./security";
|
package/build/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateStyles = exports.icons = exports.lightTheme = exports.darkTheme = exports.themeToCssVars = exports.getSystemTheme = exports.mergeTheme = exports.createLightTheme = exports.createDarkTheme = exports.getRecoveryOptions = exports.getUserFriendlyMessage = exports.deserializeError = exports.hasErrorCode = exports.isWalletError = exports.wrapError = exports.ManifestError = exports.RpcError = exports.SigningError = exports.SandboxError = exports.SessionError = exports.TransactionError = exports.NetworkMismatchError = exports.ConnectionTimeoutError = exports.UserRejectedError = exports.WalletNotFoundError = exports.WalletError = exports.ErrorCode = exports.nearActionsToConnectorActions = exports.NearConnector = exports.InjectedWallet = exports.SandboxWallet = exports.ParentFrameWallet = exports.quickTrustCheck = exports.TrustScorer = exports.DEFAULT_MANIFEST_SOURCES = exports.mergeManifests = exports.validateManifest = exports.FederatedManifestManager = exports.quickGasEstimate = exports.TransactionSimulator = exports.BatchingAnalyticsAdapter = exports.NoopAnalyticsAdapter = exports.ConsoleAnalyticsAdapter = exports.Analytics = exports.SessionManager = exports.EncryptedStorage = exports.IndexedDBStorage = exports.MemoryStorage = exports.SessionStorage = exports.LocalStorage = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.DEFAULT_CSP_DIRECTIVES = exports.verifySecureContext = exports.getSecuritySummary = exports.runSecurityChecklist = exports.applyCSPMetaTag = exports.mergeCSP = exports.getRecommendedCSP = exports.generateCSP = exports.createAuditLog = exports.AuditLog = exports.withRateLimit = exports.rateLimit = exports.rpcLimiter = exports.signLimiter = exports.connectLimiter = exports.RateLimiter = exports.createSecureStorage = exports.SecureStorage = exports.createSecureMessageHandler = exports.OriginGuard = void 0;
|
|
4
|
+
exports.InjectedWalletAdapter = exports.InjectedWalletDetector = exports.ExternalWalletManager = exports.PrivilegedWalletManager = exports.createLedgerWallet = exports.LedgerWallet = exports.LedgerNearApp = exports.detectLedgerModel = exports.LedgerTransport = exports.isAppNotOpen = exports.isDeviceNotFound = exports.isUserRejection = exports.isHardwareError = exports.handleLedgerStatus = exports.createHardwareError = exports.HardwareError = exports.LEDGER_PRODUCT_IDS = exports.DEFAULT_DERIVATION_PATH = exports.LEDGER_STATUS = exports.NEAR_INS = exports.NEAR_CLA = exports.HardwareErrorCode = exports.ReconnectionManager = exports.createReconnectionManager = exports.DEFAULT_RECONNECT_CONFIG = exports.DEFAULT_RECONNECT_TRIGGERS = exports.HealthMonitor = exports.createHealthMonitor = exports.createWalletHealthCheck = exports.DEFAULT_HEALTH_CONFIG = exports.ConnectionStateMachine = exports.getStatusDescription = exports.createStateMachine = exports.DEFAULT_STATE_MACHINE_CONFIG = exports.CircuitBreaker = exports.makeCancellable = exports.createTimeoutWrapper = exports.createRetryWrapper = exports.withRetryAndTimeout = exports.withTimeout = exports.withRetry = exports.isRetryableError = exports.calculateBackoffDelay = exports.DEFAULT_CIRCUIT_BREAKER_CONFIG = exports.DEFAULT_TIMEOUT_CONFIG = exports.DEFAULT_RETRY_CONFIG = exports.AccountSwitcherModal = exports.TransactionModal = exports.WalletSelectorModal = exports.Modal = void 0;
|
|
5
|
+
exports.DEFAULT_CSP_DIRECTIVES = exports.verifySecureContext = exports.getSecuritySummary = exports.runSecurityChecklist = exports.applyCSPMetaTag = exports.mergeCSP = exports.getRecommendedCSP = exports.generateCSP = exports.createAuditLog = exports.AuditLog = exports.withRateLimit = exports.rateLimit = exports.rpcLimiter = exports.signLimiter = exports.connectLimiter = exports.RateLimiter = exports.createSecureStorage = exports.SecureStorage = exports.createSecureMessageHandler = exports.OriginGuard = exports.createDefaultTransactionGuard = exports.TransactionGuard = exports.InjectedWalletManager = void 0;
|
|
6
6
|
var storage_1 = require("./helpers/storage");
|
|
7
7
|
Object.defineProperty(exports, "LocalStorage", { enumerable: true, get: function () { return storage_1.LocalStorage; } });
|
|
8
8
|
Object.defineProperty(exports, "SessionStorage", { enumerable: true, get: function () { return storage_1.SessionStorage; } });
|
|
@@ -134,6 +134,11 @@ Object.defineProperty(exports, "PrivilegedWalletManager", { enumerable: true, ge
|
|
|
134
134
|
// External wallet tier (mobile + WalletConnect)
|
|
135
135
|
var external_1 = require("./wallets/external");
|
|
136
136
|
Object.defineProperty(exports, "ExternalWalletManager", { enumerable: true, get: function () { return external_1.ExternalWalletManager; } });
|
|
137
|
+
// Injected wallet tier (browser extensions)
|
|
138
|
+
var injected_1 = require("./wallets/injected");
|
|
139
|
+
Object.defineProperty(exports, "InjectedWalletDetector", { enumerable: true, get: function () { return injected_1.InjectedWalletDetector; } });
|
|
140
|
+
Object.defineProperty(exports, "InjectedWalletAdapter", { enumerable: true, get: function () { return injected_1.InjectedWalletAdapter; } });
|
|
141
|
+
Object.defineProperty(exports, "InjectedWalletManager", { enumerable: true, get: function () { return injected_1.InjectedWalletManager; } });
|
|
137
142
|
// Security layers
|
|
138
143
|
var security_1 = require("./security");
|
|
139
144
|
// Transaction verification
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -388,6 +388,11 @@ export interface EventMap {
|
|
|
388
388
|
};
|
|
389
389
|
/** Emitted when all accounts are cleared */
|
|
390
390
|
"account:cleared": Record<string, never>;
|
|
391
|
+
/** Emitted when an injected wallet is detected */
|
|
392
|
+
"wallet:detected": {
|
|
393
|
+
walletId: string;
|
|
394
|
+
name: string;
|
|
395
|
+
};
|
|
391
396
|
}
|
|
392
397
|
/**
|
|
393
398
|
* Event type names
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injected Wallet Adapter
|
|
3
|
+
*
|
|
4
|
+
* Normalizes the different APIs each injected wallet uses into
|
|
5
|
+
* a consistent interface matching NearWalletBase.
|
|
6
|
+
*/
|
|
7
|
+
import type { Account, SignAndSendTransactionParams, SignAndSendTransactionsParams, SignMessageParams, SignedMessage, SignInParams, SignOutParams, GetAccountsParams, WalletManifest, NearWalletBase } from '../../types';
|
|
8
|
+
import type { FinalExecutionOutcome } from '@near-js/types';
|
|
9
|
+
import type { DetectedWallet } from './detector';
|
|
10
|
+
export declare class InjectedWalletAdapter implements NearWalletBase {
|
|
11
|
+
readonly manifest: WalletManifest;
|
|
12
|
+
private provider;
|
|
13
|
+
private cachedAccounts;
|
|
14
|
+
constructor(wallet: DetectedWallet);
|
|
15
|
+
/**
|
|
16
|
+
* Sign in to the wallet
|
|
17
|
+
*/
|
|
18
|
+
signIn(data?: SignInParams): Promise<Account[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Sign out from the wallet
|
|
21
|
+
*/
|
|
22
|
+
signOut(_data?: SignOutParams): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Get connected accounts
|
|
25
|
+
*/
|
|
26
|
+
getAccounts(_data?: GetAccountsParams): Promise<Account[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Sign and send a single transaction
|
|
29
|
+
*/
|
|
30
|
+
signAndSendTransaction(params: SignAndSendTransactionParams): Promise<FinalExecutionOutcome>;
|
|
31
|
+
/**
|
|
32
|
+
* Sign and send multiple transactions
|
|
33
|
+
*/
|
|
34
|
+
signAndSendTransactions(params: SignAndSendTransactionsParams): Promise<FinalExecutionOutcome[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Sign a message (NEP-413)
|
|
37
|
+
*/
|
|
38
|
+
signMessage(params: SignMessageParams): Promise<SignedMessage>;
|
|
39
|
+
/**
|
|
40
|
+
* Check if connected
|
|
41
|
+
*/
|
|
42
|
+
isConnected(): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Normalize different account response formats to Account[]
|
|
45
|
+
*/
|
|
46
|
+
private normalizeAccounts;
|
|
47
|
+
}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Injected Wallet Adapter
|
|
4
|
+
*
|
|
5
|
+
* Normalizes the different APIs each injected wallet uses into
|
|
6
|
+
* a consistent interface matching NearWalletBase.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.InjectedWalletAdapter = void 0;
|
|
10
|
+
class InjectedWalletAdapter {
|
|
11
|
+
manifest;
|
|
12
|
+
provider;
|
|
13
|
+
cachedAccounts = [];
|
|
14
|
+
constructor(wallet) {
|
|
15
|
+
this.provider = wallet.provider;
|
|
16
|
+
// Build manifest from detected wallet info
|
|
17
|
+
this.manifest = {
|
|
18
|
+
id: wallet.info.id,
|
|
19
|
+
name: wallet.info.name,
|
|
20
|
+
icon: wallet.info.icon,
|
|
21
|
+
website: wallet.info.website,
|
|
22
|
+
description: `${wallet.info.name} browser extension`,
|
|
23
|
+
type: 'injected',
|
|
24
|
+
version: '1.0.0',
|
|
25
|
+
executor: '',
|
|
26
|
+
permissions: {
|
|
27
|
+
storage: true,
|
|
28
|
+
external: [wallet.info.id],
|
|
29
|
+
},
|
|
30
|
+
features: {
|
|
31
|
+
signMessage: typeof this.provider.signMessage === 'function',
|
|
32
|
+
signTransaction: true,
|
|
33
|
+
signAndSendTransaction: typeof this.provider.signAndSendTransaction === 'function',
|
|
34
|
+
signAndSendTransactions: typeof this.provider.signAndSendTransactions === 'function' ||
|
|
35
|
+
typeof this.provider.requestSignTransactions === 'function',
|
|
36
|
+
signInWithoutAddKey: true,
|
|
37
|
+
mainnet: true,
|
|
38
|
+
testnet: true,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Sign in to the wallet
|
|
44
|
+
*/
|
|
45
|
+
async signIn(data) {
|
|
46
|
+
let result;
|
|
47
|
+
// Different wallets use different method names
|
|
48
|
+
if (typeof this.provider.connect === 'function') {
|
|
49
|
+
result = await this.provider.connect({
|
|
50
|
+
contractId: data?.contractId,
|
|
51
|
+
methodNames: data?.methodNames,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else if (typeof this.provider.signIn === 'function') {
|
|
55
|
+
result = await this.provider.signIn({
|
|
56
|
+
contractId: data?.contractId,
|
|
57
|
+
methodNames: data?.methodNames,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else if (typeof this.provider.requestSignIn === 'function') {
|
|
61
|
+
result = await this.provider.requestSignIn({
|
|
62
|
+
contractId: data?.contractId,
|
|
63
|
+
methodNames: data?.methodNames,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else if (typeof this.provider.enable === 'function') {
|
|
67
|
+
result = await this.provider.enable();
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw new Error(`Unknown connect method for ${this.manifest.name}`);
|
|
71
|
+
}
|
|
72
|
+
// Normalize and cache accounts
|
|
73
|
+
this.cachedAccounts = this.normalizeAccounts(result);
|
|
74
|
+
// If connect didn't return accounts, try to fetch them
|
|
75
|
+
if (this.cachedAccounts.length === 0) {
|
|
76
|
+
this.cachedAccounts = await this.getAccounts(data);
|
|
77
|
+
}
|
|
78
|
+
return this.cachedAccounts;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Sign out from the wallet
|
|
82
|
+
*/
|
|
83
|
+
async signOut(_data) {
|
|
84
|
+
if (typeof this.provider.disconnect === 'function') {
|
|
85
|
+
await this.provider.disconnect();
|
|
86
|
+
}
|
|
87
|
+
else if (typeof this.provider.signOut === 'function') {
|
|
88
|
+
await this.provider.signOut();
|
|
89
|
+
}
|
|
90
|
+
this.cachedAccounts = [];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get connected accounts
|
|
94
|
+
*/
|
|
95
|
+
async getAccounts(_data) {
|
|
96
|
+
// Try various account retrieval methods
|
|
97
|
+
if (typeof this.provider.getAccounts === 'function') {
|
|
98
|
+
const accounts = await this.provider.getAccounts();
|
|
99
|
+
this.cachedAccounts = this.normalizeAccounts(accounts);
|
|
100
|
+
}
|
|
101
|
+
else if (typeof this.provider.getAccountId === 'function') {
|
|
102
|
+
const accountId = await this.provider.getAccountId();
|
|
103
|
+
if (accountId) {
|
|
104
|
+
this.cachedAccounts = [{ accountId }];
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else if (typeof this.provider.account === 'function') {
|
|
108
|
+
const account = await this.provider.account();
|
|
109
|
+
if (account?.accountId) {
|
|
110
|
+
this.cachedAccounts = [
|
|
111
|
+
{ accountId: account.accountId, publicKey: account.publicKey },
|
|
112
|
+
];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (this.provider.accountId) {
|
|
116
|
+
this.cachedAccounts = [{ accountId: this.provider.accountId }];
|
|
117
|
+
}
|
|
118
|
+
return this.cachedAccounts;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Sign and send a single transaction
|
|
122
|
+
*/
|
|
123
|
+
async signAndSendTransaction(params) {
|
|
124
|
+
if (typeof this.provider.signAndSendTransaction === 'function') {
|
|
125
|
+
return await this.provider.signAndSendTransaction(params);
|
|
126
|
+
}
|
|
127
|
+
// Some wallets nest params differently
|
|
128
|
+
if (typeof this.provider.signAndSendTransaction === 'function') {
|
|
129
|
+
return await this.provider.signAndSendTransaction({
|
|
130
|
+
receiverId: params.receiverId,
|
|
131
|
+
actions: params.actions,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
throw new Error(`${this.manifest.name} does not support signAndSendTransaction`);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Sign and send multiple transactions
|
|
138
|
+
*/
|
|
139
|
+
async signAndSendTransactions(params) {
|
|
140
|
+
if (typeof this.provider.signAndSendTransactions === 'function') {
|
|
141
|
+
return await this.provider.signAndSendTransactions(params);
|
|
142
|
+
}
|
|
143
|
+
if (typeof this.provider.requestSignTransactions === 'function') {
|
|
144
|
+
return await this.provider.requestSignTransactions(params);
|
|
145
|
+
}
|
|
146
|
+
// Fall back to sequential signing
|
|
147
|
+
const results = [];
|
|
148
|
+
for (const tx of params.transactions) {
|
|
149
|
+
const result = await this.signAndSendTransaction({
|
|
150
|
+
...tx,
|
|
151
|
+
network: params.network,
|
|
152
|
+
signerId: params.signerId,
|
|
153
|
+
callbackUrl: params.callbackUrl,
|
|
154
|
+
});
|
|
155
|
+
results.push(result);
|
|
156
|
+
}
|
|
157
|
+
return results;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Sign a message (NEP-413)
|
|
161
|
+
*/
|
|
162
|
+
async signMessage(params) {
|
|
163
|
+
if (typeof this.provider.signMessage === 'function') {
|
|
164
|
+
return await this.provider.signMessage(params);
|
|
165
|
+
}
|
|
166
|
+
// Some wallets use verifyOwner for message signing
|
|
167
|
+
if (typeof this.provider.verifyOwner === 'function') {
|
|
168
|
+
const result = await this.provider.verifyOwner({
|
|
169
|
+
message: params.message,
|
|
170
|
+
});
|
|
171
|
+
return {
|
|
172
|
+
accountId: result.accountId,
|
|
173
|
+
publicKey: result.publicKey,
|
|
174
|
+
signature: result.signature,
|
|
175
|
+
message: params.message,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
throw new Error(`${this.manifest.name} does not support message signing`);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Check if connected
|
|
182
|
+
*/
|
|
183
|
+
async isConnected() {
|
|
184
|
+
if (typeof this.provider.isConnected === 'function') {
|
|
185
|
+
return await this.provider.isConnected();
|
|
186
|
+
}
|
|
187
|
+
if (typeof this.provider.isSignedIn === 'function') {
|
|
188
|
+
return await this.provider.isSignedIn();
|
|
189
|
+
}
|
|
190
|
+
return this.cachedAccounts.length > 0;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Normalize different account response formats to Account[]
|
|
194
|
+
*/
|
|
195
|
+
normalizeAccounts(response) {
|
|
196
|
+
if (!response)
|
|
197
|
+
return [];
|
|
198
|
+
// Array of accounts
|
|
199
|
+
if (Array.isArray(response)) {
|
|
200
|
+
return response.map((acc) => {
|
|
201
|
+
if (typeof acc === 'string') {
|
|
202
|
+
return { accountId: acc };
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
accountId: acc.accountId || acc.account_id || acc.id,
|
|
206
|
+
publicKey: acc.publicKey || acc.public_key,
|
|
207
|
+
};
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
// Single account object
|
|
211
|
+
if (typeof response === 'object') {
|
|
212
|
+
if (response.accountId || response.account_id) {
|
|
213
|
+
return [
|
|
214
|
+
{
|
|
215
|
+
accountId: response.accountId || response.account_id,
|
|
216
|
+
publicKey: response.publicKey || response.public_key,
|
|
217
|
+
},
|
|
218
|
+
];
|
|
219
|
+
}
|
|
220
|
+
// Accounts nested in response
|
|
221
|
+
if (response.accounts) {
|
|
222
|
+
return this.normalizeAccounts(response.accounts);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// Single account string
|
|
226
|
+
if (typeof response === 'string') {
|
|
227
|
+
return [{ accountId: response }];
|
|
228
|
+
}
|
|
229
|
+
return [];
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.InjectedWalletAdapter = InjectedWalletAdapter;
|
|
233
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/wallets/injected/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injected Wallet Detector
|
|
3
|
+
*
|
|
4
|
+
* Hybrid detection that:
|
|
5
|
+
* 1. Listens for near-wallet-injected events (compliant wallets)
|
|
6
|
+
* 2. Probes known window globals (non-compliant wallets)
|
|
7
|
+
* 3. Retries detection for slow-loading extensions
|
|
8
|
+
*/
|
|
9
|
+
export interface InjectedWalletInfo {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
icon: string;
|
|
13
|
+
/** Primary global property to check */
|
|
14
|
+
globalKey: string;
|
|
15
|
+
/** Alternative keys (some wallets use multiple) */
|
|
16
|
+
altKeys?: string[];
|
|
17
|
+
/** Website URL */
|
|
18
|
+
website: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DetectedWallet {
|
|
21
|
+
info: InjectedWalletInfo;
|
|
22
|
+
provider: unknown;
|
|
23
|
+
}
|
|
24
|
+
export type DetectionCallback = (wallets: DetectedWallet[]) => void;
|
|
25
|
+
export declare class InjectedWalletDetector {
|
|
26
|
+
private detected;
|
|
27
|
+
private listeners;
|
|
28
|
+
private isScanning;
|
|
29
|
+
private eventCleanup;
|
|
30
|
+
/**
|
|
31
|
+
* Start detection - combines event listening and global probing
|
|
32
|
+
*/
|
|
33
|
+
detect(timeout?: number): Promise<DetectedWallet[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Listen for wallets that use the event protocol
|
|
36
|
+
*/
|
|
37
|
+
private listenForWalletEvents;
|
|
38
|
+
/**
|
|
39
|
+
* Announce that we're ready to receive wallet injections
|
|
40
|
+
*/
|
|
41
|
+
private announceReady;
|
|
42
|
+
/**
|
|
43
|
+
* Directly probe window globals for known wallets
|
|
44
|
+
*/
|
|
45
|
+
private probeGlobals;
|
|
46
|
+
/**
|
|
47
|
+
* Find provider by checking global key and alternatives
|
|
48
|
+
*/
|
|
49
|
+
private findProvider;
|
|
50
|
+
/**
|
|
51
|
+
* Validate that this looks like a wallet provider
|
|
52
|
+
*/
|
|
53
|
+
private isValidProvider;
|
|
54
|
+
/**
|
|
55
|
+
* Probe with retries for slow-loading extensions
|
|
56
|
+
*/
|
|
57
|
+
private probeWithRetry;
|
|
58
|
+
/**
|
|
59
|
+
* Add a detected wallet
|
|
60
|
+
*/
|
|
61
|
+
private addDetected;
|
|
62
|
+
/**
|
|
63
|
+
* Subscribe to detection updates
|
|
64
|
+
*/
|
|
65
|
+
onDetected(callback: DetectionCallback): () => void;
|
|
66
|
+
/**
|
|
67
|
+
* Get specific wallet if detected
|
|
68
|
+
*/
|
|
69
|
+
getWallet(id: string): DetectedWallet | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Check if specific wallet is available
|
|
72
|
+
*/
|
|
73
|
+
isAvailable(id: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Get all detected wallets
|
|
76
|
+
*/
|
|
77
|
+
getAll(): DetectedWallet[];
|
|
78
|
+
/**
|
|
79
|
+
* Cleanup event listeners
|
|
80
|
+
*/
|
|
81
|
+
destroy(): void;
|
|
82
|
+
}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Injected Wallet Detector
|
|
4
|
+
*
|
|
5
|
+
* Hybrid detection that:
|
|
6
|
+
* 1. Listens for near-wallet-injected events (compliant wallets)
|
|
7
|
+
* 2. Probes known window globals (non-compliant wallets)
|
|
8
|
+
* 3. Retries detection for slow-loading extensions
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.InjectedWalletDetector = void 0;
|
|
12
|
+
/** Known NEAR wallet extensions and their injection patterns */
|
|
13
|
+
const KNOWN_INJECTED_WALLETS = [
|
|
14
|
+
{
|
|
15
|
+
id: 'meteor-wallet',
|
|
16
|
+
name: 'Meteor Wallet',
|
|
17
|
+
icon: 'https://wallet.meteorwallet.app/assets/logo.svg',
|
|
18
|
+
globalKey: 'meteorWallet',
|
|
19
|
+
altKeys: ['near'],
|
|
20
|
+
website: 'https://wallet.meteorwallet.app',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 'sender',
|
|
24
|
+
name: 'Sender Wallet',
|
|
25
|
+
icon: 'https://sender.org/logo.svg',
|
|
26
|
+
globalKey: 'near',
|
|
27
|
+
altKeys: ['sender'],
|
|
28
|
+
website: 'https://sender.org',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'here-wallet',
|
|
32
|
+
name: 'HERE Wallet',
|
|
33
|
+
icon: 'https://herewallet.app/logo.svg',
|
|
34
|
+
globalKey: 'here',
|
|
35
|
+
altKeys: ['hereWallet'],
|
|
36
|
+
website: 'https://herewallet.app',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: 'nightly',
|
|
40
|
+
name: 'Nightly Wallet',
|
|
41
|
+
icon: 'https://nightly.app/logo.svg',
|
|
42
|
+
globalKey: 'nightly',
|
|
43
|
+
altKeys: ['nightlyNear'],
|
|
44
|
+
website: 'https://nightly.app',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'mynearwallet',
|
|
48
|
+
name: 'MyNearWallet',
|
|
49
|
+
icon: 'https://mynearwallet.com/logo.svg',
|
|
50
|
+
globalKey: 'nearWallet',
|
|
51
|
+
website: 'https://mynearwallet.com',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 'welldone',
|
|
55
|
+
name: 'WELLDONE Wallet',
|
|
56
|
+
icon: 'https://welldone.xyz/logo.svg',
|
|
57
|
+
globalKey: 'dapp',
|
|
58
|
+
website: 'https://welldone.xyz',
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
class InjectedWalletDetector {
|
|
62
|
+
detected = new Map();
|
|
63
|
+
listeners = new Set();
|
|
64
|
+
isScanning = false;
|
|
65
|
+
eventCleanup = null;
|
|
66
|
+
/**
|
|
67
|
+
* Start detection - combines event listening and global probing
|
|
68
|
+
*/
|
|
69
|
+
async detect(timeout = 2000) {
|
|
70
|
+
if (typeof window === 'undefined') {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
if (this.isScanning) {
|
|
74
|
+
return Array.from(this.detected.values());
|
|
75
|
+
}
|
|
76
|
+
this.isScanning = true;
|
|
77
|
+
// Method 1: Listen for compliant wallets via events
|
|
78
|
+
this.listenForWalletEvents();
|
|
79
|
+
// Method 2: Announce we're ready (triggers compliant wallets)
|
|
80
|
+
this.announceReady();
|
|
81
|
+
// Method 3: Probe globals immediately
|
|
82
|
+
this.probeGlobals();
|
|
83
|
+
// Method 4: Probe again with retries (for slow extensions)
|
|
84
|
+
await this.probeWithRetry(timeout);
|
|
85
|
+
this.isScanning = false;
|
|
86
|
+
return Array.from(this.detected.values());
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Listen for wallets that use the event protocol
|
|
90
|
+
*/
|
|
91
|
+
listenForWalletEvents() {
|
|
92
|
+
const handler = ((event) => {
|
|
93
|
+
const detail = event.detail;
|
|
94
|
+
if (detail?.id && detail?.provider) {
|
|
95
|
+
// Find matching known wallet or create generic entry
|
|
96
|
+
const knownWallet = KNOWN_INJECTED_WALLETS.find((w) => w.id === detail.id);
|
|
97
|
+
const walletInfo = knownWallet || {
|
|
98
|
+
id: detail.id,
|
|
99
|
+
name: detail.name || detail.id,
|
|
100
|
+
icon: detail.icon || '',
|
|
101
|
+
globalKey: detail.id,
|
|
102
|
+
website: detail.website || '',
|
|
103
|
+
};
|
|
104
|
+
this.addDetected(walletInfo, detail.provider);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
window.addEventListener('near-wallet-injected', handler);
|
|
108
|
+
this.eventCleanup = () => {
|
|
109
|
+
window.removeEventListener('near-wallet-injected', handler);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Announce that we're ready to receive wallet injections
|
|
114
|
+
*/
|
|
115
|
+
announceReady() {
|
|
116
|
+
// Different wallets listen for different event names
|
|
117
|
+
window.dispatchEvent(new CustomEvent('near-selector-ready'));
|
|
118
|
+
window.dispatchEvent(new CustomEvent('near-wallet-selector-ready'));
|
|
119
|
+
window.dispatchEvent(new CustomEvent('near:ready'));
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Directly probe window globals for known wallets
|
|
123
|
+
*/
|
|
124
|
+
probeGlobals() {
|
|
125
|
+
for (const wallet of KNOWN_INJECTED_WALLETS) {
|
|
126
|
+
// Skip if already detected
|
|
127
|
+
if (this.detected.has(wallet.id))
|
|
128
|
+
continue;
|
|
129
|
+
const provider = this.findProvider(wallet);
|
|
130
|
+
if (provider) {
|
|
131
|
+
this.addDetected(wallet, provider);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Find provider by checking global key and alternatives
|
|
137
|
+
*/
|
|
138
|
+
findProvider(wallet) {
|
|
139
|
+
const win = window;
|
|
140
|
+
// Check primary key
|
|
141
|
+
if (win[wallet.globalKey] && this.isValidProvider(win[wallet.globalKey])) {
|
|
142
|
+
return win[wallet.globalKey];
|
|
143
|
+
}
|
|
144
|
+
// Check alternative keys
|
|
145
|
+
if (wallet.altKeys) {
|
|
146
|
+
for (const key of wallet.altKeys) {
|
|
147
|
+
if (win[key] && this.isValidProvider(win[key])) {
|
|
148
|
+
return win[key];
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Validate that this looks like a wallet provider
|
|
156
|
+
*/
|
|
157
|
+
isValidProvider(obj) {
|
|
158
|
+
if (!obj || typeof obj !== 'object')
|
|
159
|
+
return false;
|
|
160
|
+
const provider = obj;
|
|
161
|
+
// Most wallet providers have at least one of these methods
|
|
162
|
+
return (typeof provider.connect === 'function' ||
|
|
163
|
+
typeof provider.signIn === 'function' ||
|
|
164
|
+
typeof provider.requestSignIn === 'function' ||
|
|
165
|
+
typeof provider.signAndSendTransaction === 'function' ||
|
|
166
|
+
typeof provider.isConnected === 'function' ||
|
|
167
|
+
typeof provider.enable === 'function');
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Probe with retries for slow-loading extensions
|
|
171
|
+
*/
|
|
172
|
+
async probeWithRetry(timeout) {
|
|
173
|
+
const intervals = [100, 250, 500, 1000];
|
|
174
|
+
let elapsed = 0;
|
|
175
|
+
for (const interval of intervals) {
|
|
176
|
+
if (elapsed >= timeout)
|
|
177
|
+
break;
|
|
178
|
+
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
179
|
+
elapsed += interval;
|
|
180
|
+
this.probeGlobals();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Add a detected wallet
|
|
185
|
+
*/
|
|
186
|
+
addDetected(info, provider) {
|
|
187
|
+
if (this.detected.has(info.id))
|
|
188
|
+
return;
|
|
189
|
+
const detected = { info, provider };
|
|
190
|
+
this.detected.set(info.id, detected);
|
|
191
|
+
console.log(`[NearConnect] Detected injected wallet: ${info.name}`);
|
|
192
|
+
// Notify listeners
|
|
193
|
+
this.listeners.forEach((cb) => cb(Array.from(this.detected.values())));
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Subscribe to detection updates
|
|
197
|
+
*/
|
|
198
|
+
onDetected(callback) {
|
|
199
|
+
this.listeners.add(callback);
|
|
200
|
+
// Immediately call with current detections
|
|
201
|
+
if (this.detected.size > 0) {
|
|
202
|
+
callback(Array.from(this.detected.values()));
|
|
203
|
+
}
|
|
204
|
+
return () => this.listeners.delete(callback);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Get specific wallet if detected
|
|
208
|
+
*/
|
|
209
|
+
getWallet(id) {
|
|
210
|
+
return this.detected.get(id);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Check if specific wallet is available
|
|
214
|
+
*/
|
|
215
|
+
isAvailable(id) {
|
|
216
|
+
return this.detected.has(id);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get all detected wallets
|
|
220
|
+
*/
|
|
221
|
+
getAll() {
|
|
222
|
+
return Array.from(this.detected.values());
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Cleanup event listeners
|
|
226
|
+
*/
|
|
227
|
+
destroy() {
|
|
228
|
+
if (this.eventCleanup) {
|
|
229
|
+
this.eventCleanup();
|
|
230
|
+
this.eventCleanup = null;
|
|
231
|
+
}
|
|
232
|
+
this.listeners.clear();
|
|
233
|
+
this.detected.clear();
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
exports.InjectedWalletDetector = InjectedWalletDetector;
|
|
237
|
+
//# sourceMappingURL=detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../../src/wallets/injected/detector.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAcH,gEAAgE;AAChE,MAAM,sBAAsB,GAAyB;IACnD;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,iDAAiD;QACvD,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,OAAO,EAAE,iCAAiC;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,6BAA6B;QACnC,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,OAAO,EAAE,oBAAoB;KAC9B;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,iCAAiC;QACvC,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,OAAO,EAAE,wBAAwB;KAClC;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,8BAA8B;QACpC,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,OAAO,EAAE,qBAAqB;KAC/B;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,mCAAmC;QACzC,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,0BAA0B;KACpC;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,sBAAsB;KAChC;CACF,CAAC;AASF,MAAa,sBAAsB;IACzB,QAAQ,GAAgC,IAAI,GAAG,EAAE,CAAC;IAClD,SAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;IAC9C,UAAU,GAAG,KAAK,CAAC;IACnB,YAAY,GAAwB,IAAI,CAAC;IAEjD;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,UAAkB,IAAI;QACjC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,oDAAoD;QACpD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,8DAA8D;QAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,sCAAsC;QACtC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,2DAA2D;QAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAE5B,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACnC,qDAAqD;gBACrD,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;gBAE3E,MAAM,UAAU,GAAuB,WAAW,IAAI;oBACpD,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE;oBAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;oBACvB,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;iBAC9B,CAAC;gBAEF,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAkB,CAAC;QAEpB,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAEzD,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE;YACvB,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,qDAAqD;QACrD,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,KAAK,MAAM,MAAM,IAAI,sBAAsB,EAAE,CAAC;YAC5C,2BAA2B;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAE,SAAS;YAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAE3C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,MAA0B;QAC7C,MAAM,GAAG,GAAG,MAA4C,CAAC;QAEzD,oBAAoB;QACpB,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,GAAY;QAClC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAElD,MAAM,QAAQ,GAAG,GAA8B,CAAC;QAEhD,2DAA2D;QAC3D,OAAO,CACL,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU;YACtC,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU;YACrC,OAAO,QAAQ,CAAC,aAAa,KAAK,UAAU;YAC5C,OAAO,QAAQ,CAAC,sBAAsB,KAAK,UAAU;YACrD,OAAO,QAAQ,CAAC,WAAW,KAAK,UAAU;YAC1C,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,CACtC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,OAAe;QAC1C,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,IAAI,OAAO;gBAAE,MAAM;YAE9B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC9D,OAAO,IAAI,QAAQ,CAAC;YAEpB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAwB,EAAE,QAAiB;QAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO;QAEvC,MAAM,QAAQ,GAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAErC,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEpE,mBAAmB;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,QAA2B;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7B,2CAA2C;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AArND,wDAqNC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injected Wallet Module
|
|
3
|
+
*
|
|
4
|
+
* Exports for browser extension wallet detection and management.
|
|
5
|
+
*/
|
|
6
|
+
export { InjectedWalletDetector } from './detector';
|
|
7
|
+
export type { InjectedWalletInfo, DetectedWallet, DetectionCallback } from './detector';
|
|
8
|
+
export { InjectedWalletAdapter } from './adapter';
|
|
9
|
+
export { InjectedWalletManager } from './manager';
|
|
10
|
+
export type { InjectedWalletManagerConfig } from './manager';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Injected Wallet Module
|
|
4
|
+
*
|
|
5
|
+
* Exports for browser extension wallet detection and management.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.InjectedWalletManager = exports.InjectedWalletAdapter = exports.InjectedWalletDetector = void 0;
|
|
9
|
+
var detector_1 = require("./detector");
|
|
10
|
+
Object.defineProperty(exports, "InjectedWalletDetector", { enumerable: true, get: function () { return detector_1.InjectedWalletDetector; } });
|
|
11
|
+
var adapter_1 = require("./adapter");
|
|
12
|
+
Object.defineProperty(exports, "InjectedWalletAdapter", { enumerable: true, get: function () { return adapter_1.InjectedWalletAdapter; } });
|
|
13
|
+
var manager_1 = require("./manager");
|
|
14
|
+
Object.defineProperty(exports, "InjectedWalletManager", { enumerable: true, get: function () { return manager_1.InjectedWalletManager; } });
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallets/injected/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAG/B,qCAAkD;AAAzC,gHAAA,qBAAqB,OAAA;AAE9B,qCAAkD;AAAzC,gHAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injected Wallet Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages detection and interaction with browser extension wallets.
|
|
5
|
+
*/
|
|
6
|
+
import type { NearWalletBase } from '../../types';
|
|
7
|
+
export interface InjectedWalletManagerConfig {
|
|
8
|
+
/** Detection timeout in ms (default: 2000) */
|
|
9
|
+
detectionTimeout?: number;
|
|
10
|
+
/** Callback when wallets are detected */
|
|
11
|
+
onDetected?: (wallets: NearWalletBase[]) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare class InjectedWalletManager {
|
|
14
|
+
private detector;
|
|
15
|
+
private adapters;
|
|
16
|
+
private config;
|
|
17
|
+
private initialized;
|
|
18
|
+
constructor(config?: InjectedWalletManagerConfig);
|
|
19
|
+
/**
|
|
20
|
+
* Initialize detection
|
|
21
|
+
*/
|
|
22
|
+
init(): Promise<NearWalletBase[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Add an adapter for a detected wallet
|
|
25
|
+
*/
|
|
26
|
+
private addAdapter;
|
|
27
|
+
/**
|
|
28
|
+
* Get all detected wallets as NearWalletBase
|
|
29
|
+
*/
|
|
30
|
+
getWallets(): NearWalletBase[];
|
|
31
|
+
/**
|
|
32
|
+
* Get a specific wallet by ID
|
|
33
|
+
*/
|
|
34
|
+
getWallet(walletId: string): NearWalletBase | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Check if wallet ID is an injected wallet
|
|
37
|
+
*/
|
|
38
|
+
isInjectedWallet(walletId: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Check if any injected wallets were detected
|
|
41
|
+
*/
|
|
42
|
+
hasWallets(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Get count of detected wallets
|
|
45
|
+
*/
|
|
46
|
+
get count(): number;
|
|
47
|
+
/**
|
|
48
|
+
* Cleanup
|
|
49
|
+
*/
|
|
50
|
+
destroy(): void;
|
|
51
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Injected Wallet Manager
|
|
4
|
+
*
|
|
5
|
+
* Manages detection and interaction with browser extension wallets.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.InjectedWalletManager = void 0;
|
|
9
|
+
const detector_1 = require("./detector");
|
|
10
|
+
const adapter_1 = require("./adapter");
|
|
11
|
+
class InjectedWalletManager {
|
|
12
|
+
detector;
|
|
13
|
+
adapters = new Map();
|
|
14
|
+
config;
|
|
15
|
+
initialized = false;
|
|
16
|
+
constructor(config = {}) {
|
|
17
|
+
this.detector = new detector_1.InjectedWalletDetector();
|
|
18
|
+
this.config = config;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Initialize detection
|
|
22
|
+
*/
|
|
23
|
+
async init() {
|
|
24
|
+
if (this.initialized) {
|
|
25
|
+
return this.getWallets();
|
|
26
|
+
}
|
|
27
|
+
const timeout = this.config.detectionTimeout ?? 2000;
|
|
28
|
+
const detected = await this.detector.detect(timeout);
|
|
29
|
+
for (const wallet of detected) {
|
|
30
|
+
this.addAdapter(wallet);
|
|
31
|
+
}
|
|
32
|
+
// Subscribe to future detections
|
|
33
|
+
this.detector.onDetected((wallets) => {
|
|
34
|
+
for (const wallet of wallets) {
|
|
35
|
+
if (!this.adapters.has(wallet.info.id)) {
|
|
36
|
+
this.addAdapter(wallet);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (this.config.onDetected) {
|
|
40
|
+
this.config.onDetected(this.getWallets());
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
this.initialized = true;
|
|
44
|
+
console.log(`[NearConnect] Found ${detected.length} injected wallet(s)`);
|
|
45
|
+
return this.getWallets();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Add an adapter for a detected wallet
|
|
49
|
+
*/
|
|
50
|
+
addAdapter(wallet) {
|
|
51
|
+
const adapter = new adapter_1.InjectedWalletAdapter(wallet);
|
|
52
|
+
this.adapters.set(wallet.info.id, adapter);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get all detected wallets as NearWalletBase
|
|
56
|
+
*/
|
|
57
|
+
getWallets() {
|
|
58
|
+
return Array.from(this.adapters.values());
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get a specific wallet by ID
|
|
62
|
+
*/
|
|
63
|
+
getWallet(walletId) {
|
|
64
|
+
return this.adapters.get(walletId);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if wallet ID is an injected wallet
|
|
68
|
+
*/
|
|
69
|
+
isInjectedWallet(walletId) {
|
|
70
|
+
return this.adapters.has(walletId);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check if any injected wallets were detected
|
|
74
|
+
*/
|
|
75
|
+
hasWallets() {
|
|
76
|
+
return this.adapters.size > 0;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get count of detected wallets
|
|
80
|
+
*/
|
|
81
|
+
get count() {
|
|
82
|
+
return this.adapters.size;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Cleanup
|
|
86
|
+
*/
|
|
87
|
+
destroy() {
|
|
88
|
+
this.detector.destroy();
|
|
89
|
+
this.adapters.clear();
|
|
90
|
+
this.initialized = false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.InjectedWalletManager = InjectedWalletManager;
|
|
94
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/wallets/injected/manager.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,yCAAyE;AACzE,uCAAkD;AASlD,MAAa,qBAAqB;IACxB,QAAQ,CAAyB;IACjC,QAAQ,GAAuC,IAAI,GAAG,EAAE,CAAC;IACzD,MAAM,CAA8B;IACpC,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,iCAAsB,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAErD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,MAAsB;QACvC,MAAM,OAAO,GAAG,IAAI,+BAAqB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAhGD,sDAgGC"}
|