@seedkey/sdk-client 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/LICENSE +21 -0
- package/README.md +262 -0
- package/dist/api.d.ts +34 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +115 -0
- package/dist/api.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +111 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +130 -0
- package/dist/logger.js.map +1 -0
- package/dist/seedkey.d.ts +186 -0
- package/dist/seedkey.d.ts.map +1 -0
- package/dist/seedkey.js +567 -0
- package/dist/seedkey.js.map +1 -0
- package/dist/storage.d.ts +42 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +104 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +166 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +70 -0
- package/dist/types.js.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAKlC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAaD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM;qBAiCtB,MAAM,SAAS,OAAO;oBAEvB,MAAM,SAAS,OAAO;oBAEtB,MAAM,SAAS,OAAO;qBAErB,MAAM,SAAS,OAAO;IAEvC,mBAAmB;mBACJ,MAAM;IAUrB,gBAAgB;;IAMhB,iBAAiB;kBACH,OAAO;IAKrB,aAAa;kBACC,MAAM;IAKpB,iBAAiB;qBACA,MAAM;EAK1B;AAGD,eAAO,MAAM,SAAS;qBA9CD,MAAM,SAAS,OAAO;oBAEvB,MAAM,SAAS,OAAO;oBAEtB,MAAM,SAAS,OAAO;qBAErB,MAAM,SAAS,OAAO;IAEvC,mBAAmB;mBACJ,MAAM;IAUrB,gBAAgB;;IAMhB,iBAAiB;kBACH,OAAO;IAKrB,aAAa;kBACC,MAAM;IAKpB,iBAAiB;qBACA,MAAM;CAQiB,CAAC;AAC7C,eAAO,MAAM,UAAU;qBA/CF,MAAM,SAAS,OAAO;oBAEvB,MAAM,SAAS,OAAO;oBAEtB,MAAM,SAAS,OAAO;qBAErB,MAAM,SAAS,OAAO;IAEvC,mBAAmB;mBACJ,MAAM;IAUrB,gBAAgB;;IAMhB,iBAAiB;kBACH,OAAO;IAKrB,aAAa;kBACC,MAAM;IAKpB,iBAAiB;qBACA,MAAM;CASmB,CAAC;AAC/C,eAAO,MAAM,SAAS;qBAhDD,MAAM,SAAS,OAAO;oBAEvB,MAAM,SAAS,OAAO;oBAEtB,MAAM,SAAS,OAAO;qBAErB,MAAM,SAAS,OAAO;IAEvC,mBAAmB;mBACJ,MAAM;IAUrB,gBAAgB;;IAMhB,iBAAiB;kBACH,OAAO;IAKrB,aAAa;kBACC,MAAM;IAKpB,iBAAiB;qBACA,MAAM;CAUiB,CAAC;AAC7C,eAAO,MAAM,aAAa;qBAjDL,MAAM,SAAS,OAAO;oBAEvB,MAAM,SAAS,OAAO;oBAEtB,MAAM,SAAS,OAAO;qBAErB,MAAM,SAAS,OAAO;IAEvC,mBAAmB;mBACJ,MAAM;IAUrB,gBAAgB;;IAMhB,iBAAiB;kBACH,OAAO;IAKrB,aAAa;kBACC,MAAM;IAKpB,iBAAiB;qBACA,MAAM;CAWyB,CAAC;AACrD,eAAO,MAAM,QAAQ;qBAlDA,MAAM,SAAS,OAAO;oBAEvB,MAAM,SAAS,OAAO;oBAEtB,MAAM,SAAS,OAAO;qBAErB,MAAM,SAAS,OAAO;IAEvC,mBAAmB;mBACJ,MAAM;IAUrB,gBAAgB;;IAMhB,iBAAiB;kBACH,OAAO;IAKrB,aAAa;kBACC,MAAM;IAKpB,iBAAiB;qBACA,MAAM;CAYe,CAAC"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug Logger
|
|
3
|
+
*/
|
|
4
|
+
// Global flag for controlling debug mode
|
|
5
|
+
let debugEnabled = false;
|
|
6
|
+
// Check debug mode
|
|
7
|
+
function isDebugEnabled() {
|
|
8
|
+
if (typeof window !== 'undefined') {
|
|
9
|
+
return debugEnabled || localStorage.getItem('seedkey_debug') === 'true';
|
|
10
|
+
}
|
|
11
|
+
return debugEnabled;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Enable debug logging
|
|
15
|
+
*/
|
|
16
|
+
export function enableDebug() {
|
|
17
|
+
debugEnabled = true;
|
|
18
|
+
if (typeof window !== 'undefined') {
|
|
19
|
+
localStorage.setItem('seedkey_debug', 'true');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Disable debug logging
|
|
24
|
+
*/
|
|
25
|
+
export function disableDebug() {
|
|
26
|
+
debugEnabled = false;
|
|
27
|
+
if (typeof window !== 'undefined') {
|
|
28
|
+
localStorage.removeItem('seedkey_debug');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Colors for different modules
|
|
32
|
+
const MODULE_COLORS = {
|
|
33
|
+
'SDK': '#10b981', // emerald
|
|
34
|
+
'Auth': '#8b5cf6', // violet
|
|
35
|
+
'API': '#3b82f6', // blue
|
|
36
|
+
'Storage': '#f59e0b', // amber
|
|
37
|
+
'UI': '#ec4899', // pink
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Create a module logger
|
|
41
|
+
*/
|
|
42
|
+
export function createLogger(module) {
|
|
43
|
+
const color = MODULE_COLORS[module] || '#64748b';
|
|
44
|
+
const formatPrefix = () => {
|
|
45
|
+
const now = new Date();
|
|
46
|
+
const time = now.toLocaleTimeString('ru-RU', {
|
|
47
|
+
hour: '2-digit',
|
|
48
|
+
minute: '2-digit',
|
|
49
|
+
second: '2-digit'
|
|
50
|
+
});
|
|
51
|
+
const ms = now.getMilliseconds().toString().padStart(3, '0');
|
|
52
|
+
return [`%c[${module}]%c ${time}.${ms}`, `color: ${color}; font-weight: bold`, 'color: #64748b'];
|
|
53
|
+
};
|
|
54
|
+
const log = (level, message, data) => {
|
|
55
|
+
if (!isDebugEnabled())
|
|
56
|
+
return;
|
|
57
|
+
const [prefix, ...styles] = formatPrefix();
|
|
58
|
+
const fullMessage = `${prefix} ${message}`;
|
|
59
|
+
const logFn = level === 'error' ? console.error
|
|
60
|
+
: level === 'warn' ? console.warn
|
|
61
|
+
: level === 'debug' ? console.debug
|
|
62
|
+
: console.log;
|
|
63
|
+
if (data !== undefined) {
|
|
64
|
+
logFn(fullMessage, ...styles, data);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
logFn(fullMessage, ...styles);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return {
|
|
71
|
+
debug: (message, data) => log('debug', message, data),
|
|
72
|
+
info: (message, data) => log('info', message, data),
|
|
73
|
+
warn: (message, data) => log('warn', message, data),
|
|
74
|
+
error: (message, data) => log('error', message, data),
|
|
75
|
+
/** Log grouping */
|
|
76
|
+
group: (label, collapsed = true) => {
|
|
77
|
+
if (!isDebugEnabled())
|
|
78
|
+
return;
|
|
79
|
+
const [prefix, ...styles] = formatPrefix();
|
|
80
|
+
if (collapsed) {
|
|
81
|
+
console.groupCollapsed(`${prefix} ${label}`, ...styles);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.group(`${prefix} ${label}`, ...styles);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
/** End group */
|
|
88
|
+
groupEnd: () => {
|
|
89
|
+
if (!isDebugEnabled())
|
|
90
|
+
return;
|
|
91
|
+
console.groupEnd();
|
|
92
|
+
},
|
|
93
|
+
/** Data table */
|
|
94
|
+
table: (data) => {
|
|
95
|
+
if (!isDebugEnabled())
|
|
96
|
+
return;
|
|
97
|
+
console.table(data);
|
|
98
|
+
},
|
|
99
|
+
/** Timing */
|
|
100
|
+
time: (label) => {
|
|
101
|
+
if (!isDebugEnabled())
|
|
102
|
+
return;
|
|
103
|
+
console.time(`[${module}] ${label}`);
|
|
104
|
+
},
|
|
105
|
+
/** End timing */
|
|
106
|
+
timeEnd: (label) => {
|
|
107
|
+
if (!isDebugEnabled())
|
|
108
|
+
return;
|
|
109
|
+
console.timeEnd(`[${module}] ${label}`);
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Pre-created loggers for modules
|
|
114
|
+
export const sdkLogger = createLogger('SDK');
|
|
115
|
+
export const authLogger = createLogger('Auth');
|
|
116
|
+
export const apiLogger = createLogger('API');
|
|
117
|
+
export const storageLogger = createLogger('Storage');
|
|
118
|
+
export const uiLogger = createLogger('UI');
|
|
119
|
+
// Global functions to enable/disable debug in browser console
|
|
120
|
+
if (typeof window !== 'undefined') {
|
|
121
|
+
window.enableSeedKeyDebug = () => {
|
|
122
|
+
enableDebug();
|
|
123
|
+
console.log('🔓 SeedKey debug mode enabled. Reload the page.');
|
|
124
|
+
};
|
|
125
|
+
window.disableSeedKeyDebug = () => {
|
|
126
|
+
disableDebug();
|
|
127
|
+
console.log('🔒 SeedKey debug mode disabled. Reload the page.');
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SeedKey Auth SDK
|
|
3
|
+
*
|
|
4
|
+
* COMMUNICATION:
|
|
5
|
+
* - Events are versioned: 'seedkey:v1:request' / 'seedkey:v1:response'
|
|
6
|
+
*
|
|
7
|
+
* 🔑 TWO USAGE MODES:
|
|
8
|
+
*
|
|
9
|
+
* 1. Ready-to-use methods (REST API):
|
|
10
|
+
* - auth(), register(), authenticate() - full flow
|
|
11
|
+
* - getUser(), logout(), refreshToken() - session management
|
|
12
|
+
*
|
|
13
|
+
* 2. Low-level methods (custom implementation):
|
|
14
|
+
* - checkExtension() - extension check
|
|
15
|
+
* - getPublicKey() - get public key
|
|
16
|
+
* - signChallenge() - sign challenge
|
|
17
|
+
* - signMessage() - sign an arbitrary message
|
|
18
|
+
* - requestChallenge() - request challenge from backend
|
|
19
|
+
*/
|
|
20
|
+
import { SeedKeyOptions, AuthResult, AuthOptions, Challenge, ChallengeResponse, SignChallengeResult, SignMessageResult, UserProfile, TokenInfo, ExtensionStatus } from './types';
|
|
21
|
+
/**
|
|
22
|
+
* Get the request event name for the current SDK version
|
|
23
|
+
*/
|
|
24
|
+
export declare function getRequestEventName(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Get the response event name for the current SDK version
|
|
27
|
+
*/
|
|
28
|
+
export declare function getResponseEventName(): string;
|
|
29
|
+
export declare class SeedKey {
|
|
30
|
+
private backendUrl;
|
|
31
|
+
private timeout;
|
|
32
|
+
private pendingRequests;
|
|
33
|
+
constructor(options: SeedKeyOptions);
|
|
34
|
+
/**
|
|
35
|
+
* Cleanup resources on shutdown
|
|
36
|
+
*/
|
|
37
|
+
destroy(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Check whether the extension is installed
|
|
40
|
+
* → Extension: check_available
|
|
41
|
+
*/
|
|
42
|
+
isAvailable(): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Check whether the extension is initialized (has an identity)
|
|
45
|
+
* → Extension: is_initialized
|
|
46
|
+
*/
|
|
47
|
+
isInitialized(): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Full extension check: installed + configured
|
|
50
|
+
*
|
|
51
|
+
* @returns Extension status
|
|
52
|
+
* @throws ExtensionNotFoundError - if the extension is not installed
|
|
53
|
+
* @throws ExtensionNotConfiguredError - if the extension is not configured
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* try {
|
|
58
|
+
* const status = await sdk.checkExtension();
|
|
59
|
+
* console.log('Extension ready:', status);
|
|
60
|
+
* } catch (error) {
|
|
61
|
+
* if (error instanceof ExtensionNotFoundError) {
|
|
62
|
+
* console.log('Install from:', error.downloadUrl);
|
|
63
|
+
* }
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
checkExtension(): Promise<ExtensionStatus>;
|
|
68
|
+
/**
|
|
69
|
+
* Get extension status without throwing errors
|
|
70
|
+
*
|
|
71
|
+
* @returns Extension status with downloadUrl if not installed
|
|
72
|
+
*/
|
|
73
|
+
getExtensionStatus(): Promise<ExtensionStatus>;
|
|
74
|
+
/**
|
|
75
|
+
* Get extension download URL
|
|
76
|
+
*/
|
|
77
|
+
getDownloadUrl(): string;
|
|
78
|
+
/**
|
|
79
|
+
* Get public key for the current domain
|
|
80
|
+
* → Extension: get_public_key
|
|
81
|
+
*/
|
|
82
|
+
getPublicKey(): Promise<string>;
|
|
83
|
+
/**
|
|
84
|
+
* Sign an arbitrary message
|
|
85
|
+
* → Extension: sign_message
|
|
86
|
+
*/
|
|
87
|
+
signMessage(message: string): Promise<SignMessageResult>;
|
|
88
|
+
/**
|
|
89
|
+
* Get SDK version
|
|
90
|
+
*/
|
|
91
|
+
getVersion(): string;
|
|
92
|
+
/**
|
|
93
|
+
* Sign challenge via Extension
|
|
94
|
+
*
|
|
95
|
+
* Use this method for custom authentication implementation.
|
|
96
|
+
*
|
|
97
|
+
* → Extension: sign_challenge
|
|
98
|
+
*
|
|
99
|
+
* @param challenge - Challenge from backend
|
|
100
|
+
* @returns Signature and public key
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* // Custom authentication
|
|
105
|
+
* const publicKey = await sdk.getPublicKey();
|
|
106
|
+
* const { challenge } = await sdk.requestChallenge(publicKey, 'authenticate');
|
|
107
|
+
* const { signature } = await sdk.signChallenge(challenge);
|
|
108
|
+
* // Send signature to your backend
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
signChallenge(challenge: Challenge): Promise<SignChallengeResult>;
|
|
112
|
+
/**
|
|
113
|
+
* Register a new account
|
|
114
|
+
*
|
|
115
|
+
* Flow:
|
|
116
|
+
* 1. SDK → Extension: getPublicKey()
|
|
117
|
+
* 2. SDK → Backend: POST /challenge {publicKey, action: 'register'}
|
|
118
|
+
* 3. SDK → Extension: signChallenge()
|
|
119
|
+
* 4. SDK → Backend: POST /register
|
|
120
|
+
*/
|
|
121
|
+
register(opts?: AuthOptions): Promise<AuthResult>;
|
|
122
|
+
/**
|
|
123
|
+
* Authenticate an existing account
|
|
124
|
+
*
|
|
125
|
+
* Flow:
|
|
126
|
+
* 1. SDK → Extension: getPublicKey()
|
|
127
|
+
* 2. SDK → Backend: POST /challenge {publicKey, action: 'authenticate'}
|
|
128
|
+
* 3. SDK → Extension: signChallenge()
|
|
129
|
+
* 4. SDK → Backend: POST /verify
|
|
130
|
+
*/
|
|
131
|
+
authenticate(): Promise<AuthResult>;
|
|
132
|
+
/**
|
|
133
|
+
* Smart authentication: register if user doesn't exist, authenticate if user exists
|
|
134
|
+
*/
|
|
135
|
+
auth(opts?: AuthOptions): Promise<AuthResult>;
|
|
136
|
+
/**
|
|
137
|
+
* Get user information
|
|
138
|
+
* → Backend: GET /api/v1/seedkey/user
|
|
139
|
+
*/
|
|
140
|
+
getUser(accessToken: string): Promise<UserProfile>;
|
|
141
|
+
/**
|
|
142
|
+
* Logout (invalidate token)
|
|
143
|
+
* → Backend: POST /api/v1/seedkey/logout
|
|
144
|
+
*/
|
|
145
|
+
logout(accessToken: string): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Refresh token
|
|
148
|
+
* → Backend: POST /api/v1/seedkey/refresh
|
|
149
|
+
*/
|
|
150
|
+
refreshToken(refreshToken: string): Promise<TokenInfo>;
|
|
151
|
+
/**
|
|
152
|
+
* Request challenge from backend
|
|
153
|
+
*
|
|
154
|
+
* Use this method for custom authentication implementation.
|
|
155
|
+
*
|
|
156
|
+
* @param publicKey - Public key from getPublicKey()
|
|
157
|
+
* @param action - Action: 'register' or 'authenticate'
|
|
158
|
+
* @returns Challenge and its ID
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```ts
|
|
162
|
+
* // Custom authentication
|
|
163
|
+
* const publicKey = await sdk.getPublicKey();
|
|
164
|
+
* const { challenge, challengeId } = await sdk.requestChallenge(publicKey, 'authenticate');
|
|
165
|
+
* const { signature } = await sdk.signChallenge(challenge);
|
|
166
|
+
* // Send to your backend: { challengeId, signature, publicKey }
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
requestChallenge(publicKey: string, action: 'register' | 'authenticate'): Promise<ChallengeResponse>;
|
|
170
|
+
private httpGet;
|
|
171
|
+
private httpPost;
|
|
172
|
+
private handleResponse;
|
|
173
|
+
private sendToExtension;
|
|
174
|
+
private generateRequestId;
|
|
175
|
+
private getDeviceName;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get or create singleton SDK instance
|
|
179
|
+
*/
|
|
180
|
+
export declare function getSeedKey(options?: SeedKeyOptions): SeedKey;
|
|
181
|
+
/**
|
|
182
|
+
* Reset singleton instance
|
|
183
|
+
*/
|
|
184
|
+
export declare function resetSeedKey(): void;
|
|
185
|
+
export default SeedKey;
|
|
186
|
+
//# sourceMappingURL=seedkey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seedkey.d.ts","sourceRoot":"","sources":["../src/seedkey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,cAAc,EAId,UAAU,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EAEjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,eAAe,EAMhB,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAIR;gBAEH,OAAO,EAAE,cAAc;IAkBnC;;OAEG;IACH,OAAO,IAAI,IAAI;IAkBf;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAarC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAavC;;;;;;;;;;;;;;;;;;OAkBG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC;IAwBhD;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAmBpD;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAUrC;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAW9D;;OAEG;IACH,UAAU,IAAI,MAAM;IAQpB;;;;;;;;;;;;;;;;;;OAkBG;IACG,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAevE;;;;;;;;OAQG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA0CvD;;;;;;;;OAQG;IACG,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;IAuCzC;;OAEG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBnD;;;OAGG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IASxD;;;OAGG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhD;;;OAGG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAS5D;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAY5F,OAAO;YAuCP,QAAQ;IA4CtB,OAAO,CAAC,cAAc,CAgCpB;YAEY,eAAe;IA6C7B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;CAUtB;AAQD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAU5D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAMD,eAAe,OAAO,CAAC"}
|