diff --git a/.eslintrc.js b/.eslintrc.js index 16b400db..51497881 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,9 +2,6 @@ module.exports = { root: true, parser: "@typescript-eslint/parser", plugins: ["@typescript-eslint"], - rules: { - "@typescript-eslint/no-explicit-any": "off", - }, env: { node: true, }, diff --git a/lib/aspects/resource_prefixer/resource_prefixer.ts b/lib/aspects/resource_prefixer/resource_prefixer.ts index 714319fc..67e560f5 100644 --- a/lib/aspects/resource_prefixer/resource_prefixer.ts +++ b/lib/aspects/resource_prefixer/resource_prefixer.ts @@ -16,12 +16,14 @@ import { import { CfnResourcePrefixer } from "./cfn_resource_prefixer"; import { EmptyCfnResourcePrefixer } from "./prefixers/empty_cfn_resource_prefixer"; +/* eslint-disable @typescript-eslint/no-explicit-any */ export type Constructor = { new (...args: any[]): T }; type CfnResourceConstructor = { new (...args: any[]): cdk.CfnResource; CFN_RESOURCE_TYPE_NAME: string; }; +/* eslint-enable @typescript-eslint/no-explicit-any */ export class ResourcePrefixer implements cdk.IAspect { private prefix: string; diff --git a/src/lambda/api/PersonaAuthorizer.d.ts b/src/lambda/api/PersonaAuthorizer.d.ts index 20caa711..2fa7b685 100644 --- a/src/lambda/api/PersonaAuthorizer.d.ts +++ b/src/lambda/api/PersonaAuthorizer.d.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ import { PersonaClient } from "talis-node"; type ParsedArn = { method: string; @@ -44,3 +45,4 @@ export declare class PersonaAuthorizer { pathMatch(pathDefinition: string, path: string): boolean; } export {}; +/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/lambda/api/PersonaAuthorizer.js b/src/lambda/api/PersonaAuthorizer.js index 6e9a7e8f..9315bf61 100644 --- a/src/lambda/api/PersonaAuthorizer.js +++ b/src/lambda/api/PersonaAuthorizer.js @@ -35,6 +35,7 @@ const API_GATEWAY_ARN_INDEXES = [ METHOD_INDEX, RESOURCE_PATH_INDEX, ]; +/* eslint-disable @typescript-eslint/no-explicit-any */ class PersonaAuthorizer { constructor(event, context) { this.event = event; @@ -208,4 +209,5 @@ class PersonaAuthorizer { } } exports.PersonaAuthorizer = PersonaAuthorizer; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYUF1dGhvcml6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJQZXJzb25hQXV0aG9yaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0QkFBNEI7QUFDNUIsMkNBQW9EO0FBYXBELG9DQUFvQztBQUNwQyxFQUFFO0FBQ0YscUJBQXFCO0FBQ3JCLDZGQUE2RjtBQUM3RixvRUFBb0U7QUFDcEUsOEZBQThGO0FBQzlGLEVBQUU7QUFDRixFQUFFO0FBQ0YsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUNwQixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFDeEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBRWhDLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsU0FBUztJQUNULFNBQVM7SUFDVCxhQUFhO0lBQ2IsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixxQkFBcUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDdEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRTlCLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsWUFBWTtJQUNaLFdBQVc7SUFDWCxZQUFZO0lBQ1osbUJBQW1CO0NBQ3BCLENBQUM7QUFFRixNQUFhLGlCQUFpQjtJQUs1QixZQUFZLEtBQVUsRUFBRSxPQUFZO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxL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LENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVsQyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ25ELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25ELE1BQU0scUJBQXFCLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpDLElBQ0UscUJBQXFCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDckMscUJBQXFCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUNuQztnQkFDQSx3QkFBd0I7YUFDekI7aUJBQU07Z0JBQ0wsd0JBQXdCO2dCQUN4QixJQUFJLHFCQUFxQixLQUFLLFdBQVcsRUFBRTtvQkFDekMsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUE3TkQsOENBNk5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBwZXJzb25hLCBQZXJzb25hQ2xpZW50IH0gZnJvbSBcInRhbGlzLW5vZGVcIjtcblxudHlwZSBQYXJzZWRBcm4gPSB7XG4gIG1ldGhvZDogc3RyaW5nO1xuICByZXNvdXJjZVBhdGg6IHN0cmluZztcbiAgYXBpT3B0aW9uczoge1xuICAgIHJlZ2lvbjogc3RyaW5nO1xuICAgIHJlc3RBcGlJZDogc3RyaW5nO1xuICAgIHN0YWdlOiBzdHJpbmc7XG4gIH07XG4gIGF3c0FjY291bnRJZDogc3RyaW5nO1xufTtcblxuLy8gQ29uc3RhbnRzIHVzZWQgYnkgcGFyc2VNZXRob2RBcm46XG4vL1xuLy8gRXhhbXBsZSBNZXRob2RBUk46XG4vLyAgIFwiYXJuOmF3czpleGVjdXRlLWFwaTo8UmVnaW9uIGlkPjo8QWNjb3VudCBpZD46PEFQSSBpZD4vPFN0YWdlPi88TWV0aG9kPi88UmVzb3VyY2UgcGF0aD5cIlxuLy8gTWV0aG9kIEFSTiBJbmRleDogIDAgICAxICAgMiAgICAgICAgICAgMyAgICAgICAgICAgNCAgICAgICAgICAgIDVcbi8vIEFQSSBHYXRld2F5IEFSTiBJbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICAgICAgICAxICAgICAgIDIgICAgICAgIDNcbi8vXG4vL1xuY29uc3QgQVJOX0lOREVYID0gMDtcbmNvbnN0IEFXU19JTkRFWCA9IDE7XG5jb25zdCBFWEVDVVRFX0lOREVYID0gMjtcbmNvbnN0IFJFR0lPTl9JTkRFWCA9IDM7XG5jb25zdCBBQ0NPVU5UX0lEX0lOREVYID0gNDtcbmNvbnN0IEFQSV9HQVRFV0FZX0FSTl9JTkRFWCA9IDU7XG5cbmNvbnN0IE1FVEhPRF9BUk5fSU5ERVhFUyA9IFtcbiAgQVJOX0lOREVYLFxuICBBV1NfSU5ERVgsXG4gIEVYRUNVVEVfSU5ERVgsXG4gIFJFR0lPTl9JTkRFWCxcbiAgQUNDT1VOVF9JRF9JTkRFWCxcbiAgQVBJX0dBVEVXQVlfQVJOX0lOREVYLFxuXTtcblxuY29uc3QgQVBJX0lEX0lOREVYID0gMDtcbmNvbnN0IFNUQUdFX0lOREVYID0gMTtcbmNvbnN0IE1FVEhPRF9JTkRFWCA9IDI7XG5jb25zdCBSRVNPVVJDRV9QQVRIX0lOREVYID0gMztcblxuY29uc3QgQVBJX0dBVEVXQVlfQVJOX0lOREVYRVMgPSBbXG4gIEFQSV9JRF9JTkRFWCxcbiAgU1RBR0VfSU5ERVgsXG4gIE1FVEhPRF9JTkRFWCxcbiAgUkVTT1VSQ0VfUEFUSF9JTkRFWCxcbl07XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25hQXV0aG9yaXplciB7XG4gIGV2ZW50OiBhbnk7XG4gIGNvbnRleHQ6IGFueTtcbiAgcGVyc29uYUNsaWVudDogUGVyc29uYUNsaWVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihldmVudDogYW55LCBjb250ZXh0OiBhbnkpIHtcbiAgICB0aGlzLmV2ZW50ID0gZXZlbnQ7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcblxuICAgIHRoaXMucGVyc29uYUNsaWVudCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZSgpIHtcbiAgICBjb25zb2xlLmxvZyhcIlJlY2VpdmVkIGV2ZW50XCIsIHRoaXMuZXZlbnQpO1xuXG4gICAgaWYgKCF0aGlzLmV2ZW50Py5oZWFkZXJzIHx8IHRoaXMuZXZlbnQuaGVhZGVyc1tcImF1dGhvcml6YXRpb25cIl0gPT0gbnVsbCkge1xuICAgICAgY29uc29sZS5sb2coXCJNaXNzaW5nIGF1dGggdG9rZW5cIik7XG4gICAgICByZXR1cm4gdGhpcy5jb250ZXh0LmZhaWwoXCJVbmF1dGhvcml6ZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkTWV0aG9kQXJuID0gdGhpcy5wYXJzZU1ldGhvZEFybih0aGlzLmV2ZW50LnJvdXRlQXJuKTtcbiAgICBjb25zb2xlLmxvZyhgUGFyc2VkIE1ldGhvZCBBcm46ICR7SlNPTi5zdHJpbmdpZnkocGFyc2VkTWV0aG9kQXJuKX1gKTtcblxuICAgIGNvbnN0IHNjb3BlID0gdGhpcy5nZXRTY29wZShwYXJzZWRNZXRob2RBcm4pO1xuICAgIGNvbnNvbGUubG9nKGBNZXRob2QgaGFzIHNjb3BlOiAke3Njb3BlfWApO1xuXG4gICAgbGV0IHZhbGlkYXRpb25PcHRzID0ge1xuICAgICAgdG9rZW46IF8ucmVwbGFjZShcbiAgICAgICAgdGhpcy5ldmVudC5oZWFkZXJzW1wiYXV0aG9yaXphdGlvblwiXSxcbiAgICAgICAgXCJCZWFyZXJcIixcbiAgICAgICAgXCJcIixcbiAgICAgICkudHJpbSgpLFxuICAgIH07XG4gICAgaWYgKHNjb3BlICE9IG51bGwpIHtcbiAgICAgIHZhbGlkYXRpb25PcHRzID0gXy5tZXJnZSh2YWxpZGF0aW9uT3B0cywgeyBzY29wZSB9KTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coYFZhbGlkYXRpb24gb3BzOiAke0pTT04uc3RyaW5naWZ5KHZhbGlkYXRpb25PcHRzKX1gKTtcblxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgXCJ2YWxpZGF0aW5nIHRva2VuIGFnYWluc3QgcmVxdWVzdFwiLFxuICAgICAgYCR7cGFyc2VkTWV0aG9kQXJuLnJlc291cmNlUGF0aH1gLFxuICAgICk7XG5cbiAgICBpZiAoIXZhbGlkYXRpb25PcHRzLnRva2VuIHx8IHZhbGlkYXRpb25PcHRzLnRva2VuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5sb2coXCJ0b2tlbiBtaXNzaW5nXCIpO1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5mYWlsKFwiVW5hdXRob3JpemVkXCIpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMudmFsaWRhdGVUb2tlbih2YWxpZGF0aW9uT3B0cyk7XG4gICAgICBjb25zdCBzdWNjZXNzID0ge1xuICAgICAgICBpc0F1dGhvcml6ZWQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBjbGllbnRJZDogdG9rZW5bXCJzdWJcIl0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5zdWNjZWVkKHN1Y2Nlc3MpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5sb2coXCJ0b2tlbiB2YWxpZGF0aW9uIGZhaWxlZFwiLCBlcnIpO1xuXG4gICAgICBjb25zdCBlcnJvciA9IGVyciBhcyB7IGVycm9yOiBhbnk7IHRva2VuOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH07XG5cbiAgICAgIGlmIChlcnJvci5lcnJvciA9PT0gcGVyc29uYS5lcnJvclR5cGVzLklOU1VGRklDSUVOVF9TQ09QRSkge1xuICAgICAgICBjb25zdCBpbnN1ZmZpY2llbnRTY29wZSA9IHtcbiAgICAgICAgICBpc0F1dGhvcml6ZWQ6IGZhbHNlLFxuICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkluc3VmZmljaWVudCBTY29wZVwiLFxuICAgICAgICAgICAgY2xpZW50SWQ6IGVycm9yPy50b2tlbiA/IGVycm9yLnRva2VuW1wic3ViXCJdIDogXCJcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LnN1Y2NlZWQoaW5zdWZmaWNpZW50U2NvcGUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmYWlsdXJlID0ge1xuICAgICAgICBpc0F1dGhvcml6ZWQ6IGZhbHNlLFxuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgY2xpZW50SWQ6IGVycm9yPy50b2tlbiA/IGVycm9yLnRva2VuW1wic3ViXCJdIDogXCJcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhpcy5jb250ZXh0LnN1Y2NlZWQoZmFpbHVyZSk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVUb2tlbih2YWxpZGF0aW9uT3B0czogYW55KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5nZXRQZXJzb25hQ2xpZW50KCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGNsaWVudC52YWxpZGF0ZVRva2VuKFxuICAgICAgICB2YWxpZGF0aW9uT3B0cyxcbiAgICAgICAgKGVycm9yOiBhbnksIG9rOiBhbnksIGRlY29kZWRUb2tlbjogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgIHRva2VuOiBkZWNvZGVkVG9rZW4sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmVhayBkb3duIGFuIEFQSSBnYXRld2F5IG1ldGhvZCBBUk4gaW50byBpdCdzIGNvbnN0aXR1ZW50IHBhcnRzLlxuICAgKiBNZXRob2QgQVJOcyB0YWtlIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiAgIGFybjphd3M6ZXhlY3V0ZS1hcGk6PFJlZ2lvbiBpZD46PEFjY291bnQgaWQ+OjxBUEkgaWQ+LzxTdGFnZT4vPE1ldGhvZD4vPFJlc291cmNlIHBhdGg+XG4gICAqXG4gICAqIGUuZzpcbiAgICpcbiAgICogICBhcm46YXdzOmV4ZWN1dGUtYXBpOmV1LXdlc3QtMToxMjM6YWJjL2RldmVsb3BtZW50L0dFVC8yL3dvcmtzXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2RBcm4ge3N0cmluZ30gVGhlIG1ldGhvZCBBUk4gcHJvdmlkZWQgYnkgdGhlIGV2ZW50IGhhbmRlZCB0byBhIExhbWJkYSBmdW5jdGlvblxuICAgKiBAcmV0dXJucyB7e1xuICAgKiAgIG1ldGhvZDogc3RyaW5nLFxuICAgKiAgIHJlc291cmNlUGF0aDogc3RyaW5nLFxuICAgKiAgIGFwaU9wdGlvbnM6IHtcbiAgICogICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgKiAgICAgcmVzdEFwaUlkOiBzdHJpbmcsXG4gICAqICAgICBzdGFnZTogc3RyaW5nXG4gICAqICAgfSxcbiAgICogICBhd3NBY2NvdW50SWQ6IHN0cmluZ1xuICAgKiAgIH19XG4gICAqL1xuICBwYXJzZU1ldGhvZEFybihtZXRob2RBcm46IHN0cmluZyk6IFBhcnNlZEFybiB7XG4gICAgY29uc3QgbWV0aG9kQXJuUGFydHMgPSBtZXRob2RBcm4uc3BsaXQoXCI6XCIpO1xuICAgIGNvbnNvbGUubG9nKGBNZXRob2QgQVJOIFBhcnRzOiAke0pTT04uc3RyaW5naWZ5KG1ldGhvZEFyblBhcnRzKX1gKTtcbiAgICBsZXQgYXBpR2F0ZXdheUFybiA9IG1ldGhvZEFyblBhcnRzW0FQSV9HQVRFV0FZX0FSTl9JTkRFWF07XG4gICAgLy8gSWYgdGhlIHNwbGl0IGNyZWF0ZWQgbW9yZSB0aGFuIHRoZSBleHBlY3RlZCBudW1iZXIgb2YgcGFydHMsIHRoZW4gdGhlXG4gICAgLy8gYXBpR2F0ZXdheUFybiBtdXN0IGhhdmUgaGFkIG9uZSBvciBtb3JlIDoncyBpbiBpdC4gUmVjcmVhdGUgdGhlIGFwaUdhdGV3YXkgYXJuLlxuICAgIGZvciAoXG4gICAgICBsZXQgaW5kZXggPSBNRVRIT0RfQVJOX0lOREVYRVMubGVuZ3RoO1xuICAgICAgaW5kZXggPCBtZXRob2RBcm5QYXJ0cy5sZW5ndGg7XG4gICAgICBpbmRleCArPSAxXG4gICAgKSB7XG4gICAgICBhcGlHYXRld2F5QXJuICs9IGA6JHttZXRob2RBcm5QYXJ0c1tpbmRleF19YDtcbiAgICB9XG5cbiAgICBjb25zdCBhcGlHYXRld2F5QXJuUGFydHMgPSBhcGlHYXRld2F5QXJuLnNwbGl0KFwiL1wiKTtcbiAgICBjb25zb2xlLmxvZyhgYXBpIGdhdGV3YXkgYXJuIHBhcnRzOiAke0pTT04uc3RyaW5naWZ5KGFwaUdhdGV3YXlBcm5QYXJ0cyl9YCk7XG5cbiAgICAvLyBJZiB0aGUgc3BsaXQgY3JlYXRlZCBtb3JlIHRoYW4gdGhlIGV4cGVjdGVkIG51bWJlciBvZiBwYXJ0cywgdGhlbiB0aGVcbiAgICAvLyByZXNvdXJjZSBwYXRoIG11c3QgaGF2ZSBoYWQgb25lIG9yIG1vcmUgLydzIGluIGl0LiBSZWNyZWF0ZSB0aGUgcmVzb3VyY2UgcGF0aC5cbiAgICBsZXQgcmVzb3VyY2VQYXRoID0gXCJcIjtcbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSBBUElfR0FURVdBWV9BUk5fSU5ERVhFUy5sZW5ndGggLSAxO1xuICAgICAgaSA8IGFwaUdhdGV3YXlBcm5QYXJ0cy5sZW5ndGg7XG4gICAgICBpICs9IDFcbiAgICApIHtcbiAgICAgIHJlc291cmNlUGF0aCArPSBgLyR7YXBpR2F0ZXdheUFyblBhcnRzW2ldfWA7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGByZXNvdXJjZSBwYXRoOiAke0pTT04uc3RyaW5naWZ5KHJlc291cmNlUGF0aCl9YCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZDogYXBpR2F0ZXdheUFyblBhcnRzW01FVEhPRF9JTkRFWF0sXG4gICAgICByZXNvdXJjZVBhdGgsXG4gICAgICBhcGlPcHRpb25zOiB7XG4gICAgICAgIHJlZ2lvbjogbWV0aG9kQXJuUGFydHNbUkVHSU9OX0lOREVYXSxcbiAgICAgICAgcmVzdEFwaUlkOiBhcGlHYXRld2F5QXJuUGFydHNbQVBJX0lEX0lOREVYXSxcbiAgICAgICAgc3RhZ2U6IGFwaUdhdGV3YXlBcm5QYXJ0c1tTVEFHRV9JTkRFWF0sXG4gICAgICB9LFxuICAgICAgYXdzQWNjb3VudElkOiBtZXRob2RBcm5QYXJ0c1tBQ0NPVU5UX0lEX0lOREVYXSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0U2NvcGUocGFyc2VkTWV0aG9kQXJuOiBQYXJzZWRBcm4pIHtcbiAgICBjb25zdCBzY29wZUNvbmZpZyA9IHByb2Nlc3MuZW52W1wiU0NPUEVfQ09ORklHXCJdO1xuICAgIGlmIChzY29wZUNvbmZpZyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGNvbmYgPSBKU09OLnBhcnNlKHNjb3BlQ29uZmlnKTtcbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiBPYmplY3Qua2V5cyhjb25mKSkge1xuICAgICAgICBpZiAodGhpcy5wYXRoTWF0Y2gocGF0aCwgcGFyc2VkTWV0aG9kQXJuLnJlc291cmNlUGF0aCkpIHtcbiAgICAgICAgICByZXR1cm4gY29uZltwYXRoXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldFBlcnNvbmFDbGllbnQoKSB7XG4gICAgaWYgKHRoaXMucGVyc29uYUNsaWVudCA9PSBudWxsKSB7XG4gICAgICBjb25zdCBwZXJzb25hQ29uZmlnID0ge1xuICAgICAgICBwZXJzb25hX2hvc3Q6IHByb2Nlc3MuZW52W1wiUEVSU09OQV9IT1NUXCJdLFxuICAgICAgICBwZXJzb25hX3NjaGVtZTogcHJvY2Vzcy5lbnZbXCJQRVJTT05BX1NDSEVNRVwiXSxcbiAgICAgICAgcGVyc29uYV9wb3J0OiBwcm9jZXNzLmVudltcIlBFUlNPTkFfUE9SVFwiXSxcbiAgICAgICAgcGVyc29uYV9vYXV0aF9yb3V0ZTogcHJvY2Vzcy5lbnZbXCJQRVJTT05BX09BVVRIX1JPVVRFXCJdLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5wZXJzb25hQ2xpZW50ID0gcGVyc29uYS5jcmVhdGVDbGllbnQoXG4gICAgICAgIGAke3Byb2Nlc3MuZW52W1wiUEVSU09OQV9DTElFTlRfTkFNRVwiXX0gKGxhbWJkYTsgTk9ERV9FTlY9JHtwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdfSlgLFxuICAgICAgICBfLm1lcmdlKHBlcnNvbmFDb25maWcsIHt9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucGVyc29uYUNsaWVudDtcbiAgfVxuXG4gIHBhdGhNYXRjaChwYXRoRGVmaW5pdGlvbjogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXRoRGVmaW5pdGlvblBhcnRzID0gcGF0aERlZmluaXRpb24uc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IHBhdGhQYXJ0cyA9IHBhdGguc3BsaXQoXCIvXCIpO1xuXG4gICAgaWYgKHBhdGhEZWZpbml0aW9uUGFydHMubGVuZ3RoICE9PSBwYXRoUGFydHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoRGVmaW5pdGlvblBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBwYXRoRGVmaW5pdGlvblNlZ21lbnQgPSBwYXRoRGVmaW5pdGlvblBhcnRzW2ldO1xuICAgICAgY29uc3QgcGF0aFNlZ21lbnQgPSBwYXRoUGFydHNbaV07XG5cbiAgICAgIGlmIChcbiAgICAgICAgcGF0aERlZmluaXRpb25TZWdtZW50LnN0YXJ0c1dpdGgoXCJ7XCIpICYmXG4gICAgICAgIHBhdGhEZWZpbml0aW9uU2VnbWVudC5lbmRzV2l0aChcIn1cIilcbiAgICAgICkge1xuICAgICAgICAvLyBNYXRjaGVzIHBhdGggYXJndW1lbnRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNob3VsZCBtYXRjaCBkaXJlY3RseVxuICAgICAgICBpZiAocGF0aERlZmluaXRpb25TZWdtZW50ICE9PSBwYXRoU2VnbWVudCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0= \ No newline at end of file +/* eslint-enable @typescript-eslint/no-explicit-any */ +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYUF1dGhvcml6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJQZXJzb25hQXV0aG9yaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0QkFBNEI7QUFDNUIsMkNBQW9EO0FBYXBELG9DQUFvQztBQUNwQyxFQUFFO0FBQ0YscUJBQXFCO0FBQ3JCLDZGQUE2RjtBQUM3RixvRUFBb0U7QUFDcEUsOEZBQThGO0FBQzlGLEVBQUU7QUFDRixFQUFFO0FBQ0YsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUNwQixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFDeEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBRWhDLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsU0FBUztJQUNULFNBQVM7SUFDVCxhQUFhO0lBQ2IsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixxQkFBcUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDdEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRTlCLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsWUFBWTtJQUNaLFdBQVc7SUFDWCxZQUFZO0lBQ1osbUJBQW1CO0NBQ3BCLENBQUM7QUFFRix1REFBdUQ7QUFDdkQsTUFBYSxpQkFBaUI7SUFLNUIsWUFBWSxLQUFVLEVBQUUsT0FBWTtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztJQUNq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QUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEMsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNuRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuRCxNQUFNLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVqQyxJQUNFLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7Z0JBQ3JDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFDbkM7Z0JBQ0Esd0JBQXdCO2FBQ3pCO2lCQUFNO2dCQUNMLHdCQUF3QjtnQkFDeEIsSUFBSSxxQkFBcUIsS0FBSyxXQUFXLEVBQUU7b0JBQ3pDLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBN05ELDhDQTZOQztBQUNELHNEQUFzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgcGVyc29uYSwgUGVyc29uYUNsaWVudCB9IGZyb20gXCJ0YWxpcy1ub2RlXCI7XG5cbnR5cGUgUGFyc2VkQXJuID0ge1xuICBtZXRob2Q6IHN0cmluZztcbiAgcmVzb3VyY2VQYXRoOiBzdHJpbmc7XG4gIGFwaU9wdGlvbnM6IHtcbiAgICByZWdpb246IHN0cmluZztcbiAgICByZXN0QXBpSWQ6IHN0cmluZztcbiAgICBzdGFnZTogc3RyaW5nO1xuICB9O1xuICBhd3NBY2NvdW50SWQ6IHN0cmluZztcbn07XG5cbi8vIENvbnN0YW50cyB1c2VkIGJ5IHBhcnNlTWV0aG9kQXJuOlxuLy9cbi8vIEV4YW1wbGUgTWV0aG9kQVJOOlxuLy8gICBcImFybjphd3M6ZXhlY3V0ZS1hcGk6PFJlZ2lvbiBpZD46PEFjY291bnQgaWQ+OjxBUEkgaWQ+LzxTdGFnZT4vPE1ldGhvZD4vPFJlc291cmNlIHBhdGg+XCJcbi8vIE1ldGhvZCBBUk4gSW5kZXg6ICAwICAgMSAgIDIgICAgICAgICAgIDMgICAgICAgICAgIDQgICAgICAgICAgICA1XG4vLyBBUEkgR2F0ZXdheSBBUk4gSW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAgICAgICAgMSAgICAgICAyICAgICAgICAzXG4vL1xuLy9cbmNvbnN0IEFSTl9JTkRFWCA9IDA7XG5jb25zdCBBV1NfSU5ERVggPSAxO1xuY29uc3QgRVhFQ1VURV9JTkRFWCA9IDI7XG5jb25zdCBSRUdJT05fSU5ERVggPSAzO1xuY29uc3QgQUNDT1VOVF9JRF9JTkRFWCA9IDQ7XG5jb25zdCBBUElfR0FURVdBWV9BUk5fSU5ERVggPSA1O1xuXG5jb25zdCBNRVRIT0RfQVJOX0lOREVYRVMgPSBbXG4gIEFSTl9JTkRFWCxcbiAgQVdTX0lOREVYLFxuICBFWEVDVVRFX0lOREVYLFxuICBSRUdJT05fSU5ERVgsXG4gIEFDQ09VTlRfSURfSU5ERVgsXG4gIEFQSV9HQVRFV0FZX0FSTl9JTkRFWCxcbl07XG5cbmNvbnN0IEFQSV9JRF9JTkRFWCA9IDA7XG5jb25zdCBTVEFHRV9JTkRFWCA9IDE7XG5jb25zdCBNRVRIT0RfSU5ERVggPSAyO1xuY29uc3QgUkVTT1VSQ0VfUEFUSF9JTkRFWCA9IDM7XG5cbmNvbnN0IEFQSV9HQVRFV0FZX0FSTl9JTkRFWEVTID0gW1xuICBBUElfSURfSU5ERVgsXG4gIFNUQUdFX0lOREVYLFxuICBNRVRIT0RfSU5ERVgsXG4gIFJFU09VUkNFX1BBVEhfSU5ERVgsXG5dO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5leHBvcnQgY2xhc3MgUGVyc29uYUF1dGhvcml6ZXIge1xuICBldmVudDogYW55O1xuICBjb250ZXh0OiBhbnk7XG4gIHBlcnNvbmFDbGllbnQ6IFBlcnNvbmFDbGllbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoZXZlbnQ6IGFueSwgY29udGV4dDogYW55KSB7XG4gICAgdGhpcy5ldmVudCA9IGV2ZW50O1xuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG5cbiAgICB0aGlzLnBlcnNvbmFDbGllbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBhc3luYyBoYW5kbGUoKSB7XG4gICAgY29uc29sZS5sb2coXCJSZWNlaXZlZCBldmVudFwiLCB0aGlzLmV2ZW50KTtcblxuICAgIGlmICghdGhpcy5ldmVudD8uaGVhZGVycyB8fCB0aGlzLmV2ZW50LmhlYWRlcnNbXCJhdXRob3JpemF0aW9uXCJdID09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiTWlzc2luZyBhdXRoIHRva2VuXCIpO1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5mYWlsKFwiVW5hdXRob3JpemVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZE1ldGhvZEFybiA9IHRoaXMucGFyc2VNZXRob2RBcm4odGhpcy5ldmVudC5yb3V0ZUFybik7XG4gICAgY29uc29sZS5sb2coYFBhcnNlZCBNZXRob2QgQXJuOiAke0pTT04uc3RyaW5naWZ5KHBhcnNlZE1ldGhvZEFybil9YCk7XG5cbiAgICBjb25zdCBzY29wZSA9IHRoaXMuZ2V0U2NvcGUocGFyc2VkTWV0aG9kQXJuKTtcbiAgICBjb25zb2xlLmxvZyhgTWV0aG9kIGhhcyBzY29wZTogJHtzY29wZX1gKTtcblxuICAgIGxldCB2YWxpZGF0aW9uT3B0cyA9IHtcbiAgICAgIHRva2VuOiBfLnJlcGxhY2UoXG4gICAgICAgIHRoaXMuZXZlbnQuaGVhZGVyc1tcImF1dGhvcml6YXRpb25cIl0sXG4gICAgICAgIFwiQmVhcmVyXCIsXG4gICAgICAgIFwiXCIsXG4gICAgICApLnRyaW0oKSxcbiAgICB9O1xuICAgIGlmIChzY29wZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0aW9uT3B0cyA9IF8ubWVyZ2UodmFsaWRhdGlvbk9wdHMsIHsgc2NvcGUgfSk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGBWYWxpZGF0aW9uIG9wczogJHtKU09OLnN0cmluZ2lmeSh2YWxpZGF0aW9uT3B0cyl9YCk7XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFwidmFsaWRhdGluZyB0b2tlbiBhZ2FpbnN0IHJlcXVlc3RcIixcbiAgICAgIGAke3BhcnNlZE1ldGhvZEFybi5yZXNvdXJjZVBhdGh9YCxcbiAgICApO1xuXG4gICAgaWYgKCF2YWxpZGF0aW9uT3B0cy50b2tlbiB8fCB2YWxpZGF0aW9uT3B0cy50b2tlbi5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKFwidG9rZW4gbWlzc2luZ1wiKTtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuZmFpbChcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCB0aGlzLnZhbGlkYXRlVG9rZW4odmFsaWRhdGlvbk9wdHMpO1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IHtcbiAgICAgICAgaXNBdXRob3JpemVkOiB0cnVlLFxuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgY2xpZW50SWQ6IHRva2VuW1wic3ViXCJdLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuc3VjY2VlZChzdWNjZXNzKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwidG9rZW4gdmFsaWRhdGlvbiBmYWlsZWRcIiwgZXJyKTtcblxuICAgICAgY29uc3QgZXJyb3IgPSBlcnIgYXMgeyBlcnJvcjogYW55OyB0b2tlbjogUmVjb3JkPHN0cmluZywgYW55PiB9O1xuXG4gICAgICBpZiAoZXJyb3IuZXJyb3IgPT09IHBlcnNvbmEuZXJyb3JUeXBlcy5JTlNVRkZJQ0lFTlRfU0NPUEUpIHtcbiAgICAgICAgY29uc3QgaW5zdWZmaWNpZW50U2NvcGUgPSB7XG4gICAgICAgICAgaXNBdXRob3JpemVkOiBmYWxzZSxcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJJbnN1ZmZpY2llbnQgU2NvcGVcIixcbiAgICAgICAgICAgIGNsaWVudElkOiBlcnJvcj8udG9rZW4gPyBlcnJvci50b2tlbltcInN1YlwiXSA6IFwiXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5zdWNjZWVkKGluc3VmZmljaWVudFNjb3BlKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmFpbHVyZSA9IHtcbiAgICAgICAgaXNBdXRob3JpemVkOiBmYWxzZSxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGNsaWVudElkOiBlcnJvcj8udG9rZW4gPyBlcnJvci50b2tlbltcInN1YlwiXSA6IFwiXCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5zdWNjZWVkKGZhaWx1cmUpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlVG9rZW4odmFsaWRhdGlvbk9wdHM6IGFueSk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuZ2V0UGVyc29uYUNsaWVudCgpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBjbGllbnQudmFsaWRhdGVUb2tlbihcbiAgICAgICAgdmFsaWRhdGlvbk9wdHMsXG4gICAgICAgIChlcnJvcjogYW55LCBvazogYW55LCBkZWNvZGVkVG9rZW46IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KHtcbiAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICB0b2tlbjogZGVjb2RlZFRva2VuLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUoZGVjb2RlZFRva2VuKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQnJlYWsgZG93biBhbiBBUEkgZ2F0ZXdheSBtZXRob2QgQVJOIGludG8gaXQncyBjb25zdGl0dWVudCBwYXJ0cy5cbiAgICogTWV0aG9kIEFSTnMgdGFrZSB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogICBhcm46YXdzOmV4ZWN1dGUtYXBpOjxSZWdpb24gaWQ+OjxBY2NvdW50IGlkPjo8QVBJIGlkPi88U3RhZ2U+LzxNZXRob2Q+LzxSZXNvdXJjZSBwYXRoPlxuICAgKlxuICAgKiBlLmc6XG4gICAqXG4gICAqICAgYXJuOmF3czpleGVjdXRlLWFwaTpldS13ZXN0LTE6MTIzOmFiYy9kZXZlbG9wbWVudC9HRVQvMi93b3Jrc1xuICAgKlxuICAgKiBAcGFyYW0gbWV0aG9kQXJuIHtzdHJpbmd9IFRoZSBtZXRob2QgQVJOIHByb3ZpZGVkIGJ5IHRoZSBldmVudCBoYW5kZWQgdG8gYSBMYW1iZGEgZnVuY3Rpb25cbiAgICogQHJldHVybnMge3tcbiAgICogICBtZXRob2Q6IHN0cmluZyxcbiAgICogICByZXNvdXJjZVBhdGg6IHN0cmluZyxcbiAgICogICBhcGlPcHRpb25zOiB7XG4gICAqICAgICByZWdpb246IHN0cmluZyxcbiAgICogICAgIHJlc3RBcGlJZDogc3RyaW5nLFxuICAgKiAgICAgc3RhZ2U6IHN0cmluZ1xuICAgKiAgIH0sXG4gICAqICAgYXdzQWNjb3VudElkOiBzdHJpbmdcbiAgICogICB9fVxuICAgKi9cbiAgcGFyc2VNZXRob2RBcm4obWV0aG9kQXJuOiBzdHJpbmcpOiBQYXJzZWRBcm4ge1xuICAgIGNvbnN0IG1ldGhvZEFyblBhcnRzID0gbWV0aG9kQXJuLnNwbGl0KFwiOlwiKTtcbiAgICBjb25zb2xlLmxvZyhgTWV0aG9kIEFSTiBQYXJ0czogJHtKU09OLnN0cmluZ2lmeShtZXRob2RBcm5QYXJ0cyl9YCk7XG4gICAgbGV0IGFwaUdhdGV3YXlBcm4gPSBtZXRob2RBcm5QYXJ0c1tBUElfR0FURVdBWV9BUk5fSU5ERVhdO1xuICAgIC8vIElmIHRoZSBzcGxpdCBjcmVhdGVkIG1vcmUgdGhhbiB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIHBhcnRzLCB0aGVuIHRoZVxuICAgIC8vIGFwaUdhdGV3YXlBcm4gbXVzdCBoYXZlIGhhZCBvbmUgb3IgbW9yZSA6J3MgaW4gaXQuIFJlY3JlYXRlIHRoZSBhcGlHYXRld2F5IGFybi5cbiAgICBmb3IgKFxuICAgICAgbGV0IGluZGV4ID0gTUVUSE9EX0FSTl9JTkRFWEVTLmxlbmd0aDtcbiAgICAgIGluZGV4IDwgbWV0aG9kQXJuUGFydHMubGVuZ3RoO1xuICAgICAgaW5kZXggKz0gMVxuICAgICkge1xuICAgICAgYXBpR2F0ZXdheUFybiArPSBgOiR7bWV0aG9kQXJuUGFydHNbaW5kZXhdfWA7XG4gICAgfVxuXG4gICAgY29uc3QgYXBpR2F0ZXdheUFyblBhcnRzID0gYXBpR2F0ZXdheUFybi5zcGxpdChcIi9cIik7XG4gICAgY29uc29sZS5sb2coYGFwaSBnYXRld2F5IGFybiBwYXJ0czogJHtKU09OLnN0cmluZ2lmeShhcGlHYXRld2F5QXJuUGFydHMpfWApO1xuXG4gICAgLy8gSWYgdGhlIHNwbGl0IGNyZWF0ZWQgbW9yZSB0aGFuIHRoZSBleHBlY3RlZCBudW1iZXIgb2YgcGFydHMsIHRoZW4gdGhlXG4gICAgLy8gcmVzb3VyY2UgcGF0aCBtdXN0IGhhdmUgaGFkIG9uZSBvciBtb3JlIC8ncyBpbiBpdC4gUmVjcmVhdGUgdGhlIHJlc291cmNlIHBhdGguXG4gICAgbGV0IHJlc291cmNlUGF0aCA9IFwiXCI7XG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gQVBJX0dBVEVXQVlfQVJOX0lOREVYRVMubGVuZ3RoIC0gMTtcbiAgICAgIGkgPCBhcGlHYXRld2F5QXJuUGFydHMubGVuZ3RoO1xuICAgICAgaSArPSAxXG4gICAgKSB7XG4gICAgICByZXNvdXJjZVBhdGggKz0gYC8ke2FwaUdhdGV3YXlBcm5QYXJ0c1tpXX1gO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhgcmVzb3VyY2UgcGF0aDogJHtKU09OLnN0cmluZ2lmeShyZXNvdXJjZVBhdGgpfWApO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRob2Q6IGFwaUdhdGV3YXlBcm5QYXJ0c1tNRVRIT0RfSU5ERVhdLFxuICAgICAgcmVzb3VyY2VQYXRoLFxuICAgICAgYXBpT3B0aW9uczoge1xuICAgICAgICByZWdpb246IG1ldGhvZEFyblBhcnRzW1JFR0lPTl9JTkRFWF0sXG4gICAgICAgIHJlc3RBcGlJZDogYXBpR2F0ZXdheUFyblBhcnRzW0FQSV9JRF9JTkRFWF0sXG4gICAgICAgIHN0YWdlOiBhcGlHYXRld2F5QXJuUGFydHNbU1RBR0VfSU5ERVhdLFxuICAgICAgfSxcbiAgICAgIGF3c0FjY291bnRJZDogbWV0aG9kQXJuUGFydHNbQUNDT1VOVF9JRF9JTkRFWF0sXG4gICAgfTtcbiAgfVxuXG4gIGdldFNjb3BlKHBhcnNlZE1ldGhvZEFybjogUGFyc2VkQXJuKSB7XG4gICAgY29uc3Qgc2NvcGVDb25maWcgPSBwcm9jZXNzLmVudltcIlNDT1BFX0NPTkZJR1wiXTtcbiAgICBpZiAoc2NvcGVDb25maWcgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBjb25mID0gSlNPTi5wYXJzZShzY29wZUNvbmZpZyk7XG4gICAgICBmb3IgKGNvbnN0IHBhdGggb2YgT2JqZWN0LmtleXMoY29uZikpIHtcbiAgICAgICAgaWYgKHRoaXMucGF0aE1hdGNoKHBhdGgsIHBhcnNlZE1ldGhvZEFybi5yZXNvdXJjZVBhdGgpKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbmZbcGF0aF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRQZXJzb25hQ2xpZW50KCkge1xuICAgIGlmICh0aGlzLnBlcnNvbmFDbGllbnQgPT0gbnVsbCkge1xuICAgICAgY29uc3QgcGVyc29uYUNvbmZpZyA9IHtcbiAgICAgICAgcGVyc29uYV9ob3N0OiBwcm9jZXNzLmVudltcIlBFUlNPTkFfSE9TVFwiXSxcbiAgICAgICAgcGVyc29uYV9zY2hlbWU6IHByb2Nlc3MuZW52W1wiUEVSU09OQV9TQ0hFTUVcIl0sXG4gICAgICAgIHBlcnNvbmFfcG9ydDogcHJvY2Vzcy5lbnZbXCJQRVJTT05BX1BPUlRcIl0sXG4gICAgICAgIHBlcnNvbmFfb2F1dGhfcm91dGU6IHByb2Nlc3MuZW52W1wiUEVSU09OQV9PQVVUSF9ST1VURVwiXSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucGVyc29uYUNsaWVudCA9IHBlcnNvbmEuY3JlYXRlQ2xpZW50KFxuICAgICAgICBgJHtwcm9jZXNzLmVudltcIlBFUlNPTkFfQ0xJRU5UX05BTUVcIl19IChsYW1iZGE7IE5PREVfRU5WPSR7cHJvY2Vzcy5lbnZbXCJOT0RFX0VOVlwiXX0pYCxcbiAgICAgICAgXy5tZXJnZShwZXJzb25hQ29uZmlnLCB7fSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBlcnNvbmFDbGllbnQ7XG4gIH1cblxuICBwYXRoTWF0Y2gocGF0aERlZmluaXRpb246IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGF0aERlZmluaXRpb25QYXJ0cyA9IHBhdGhEZWZpbml0aW9uLnNwbGl0KFwiL1wiKTtcbiAgICBjb25zdCBwYXRoUGFydHMgPSBwYXRoLnNwbGl0KFwiL1wiKTtcblxuICAgIGlmIChwYXRoRGVmaW5pdGlvblBhcnRzLmxlbmd0aCAhPT0gcGF0aFBhcnRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aERlZmluaXRpb25QYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcGF0aERlZmluaXRpb25TZWdtZW50ID0gcGF0aERlZmluaXRpb25QYXJ0c1tpXTtcbiAgICAgIGNvbnN0IHBhdGhTZWdtZW50ID0gcGF0aFBhcnRzW2ldO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHBhdGhEZWZpbml0aW9uU2VnbWVudC5zdGFydHNXaXRoKFwie1wiKSAmJlxuICAgICAgICBwYXRoRGVmaW5pdGlvblNlZ21lbnQuZW5kc1dpdGgoXCJ9XCIpXG4gICAgICApIHtcbiAgICAgICAgLy8gTWF0Y2hlcyBwYXRoIGFyZ3VtZW50XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaG91bGQgbWF0Y2ggZGlyZWN0bHlcbiAgICAgICAgaWYgKHBhdGhEZWZpbml0aW9uU2VnbWVudCAhPT0gcGF0aFNlZ21lbnQpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4iXX0= \ No newline at end of file diff --git a/src/lambda/api/PersonaAuthorizer.ts b/src/lambda/api/PersonaAuthorizer.ts index f512f676..8438695c 100644 --- a/src/lambda/api/PersonaAuthorizer.ts +++ b/src/lambda/api/PersonaAuthorizer.ts @@ -48,6 +48,7 @@ const API_GATEWAY_ARN_INDEXES = [ RESOURCE_PATH_INDEX, ]; +/* eslint-disable @typescript-eslint/no-explicit-any */ export class PersonaAuthorizer { event: any; context: any; @@ -270,3 +271,4 @@ export class PersonaAuthorizer { return true; } } +/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/lambda/api/authorizer.ts b/src/lambda/api/authorizer.ts index ef19e7d8..9313455d 100644 --- a/src/lambda/api/authorizer.ts +++ b/src/lambda/api/authorizer.ts @@ -1,6 +1,8 @@ import { PersonaAuthorizer } from "./PersonaAuthorizer"; +/* eslint-disable @typescript-eslint/no-explicit-any */ module.exports.validateToken = async (event: any, context: any) => { const route = new PersonaAuthorizer(event, context); return await route.handle(); }; +/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/types/talis-node/index.d.ts b/src/types/talis-node/index.d.ts index fc5f30f5..70f5cb3e 100644 --- a/src/types/talis-node/index.d.ts +++ b/src/types/talis-node/index.d.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ declare module "talis-node" { type ERROR_TYPES = { VALIDATION_FAILURE: "validation_failure"; @@ -22,3 +23,4 @@ declare module "talis-node" { export const persona: persona; export const PersonaClient: PersonaClient; } +/* eslint-enable @typescript-eslint/no-explicit-any */