@arcblock/did-connect-js 1.30.0 → 4.0.0-beta.10

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.
Files changed (124) hide show
  1. package/{lib/adapters/detect.d.cts → dist/adapters/detect.d.ts} +3 -5
  2. package/dist/adapters/detect.d.ts.map +1 -0
  3. package/dist/adapters/detect.js +13 -0
  4. package/dist/adapters/detect.js.map +1 -0
  5. package/dist/adapters/express.d.ts +40 -0
  6. package/dist/adapters/express.d.ts.map +1 -0
  7. package/dist/adapters/express.js +30 -0
  8. package/dist/adapters/express.js.map +1 -0
  9. package/dist/adapters/hono.d.ts +49 -0
  10. package/dist/adapters/hono.d.ts.map +1 -0
  11. package/dist/adapters/hono.js +176 -0
  12. package/dist/adapters/hono.js.map +1 -0
  13. package/dist/authenticator/base.d.ts +21 -0
  14. package/dist/authenticator/base.d.ts.map +1 -0
  15. package/dist/authenticator/base.js +109 -0
  16. package/dist/authenticator/base.js.map +1 -0
  17. package/dist/authenticator/wallet.d.ts +252 -0
  18. package/dist/authenticator/wallet.d.ts.map +1 -0
  19. package/dist/authenticator/wallet.js +590 -0
  20. package/dist/authenticator/wallet.js.map +1 -0
  21. package/dist/handlers/base.d.ts +25 -0
  22. package/dist/handlers/base.d.ts.map +1 -0
  23. package/dist/handlers/base.js +48 -0
  24. package/dist/handlers/base.js.map +1 -0
  25. package/dist/handlers/util.d.ts +48 -0
  26. package/dist/handlers/util.d.ts.map +1 -0
  27. package/dist/handlers/util.js +805 -0
  28. package/dist/handlers/util.js.map +1 -0
  29. package/dist/handlers/wallet.d.ts +96 -0
  30. package/dist/handlers/wallet.d.ts.map +1 -0
  31. package/dist/handlers/wallet.js +129 -0
  32. package/dist/handlers/wallet.js.map +1 -0
  33. package/dist/index.d.ts +11 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +9 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/protocol.d.ts +14 -0
  38. package/dist/protocol.d.ts.map +1 -0
  39. package/dist/protocol.js +37 -0
  40. package/dist/protocol.js.map +1 -0
  41. package/dist/schema/claims.d.ts +11 -0
  42. package/dist/schema/claims.d.ts.map +1 -0
  43. package/dist/schema/claims.js +226 -0
  44. package/dist/schema/claims.js.map +1 -0
  45. package/dist/schema/index.d.ts +4 -0
  46. package/dist/schema/index.d.ts.map +1 -0
  47. package/dist/schema/index.js +89 -0
  48. package/dist/schema/index.js.map +1 -0
  49. package/dist/storage/kv.d.ts +31 -0
  50. package/dist/storage/kv.d.ts.map +1 -0
  51. package/dist/storage/kv.js +54 -0
  52. package/dist/storage/kv.js.map +1 -0
  53. package/dist/types.d.ts +53 -0
  54. package/dist/types.d.ts.map +1 -0
  55. package/dist/types.js +2 -0
  56. package/dist/types.js.map +1 -0
  57. package/dist/utils/helpers.d.ts +19 -0
  58. package/dist/utils/helpers.d.ts.map +1 -0
  59. package/dist/utils/helpers.js +77 -0
  60. package/dist/utils/helpers.js.map +1 -0
  61. package/package.json +51 -107
  62. package/LICENSE +0 -13
  63. package/README.md +0 -210
  64. package/esm/_virtual/rolldown_runtime.mjs +0 -8
  65. package/esm/adapters/detect.d.mts +0 -11
  66. package/esm/adapters/detect.mjs +0 -16
  67. package/esm/adapters/express.d.mts +0 -48
  68. package/esm/adapters/express.mjs +0 -39
  69. package/esm/adapters/hono.d.mts +0 -57
  70. package/esm/adapters/hono.mjs +0 -164
  71. package/esm/authenticator/base.d.mts +0 -23
  72. package/esm/authenticator/base.mjs +0 -88
  73. package/esm/authenticator/wallet.d.mts +0 -270
  74. package/esm/authenticator/wallet.mjs +0 -556
  75. package/esm/did/did-connect/package.mjs +0 -118
  76. package/esm/handlers/base.d.mts +0 -32
  77. package/esm/handlers/base.mjs +0 -37
  78. package/esm/handlers/util.d.mts +0 -70
  79. package/esm/handlers/util.mjs +0 -739
  80. package/esm/handlers/wallet.d.mts +0 -120
  81. package/esm/handlers/wallet.mjs +0 -139
  82. package/esm/index.d.mts +0 -8
  83. package/esm/index.mjs +0 -8
  84. package/esm/node_modules/valibot/dist/index.mjs +0 -736
  85. package/esm/protocol.d.mts +0 -15
  86. package/esm/protocol.mjs +0 -40
  87. package/esm/schema/claims.d.mts +0 -16
  88. package/esm/schema/claims.mjs +0 -216
  89. package/esm/schema/index.d.mts +0 -29
  90. package/esm/schema/index.mjs +0 -75
  91. package/esm/storage/kv.d.mts +0 -33
  92. package/esm/storage/kv.mjs +0 -55
  93. package/esm/types.d.mts +0 -55
  94. package/esm/types.mjs +0 -1
  95. package/lib/_virtual/rolldown_runtime.cjs +0 -31
  96. package/lib/adapters/detect.cjs +0 -18
  97. package/lib/adapters/express.cjs +0 -41
  98. package/lib/adapters/express.d.cts +0 -48
  99. package/lib/adapters/hono.cjs +0 -167
  100. package/lib/adapters/hono.d.cts +0 -57
  101. package/lib/authenticator/base.cjs +0 -91
  102. package/lib/authenticator/base.d.cts +0 -23
  103. package/lib/authenticator/wallet.cjs +0 -565
  104. package/lib/authenticator/wallet.d.cts +0 -270
  105. package/lib/did/did-connect/package.cjs +0 -121
  106. package/lib/handlers/base.cjs +0 -40
  107. package/lib/handlers/base.d.cts +0 -32
  108. package/lib/handlers/util.cjs +0 -759
  109. package/lib/handlers/util.d.cts +0 -70
  110. package/lib/handlers/wallet.cjs +0 -139
  111. package/lib/handlers/wallet.d.cts +0 -119
  112. package/lib/index.cjs +0 -16
  113. package/lib/index.d.cts +0 -8
  114. package/lib/node_modules/valibot/dist/index.cjs +0 -756
  115. package/lib/protocol.cjs +0 -46
  116. package/lib/protocol.d.cts +0 -15
  117. package/lib/schema/claims.cjs +0 -218
  118. package/lib/schema/claims.d.cts +0 -16
  119. package/lib/schema/index.cjs +0 -79
  120. package/lib/schema/index.d.cts +0 -29
  121. package/lib/storage/kv.cjs +0 -57
  122. package/lib/storage/kv.d.cts +0 -33
  123. package/lib/types.cjs +0 -0
  124. package/lib/types.d.cts +0 -55
@@ -0,0 +1,252 @@
1
+ import BaseAuthenticator from './base.js';
2
+ export interface ApplicationInfo {
3
+ name: string;
4
+ description: string;
5
+ icon: string;
6
+ link?: string;
7
+ path?: string;
8
+ publisher?: string;
9
+ }
10
+ export interface ChainInfo {
11
+ id: string;
12
+ type: string;
13
+ host: string;
14
+ }
15
+ /**
16
+ * Encodes an on-chain transaction into a signed buffer.
17
+ *
18
+ * Inject this to support `signature` / `prepareTx` claims that reference
19
+ * concrete transaction types (e.g. `TransferV2Tx`). When omitted, those
20
+ * code paths throw a clear error — lightweight runtimes (Cloudflare Workers,
21
+ * Edge) can skip the ~2.5 MB `@ocap/client` dependency entirely.
22
+ *
23
+ * A typical implementation using `@ocap/client`:
24
+ * ```ts
25
+ * import Client from '@ocap/client';
26
+ * const txEncoder: TxEncoder = async ({ type, data, wallet, chainHost }) => {
27
+ * const client = new Client(chainHost);
28
+ * const { buffer } = await client[`encode${type}`]({ tx: data, wallet });
29
+ * return buffer;
30
+ * };
31
+ * ```
32
+ */
33
+ export type TxEncoder = (params: {
34
+ /** Transaction type name, e.g. `"TransferV2Tx"` */
35
+ type: string;
36
+ /** Transaction data object */
37
+ data: any;
38
+ /** Wallet used for encoding */
39
+ wallet: any;
40
+ /** Chain RPC endpoint */
41
+ chainHost: string;
42
+ }) => Promise<Buffer>;
43
+ export interface WalletAuthenticatorConfig {
44
+ wallet: any;
45
+ appInfo: ApplicationInfo | ((params: any) => ApplicationInfo | Promise<ApplicationInfo>);
46
+ memberAppInfo?: ApplicationInfo | ((params: any) => ApplicationInfo | Promise<ApplicationInfo>) | null;
47
+ delegator?: any;
48
+ delegation?: string | ((params: any) => string | Promise<string>);
49
+ timeout?: number;
50
+ chainInfo?: ChainInfo | ((params: any) => ChainInfo | Promise<ChainInfo>);
51
+ baseUrl?: string;
52
+ tokenKey?: string;
53
+ /** Optional transaction encoder — required only when using on-chain Tx signature claims. */
54
+ txEncoder?: TxEncoder;
55
+ }
56
+ declare class WalletAuthenticator extends BaseAuthenticator {
57
+ wallet: any;
58
+ appInfo: any;
59
+ memberAppInfo: any;
60
+ chainInfo: any;
61
+ delegator: any;
62
+ delegation: any;
63
+ baseUrl: string;
64
+ tokenKey: string;
65
+ timeout: number;
66
+ txEncoder?: TxEncoder;
67
+ static formatDisplay(display: any): string;
68
+ /**
69
+ * Creates an instance of DID Authenticator.
70
+ *
71
+ * @class
72
+ * @param {object} config
73
+ * @param {WalletObject|Function} config.wallet - wallet instance {@see @ocap/wallet} or a function that returns wallet instance
74
+ * @param {WalletObject|Function} [config.delegator] - the party that authorizes `wallet` to perform actions on behalf of `wallet`
75
+ * @param {string|Function} [config.delegation] - the jwt token that proves delegation relationship
76
+ * @param {ApplicationInfo|Function} config.appInfo - application basic info or a function that returns application info
77
+ * @param {ChainInfo|Function} config.chainInfo - application chain info or a function that returns chain info
78
+ * @param {Number} [config.timeout=8000] - timeout in milliseconds when generating claim
79
+ * @param {object} [config.baseUrl] - url to assemble wallet request uri, can be inferred from request object
80
+ * @param {string} [config.tokenKey='_t_'] - query param key for `token`
81
+ */
82
+ constructor({ wallet, appInfo, memberAppInfo, delegator, delegation, timeout, chainInfo, baseUrl, tokenKey, txEncoder, }: WalletAuthenticatorConfig);
83
+ /**
84
+ * Generate a deep link url that can be displayed as QRCode for DID Wallet to consume
85
+ *
86
+ * @method
87
+ * @param {object} params
88
+ * @param {string} params.baseUrl - baseUrl inferred from request object
89
+ * @param {string} params.pathname - wallet callback pathname
90
+ * @param {string} params.token - action token
91
+ * @param {object} params.query - params that should be persisted in wallet callback url
92
+ * @returns {string}
93
+ */
94
+ uri({ baseUrl, pathname, token, query, }?: {
95
+ baseUrl?: string;
96
+ pathname?: string;
97
+ token?: string;
98
+ query?: Record<string, any>;
99
+ }): string;
100
+ /**
101
+ * Compute public url to return to wallet
102
+ *
103
+ * @method
104
+ * @param {string} pathname
105
+ * @param {object} params
106
+ * @returns {string}
107
+ */
108
+ getPublicUrl(pathname: string, params?: Record<string, any>, baseUrl?: string): string;
109
+ /**
110
+ * Sign a plain response, usually on auth success or error
111
+ *
112
+ * @method
113
+ * @param {object} params
114
+ * @param {object} params.response - response
115
+ * @param {string} params.errorMessage - error message, default to empty
116
+ * @param {string} params.successMessage - success message, default to empty
117
+ * @param {string} params.nextWorkflow - https://github.com/ArcBlock/ABT-DID-Protocol#concatenate-multiple-workflow
118
+ * @param {string} params.nextUrl - tell wallet do open this url in webview
119
+ * @param {object} params.cookies - key-value pairs to be set as cookie before open nextUrl
120
+ * @param {object} params.storages - key-value pairs to be set as localStorage before open nextUrl
121
+ * @param {string} baseUrl
122
+ * @param {object} request
123
+ * @returns {Promise<object>} { appPk, agentPk, authInfo }
124
+ */
125
+ signResponse({ response, errorMessage, successMessage, nextWorkflow, nextUrl, cookies, storages, }: {
126
+ response?: any;
127
+ errorMessage?: string;
128
+ successMessage?: string;
129
+ nextWorkflow?: string;
130
+ nextUrl?: string;
131
+ cookies?: Record<string, any>;
132
+ storages?: any;
133
+ }, baseUrl: string, request: any, extraParams?: Record<string, any>): Promise<any>;
134
+ /**
135
+ * Sign a auth response that returned to wallet: tell the wallet the appInfo/chainInfo
136
+ *
137
+ * @method
138
+ * @param {object} params
139
+ * @param {object} params.claims - info required by application to complete the auth
140
+ * @param {string} params.pathname - pathname to assemble callback url
141
+ * @param {string} params.baseUrl - baseUrl
142
+ * @param {object} params.challenge - random challenge to be included in the body
143
+ * @param {object} params.extraParams - extra query params and locale
144
+ * @param {object} params.request
145
+ * @param {object} params.context
146
+ * @param {string} params.context.token - action token
147
+ * @param {number} params.context.currentStep - current step
148
+ * @param {string} [params.context.sharedKey] - shared key between app and wallet
149
+ * @param {string} [params.context.encryptionKey] - encryption key from wallet
150
+ * @param {Function} [params.context.mfaCode] - function used to generate mfa code
151
+ * @param {string} params.context.userDid - decoded from req.query, base58
152
+ * @param {string} params.context.userPk - decoded from req.query, base58
153
+ * @param {string} params.context.didwallet - DID Wallet os and version
154
+ * @returns {Promise<object>} { appPk, agentPk, sharedKey, authInfo }
155
+ */
156
+ sign({ context, request, claims, pathname, baseUrl, challenge, extraParams, }: {
157
+ context: any;
158
+ request: any;
159
+ claims: any;
160
+ pathname?: string;
161
+ baseUrl?: string;
162
+ challenge?: string;
163
+ extraParams?: Record<string, any>;
164
+ }): Promise<any>;
165
+ /**
166
+ * Determine chainInfo on the fly
167
+ *
168
+ * @param {object} params - contains the context of this request
169
+ * @param {object|undefined} [info=undefined] - chain info object or function
170
+ * @returns {Promise<ChainInfo>}
171
+ * @memberof WalletAuthenticator
172
+ */
173
+ getChainInfo(params: any, info?: any): Promise<ChainInfo>;
174
+ /**
175
+ * Determine appInfo/memberAppInfo on the fly
176
+ *
177
+ * @param {object} params - contains the context of this request
178
+ * @param {string} key - appInfo | memberAppInfo
179
+ * @returns {Promise<ApplicationInfo>}
180
+ * @memberof WalletAuthenticator
181
+ */
182
+ getAppInfo(params: any, key?: 'appInfo' | 'memberAppInfo'): Promise<any>;
183
+ getWalletInfo(params: any): Promise<any>;
184
+ getDelegator(params: any): Promise<any>;
185
+ getDelegation(params: any): Promise<any>;
186
+ /**
187
+ * Verify a DID auth response sent from DID Wallet
188
+ *
189
+ * @method
190
+ * @param {object} data
191
+ * @param {string} [locale=en]
192
+ * @param {boolean} [enforceTimestamp=true]
193
+ * @returns Promise<boolean>
194
+ */
195
+ verify(data: any, locale?: string, enforceTimestamp?: boolean): Promise<{
196
+ token: any;
197
+ userDid: string;
198
+ userPk: any;
199
+ claims: any;
200
+ action: any;
201
+ challenge: any;
202
+ timestamp: string;
203
+ }>;
204
+ genRequestedClaims({ claims, context, extraParams, }: {
205
+ claims: any;
206
+ context: any;
207
+ extraParams: Record<string, any>;
208
+ }): Promise<any[]>;
209
+ getClaimInfo({ claim, context, extraParams, }: {
210
+ claim: any;
211
+ context: any;
212
+ extraParams: Record<string, any>;
213
+ }): Promise<any>;
214
+ signature({ claim, context, extraParams, }: {
215
+ claim: any;
216
+ context: any;
217
+ extraParams: Record<string, any>;
218
+ }): Promise<{
219
+ type: string;
220
+ description: any;
221
+ origin: string;
222
+ typeUrl: any;
223
+ display: string;
224
+ method: any;
225
+ digest: any;
226
+ chainInfo: any;
227
+ meta: any;
228
+ mfa: any;
229
+ nonce: any;
230
+ requirement: any;
231
+ }>;
232
+ prepareTx({ claim, context, extraParams, }: {
233
+ claim: any;
234
+ context: any;
235
+ extraParams: Record<string, any>;
236
+ }): Promise<{
237
+ type: string;
238
+ description: any;
239
+ partialTx: string;
240
+ display: string;
241
+ requirement: any;
242
+ chainInfo: any;
243
+ meta: any;
244
+ mfa: any;
245
+ nonce: any;
246
+ }>;
247
+ _validateAppInfo(info: any, allowEmpty?: boolean): any;
248
+ _isValidChainInfo(x: any): boolean;
249
+ tryWithTimeout<T>(asyncFn: () => Promise<T>, label?: string): Promise<T>;
250
+ }
251
+ export default WalletAuthenticator;
252
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/authenticator/wallet.ts"],"names":[],"mappings":"AAOA,OAAO,iBAAyC,MAAM,WAAW,CAAC;AASlE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE;IAC/B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,EAAE,GAAG,CAAC;IACV,+BAA+B;IAC/B,MAAM,EAAE,GAAG,CAAC;IACZ,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IACzF,aAAa,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC;IACvG,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,cAAM,mBAAoB,SAAQ,iBAAiB;IACjD,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,GAAG,CAAC;IACb,aAAa,EAAE,GAAG,CAAC;IACnB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM;IAuB1C;;;;;;;;;;;;;OAaG;gBACS,EACV,MAAM,EACN,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,OAAyB,EACzB,SAA8B,EAC9B,OAAY,EACZ,QAAgB,EAChB,SAAS,GACV,EAAE,yBAAyB;IAqB5B;;;;;;;;;;OAUG;IACH,GAAG,CAAC,EACF,OAAO,EACP,QAAa,EACb,KAAU,EACV,KAAU,GACX,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAO;IAY5F;;;;;;;OAOG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,OAAO,SAAK;IAI7E;;;;;;;;;;;;;;;OAeG;IACG,YAAY,CAChB,EACE,QAAa,EACb,YAAiB,EACjB,cAAmB,EACnB,YAAiB,EACjB,OAAY,EACZ,OAAY,EACZ,QAAa,GACd,EAAE;QACD,QAAQ,CAAC,EAAE,GAAG,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,EACD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,GAAG,EACZ,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAgDvC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,IAAI,CAAC,EACT,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAa,EACb,OAAY,EACZ,SAAc,EACd,WAAgB,GACjB,EAAE;QACD,OAAO,EAAE,GAAG,CAAC;QACb,OAAO,EAAE,GAAG,CAAC;QACb,MAAM,EAAE,GAAG,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACnC;IA8ED;;;;;;;OAOG;IACG,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAmB/D;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,GAAE,SAAS,GAAG,eAA2B;IAsBpE,aAAa,CAAC,MAAM,EAAE,GAAG;IAWzB,YAAY,CAAC,MAAM,EAAE,GAAG;IASxB,aAAa,CAAC,MAAM,EAAE,GAAG;IAS/B;;;;;;;;OAQG;IACG,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,SAAO,EAAE,gBAAgB,UAAO;;;;;;;;;IAyB9D,kBAAkB,CAAC,EACjB,MAAM,EACN,OAAO,EACP,WAAW,GACZ,EAAE;QACD,MAAM,EAAE,GAAG,CAAC;QACZ,OAAO,EAAE,GAAG,CAAC;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;IAsCK,YAAY,CAAC,EACjB,KAAK,EACL,OAAO,EACP,WAAW,GACZ,EAAE;QACD,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,EAAE,GAAG,CAAC;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;IAsBK,SAAS,CAAC,EACd,KAAK,EACL,OAAO,EACP,WAAW,GACZ,EAAE;QACD,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,EAAE,GAAG,CAAC;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;;;;;;;;;;;;;;IAiHK,SAAS,CAAC,EACd,KAAK,EACL,OAAO,EACP,WAAW,GACZ,EAAE;QACD,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,EAAE,GAAG,CAAC;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;;;;;;;;;;;IAiFD,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,UAAQ;IAoB9C,iBAAiB,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO;IAKlC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,CAAC,CAAC;CA4BrE;AAED,eAAe,mBAAmB,CAAC"}