@prosopo/cli 3.4.6 → 3.4.17
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 +144 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +1243 -0
- package/coverage/coverage-final.json +22 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +146 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/src/RateLimiter.ts.html +298 -0
- package/coverage/src/argv.ts.html +325 -0
- package/coverage/src/cli.ts.html +328 -0
- package/coverage/src/commands/ensureExternalIndexes.ts.html +244 -0
- package/coverage/src/commands/ensureIndexes.ts.html +226 -0
- package/coverage/src/commands/index.html +236 -0
- package/coverage/src/commands/index.ts.html +145 -0
- package/coverage/src/commands/migrateIpInCaptchaRecords/getDb.ts.html +280 -0
- package/coverage/src/commands/migrateIpInCaptchaRecords/index.html +146 -0
- package/coverage/src/commands/migrateIpInCaptchaRecords/migrateIpField.ts.html +526 -0
- package/coverage/src/commands/migrateIpInCaptchaRecords/migrateIpInCaptchaRecords.ts.html +280 -0
- package/coverage/src/commands/providerSetDataset.ts.html +289 -0
- package/coverage/src/commands/siteKeyRegister.ts.html +445 -0
- package/coverage/src/commands/siteKeyRegisterApi.ts.html +478 -0
- package/coverage/src/commands/storeCaptchasExternally.ts.html +229 -0
- package/coverage/src/commands/validators.ts.html +280 -0
- package/coverage/src/commands/version.ts.html +193 -0
- package/coverage/src/files.ts.html +256 -0
- package/coverage/src/index.html +236 -0
- package/coverage/src/index.ts.html +142 -0
- package/coverage/src/process.env.ts.html +280 -0
- package/coverage/src/prosopo.config.ts.html +496 -0
- package/coverage/src/reloader.ts.html +394 -0
- package/coverage/src/start.ts.html +760 -0
- package/dist/RateLimiter.d.ts +59 -0
- package/dist/RateLimiter.d.ts.map +1 -0
- package/dist/RateLimiter.js +4 -0
- package/dist/RateLimiter.js.map +1 -0
- package/dist/argv.d.ts +22 -0
- package/dist/argv.d.ts.map +1 -0
- package/dist/argv.js +0 -2
- package/dist/argv.js.map +1 -0
- package/dist/bundle/i18nBackend-D6GWR1ra.js +5260 -0
- package/dist/bundle/provider.cli.bundle.js +101406 -0
- package/dist/cjs/RateLimiter.cjs +4 -0
- package/dist/cjs/argv.cjs +0 -2
- package/dist/cjs/cli.cjs +2 -10
- package/dist/cjs/commands/siteKeyRegister.cjs +2 -1
- package/dist/cjs/commands/siteKeyRegisterApi.cjs +2 -1
- package/dist/cjs/start.cjs +8 -10
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +0 -9
- package/dist/cli.js.map +1 -0
- package/dist/commands/ensureExternalIndexes.d.ts +13 -0
- package/dist/commands/ensureExternalIndexes.d.ts.map +1 -0
- package/dist/commands/ensureExternalIndexes.js.map +1 -0
- package/dist/commands/ensureIndexes.d.ts +13 -0
- package/dist/commands/ensureIndexes.d.ts.map +1 -0
- package/dist/commands/ensureIndexes.js.map +1 -0
- package/dist/commands/index.d.ts +8 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/migrateIpInCaptchaRecords/getDb.d.ts +5 -0
- package/dist/commands/migrateIpInCaptchaRecords/getDb.d.ts.map +1 -0
- package/dist/commands/migrateIpInCaptchaRecords/getDb.js +24 -25
- package/dist/commands/migrateIpInCaptchaRecords/getDb.js.map +1 -0
- package/dist/commands/migrateIpInCaptchaRecords/migrateIpField.d.ts +4 -0
- package/dist/commands/migrateIpInCaptchaRecords/migrateIpField.d.ts.map +1 -0
- package/dist/commands/migrateIpInCaptchaRecords/migrateIpField.js +90 -82
- package/dist/commands/migrateIpInCaptchaRecords/migrateIpField.js.map +1 -0
- package/dist/commands/migrateIpInCaptchaRecords/migrateIpInCaptchaRecords.d.ts +5 -0
- package/dist/commands/migrateIpInCaptchaRecords/migrateIpInCaptchaRecords.d.ts.map +1 -0
- package/dist/commands/migrateIpInCaptchaRecords/migrateIpInCaptchaRecords.js +34 -33
- package/dist/commands/migrateIpInCaptchaRecords/migrateIpInCaptchaRecords.js.map +1 -0
- package/dist/commands/providerSetDataset.d.ts +17 -0
- package/dist/commands/providerSetDataset.d.ts.map +1 -0
- package/dist/commands/providerSetDataset.js.map +1 -0
- package/dist/commands/siteKeyRegister.d.ts +57 -0
- package/dist/commands/siteKeyRegister.d.ts.map +1 -0
- package/dist/commands/siteKeyRegister.js +2 -1
- package/dist/commands/siteKeyRegister.js.map +1 -0
- package/dist/commands/siteKeyRegisterApi.d.ts +33 -0
- package/dist/commands/siteKeyRegisterApi.d.ts.map +1 -0
- package/dist/commands/siteKeyRegisterApi.js +2 -1
- package/dist/commands/siteKeyRegisterApi.js.map +1 -0
- package/dist/commands/storeCaptchasExternally.d.ts +13 -0
- package/dist/commands/storeCaptchasExternally.d.ts.map +1 -0
- package/dist/commands/storeCaptchasExternally.js.map +1 -0
- package/dist/commands/validators.d.ts +18 -0
- package/dist/commands/validators.d.ts.map +1 -0
- package/dist/commands/validators.js.map +1 -0
- package/dist/commands/version.d.ts +12 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/files.d.ts +4 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/process.env.d.ts +8 -0
- package/dist/process.env.d.ts.map +1 -0
- package/dist/process.env.js.map +1 -0
- package/dist/prosopo.config.d.ts +3 -0
- package/dist/prosopo.config.d.ts.map +1 -0
- package/dist/prosopo.config.js.map +1 -0
- package/dist/reloader.d.ts +20 -0
- package/dist/reloader.d.ts.map +1 -0
- package/dist/reloader.js.map +1 -0
- package/dist/start.d.ts +4 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +8 -10
- package/dist/start.js.map +1 -0
- package/dist/tests/bundle/bundle.unit.test.d.ts +2 -0
- package/dist/tests/bundle/bundle.unit.test.d.ts.map +1 -0
- package/dist/tests/bundle/bundle.unit.test.js +14 -0
- package/dist/tests/bundle/bundle.unit.test.js.map +1 -0
- package/package.json +21 -25
- package/dist/cjs/commands/migrateIpInCaptchaRecords/getDb.cjs +0 -32
- package/dist/cjs/commands/migrateIpInCaptchaRecords/migrateIpField.cjs +0 -98
- package/dist/cjs/commands/migrateIpInCaptchaRecords/migrateIpInCaptchaRecords.cjs +0 -56
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare const getRateLimitConfig: () => {
|
|
2
|
+
"/v1/prosopo/provider/client/captcha/image": {
|
|
3
|
+
windowMs: string | undefined;
|
|
4
|
+
limit: string | undefined;
|
|
5
|
+
};
|
|
6
|
+
"/v1/prosopo/provider/client/captcha/pow": {
|
|
7
|
+
windowMs: string | undefined;
|
|
8
|
+
limit: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
"/v1/prosopo/provider/client/solution": {
|
|
11
|
+
windowMs: string | undefined;
|
|
12
|
+
limit: string | undefined;
|
|
13
|
+
};
|
|
14
|
+
"/v1/prosopo/provider/client/pow/solution": {
|
|
15
|
+
windowMs: string | undefined;
|
|
16
|
+
limit: string | undefined;
|
|
17
|
+
};
|
|
18
|
+
"/v1/prosopo/provider/client/pow/verify": {
|
|
19
|
+
windowMs: string | undefined;
|
|
20
|
+
limit: string | undefined;
|
|
21
|
+
};
|
|
22
|
+
"/v1/prosopo/provider/client/image/dapp/verify": {
|
|
23
|
+
windowMs: string | undefined;
|
|
24
|
+
limit: string | undefined;
|
|
25
|
+
};
|
|
26
|
+
"/v1/prosopo/provider/client/status": {
|
|
27
|
+
windowMs: string | undefined;
|
|
28
|
+
limit: string | undefined;
|
|
29
|
+
};
|
|
30
|
+
"/v1/prosopo/provider/public/details": {
|
|
31
|
+
windowMs: string | undefined;
|
|
32
|
+
limit: string | undefined;
|
|
33
|
+
};
|
|
34
|
+
"/v1/prosopo/provider/client/events": {
|
|
35
|
+
windowMs: string | undefined;
|
|
36
|
+
limit: string | undefined;
|
|
37
|
+
};
|
|
38
|
+
"/v1/prosopo/provider/admin/sitekey/register": {
|
|
39
|
+
windowMs: string | undefined;
|
|
40
|
+
limit: string | undefined;
|
|
41
|
+
};
|
|
42
|
+
"/v1/prosopo/provider/admin/detector/update": {
|
|
43
|
+
windowMs: string | undefined;
|
|
44
|
+
limit: string | undefined;
|
|
45
|
+
};
|
|
46
|
+
"/v1/prosopo/provider/admin/detector/remove": {
|
|
47
|
+
windowMs: string | undefined;
|
|
48
|
+
limit: string | undefined;
|
|
49
|
+
};
|
|
50
|
+
"/v1/prosopo/provider/admin/maintenance/toggle": {
|
|
51
|
+
windowMs: string | undefined;
|
|
52
|
+
limit: string | undefined;
|
|
53
|
+
};
|
|
54
|
+
"/v1/prosopo/provider/client/captcha/frictionless": {
|
|
55
|
+
windowMs: string | undefined;
|
|
56
|
+
limit: string | undefined;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=RateLimiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../src/RateLimiter.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2D9B,CAAC"}
|
package/dist/RateLimiter.js
CHANGED
|
@@ -49,6 +49,10 @@ const getRateLimitConfig = () => {
|
|
|
49
49
|
windowMs: process.env.PROSOPO_REMOVE_DETECTOR_KEY_WINDOW,
|
|
50
50
|
limit: process.env.PROSOPO_REMOVE_DETECTOR_KEY_LIMIT
|
|
51
51
|
},
|
|
52
|
+
[AdminApiPaths.ToggleMaintenanceMode]: {
|
|
53
|
+
windowMs: process.env.PROSOPO_TOGGLE_MAINTENANCE_MODE_WINDOW,
|
|
54
|
+
limit: process.env.PROSOPO_TOGGLE_MAINTENANCE_MODE_LIMIT
|
|
55
|
+
},
|
|
52
56
|
[ClientApiPaths.GetFrictionlessCaptchaChallenge]: {
|
|
53
57
|
windowMs: process.env.PROSOPO_GET_FR_CAPTCHA_CHALLENGE_WINDOW,
|
|
54
58
|
limit: process.env.PROSOPO_GET_FR_CAPTCHA_CHALLENGE_LIMIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../src/RateLimiter.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACtC,OAAO;QACN,CAAC,cAAc,CAAC,wBAAwB,CAAC,EAAE;YAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,0CAA0C;YAChE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,yCAAyC;SAC5D;QACD,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE;YACxC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC;YAC9D,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC;SAC1D;QACD,CAAC,cAAc,CAAC,0BAA0B,CAAC,EAAE;YAC5C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,4CAA4C;YAClE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,2CAA2C;SAC9D;QACD,CAAC,cAAc,CAAC,wBAAwB,CAAC,EAAE;YAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,0CAA0C;YAChE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,yCAAyC;SAC5D;QACD,CAAC,cAAc,CAAC,wBAAwB,CAAC,EAAE;YAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,0CAA0C;YAChE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,yCAAyC;SAC5D;QACD,CAAC,cAAc,CAAC,8BAA8B,CAAC,EAAE;YAChD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iDAAiD;YACvE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gDAAgD;SACnE;QACD,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;YACnC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC;YACxD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;SACpD;QACD,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;YACpC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC;YACzD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC;SACrD;QACD,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE;YAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;YACvD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;SACnD;QACD,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;YAChC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;YACtD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;SAClD;QACD,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE;YAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC;YACxD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;SACpD;QACD,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE;YAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC;YACxD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;SACpD;QACD,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE;YACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sCAAsC;YAC5D,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC;SACxD;QACD,CAAC,cAAc,CAAC,+BAA+B,CAAC,EAAE;YACjD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC;YAC7D,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,sCAAsC;SACzD;KACD,CAAC;AACH,CAAC,CAAC"}
|
package/dist/argv.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { KeyringPair } from "@prosopo/types";
|
|
2
|
+
import type { ProsopoConfigOutput } from "@prosopo/types";
|
|
3
|
+
export type AwaitedProcessedArgs = {
|
|
4
|
+
[x: string]: unknown;
|
|
5
|
+
api: boolean;
|
|
6
|
+
_: (string | number)[];
|
|
7
|
+
$0: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function processArgs(args: string[], pair: KeyringPair, authAccount: KeyringPair, config: ProsopoConfigOutput): {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
api: boolean;
|
|
12
|
+
adminApi: boolean;
|
|
13
|
+
_: (string | number)[];
|
|
14
|
+
$0: string;
|
|
15
|
+
} | Promise<{
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
api: boolean;
|
|
18
|
+
adminApi: boolean;
|
|
19
|
+
_: (string | number)[];
|
|
20
|
+
$0: string;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=argv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAa1D,MAAM,MAAM,oBAAoB,GAAG;IAClC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;CACX,CAAC;AAmBF,wBAAgB,WAAW,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,mBAAmB;;;;;;;;;;;;GAoB3B"}
|
package/dist/argv.js
CHANGED
|
@@ -2,7 +2,6 @@ import { getLogger, LogLevel } from "@prosopo/common";
|
|
|
2
2
|
import yargs from "yargs";
|
|
3
3
|
import { hideBin } from "yargs/helpers";
|
|
4
4
|
import "./commands/index.js";
|
|
5
|
-
import { migrateIpInCaptchaRecordsCommand } from "./commands/migrateIpInCaptchaRecords/migrateIpInCaptchaRecords.js";
|
|
6
5
|
import commandEnsureIndexes from "./commands/ensureIndexes.js";
|
|
7
6
|
import commandEnsureExternalIndexes from "./commands/ensureExternalIndexes.js";
|
|
8
7
|
import commandProviderSetDataset from "./commands/providerSetDataset.js";
|
|
@@ -18,7 +17,6 @@ function getCommands(pair, config, authAccount, logger) {
|
|
|
18
17
|
commandStoreCaptchasExternally(pair, config, { logger }),
|
|
19
18
|
commandSiteKeyRegister(pair, config, { logger }),
|
|
20
19
|
commandSiteKeyRegisterApi(pair, authAccount, config, { logger }),
|
|
21
|
-
migrateIpInCaptchaRecordsCommand(pair, config, logger),
|
|
22
20
|
commandVersion(pair, config, { logger })
|
|
23
21
|
];
|
|
24
22
|
}
|
package/dist/argv.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGnE,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACN,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,cAAc,GACd,MAAM,qBAAqB,CAAC;AAS7B,SAAS,WAAW,CACnB,IAAiB,EACjB,MAA2B,EAC3B,WAAwB,EACxB,MAAc;IAEd,OAAO;QACN,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;QAC9C,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;QACtD,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;QACnD,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;QACxD,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;QAChD,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;QAChE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;KACxC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,IAAc,EACd,IAAiB,EACjB,WAAwB,EACxB,MAA2B;IAE3B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACzC,KAAK,CAAC,gDAAgD,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;SAC1E,MAAM,CAAC,UAAU,EAAE;QACnB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,SAAS;KACN,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC;AAC/B,CAAC"}
|