auth0-deploy-cli 8.22.0 → 8.23.0
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/.circleci/config.yml +57 -5
- package/CHANGELOG.md +31 -2
- package/README.md +1 -1
- package/eslint.config.js +131 -0
- package/lib/args.js +0 -1
- package/lib/commands/export.js +41 -49
- package/lib/commands/import.js +36 -43
- package/lib/commands/index.js +0 -1
- package/lib/configFactory.js +0 -1
- package/lib/context/defaults.d.ts +1 -0
- package/lib/context/defaults.js +57 -10
- package/lib/context/directory/handlers/actions.js +40 -39
- package/lib/context/directory/handlers/attackProtection.js +22 -34
- package/lib/context/directory/handlers/branding.js +12 -21
- package/lib/context/directory/handlers/clientGrants.js +52 -62
- package/lib/context/directory/handlers/clients.js +44 -57
- package/lib/context/directory/handlers/connectionProfiles.d.ts +1 -1
- package/lib/context/directory/handlers/connectionProfiles.js +20 -30
- package/lib/context/directory/handlers/connections.js +32 -41
- package/lib/context/directory/handlers/customDomains.js +9 -21
- package/lib/context/directory/handlers/databases.js +37 -35
- package/lib/context/directory/handlers/emailProvider.js +22 -36
- package/lib/context/directory/handlers/emailTemplates.js +20 -29
- package/lib/context/directory/handlers/flowVaultConnections.js +40 -49
- package/lib/context/directory/handlers/flows.js +38 -48
- package/lib/context/directory/handlers/forms.js +38 -48
- package/lib/context/directory/handlers/guardianFactorProviders.js +9 -21
- package/lib/context/directory/handlers/guardianFactorTemplates.js +9 -21
- package/lib/context/directory/handlers/guardianFactors.js +9 -21
- package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js +8 -20
- package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js +8 -20
- package/lib/context/directory/handlers/guardianPolicies.js +8 -20
- package/lib/context/directory/handlers/hooks.js +24 -34
- package/lib/context/directory/handlers/index.js +4 -1
- package/lib/context/directory/handlers/logStreams.js +12 -24
- package/lib/context/directory/handlers/networkACLs.js +22 -34
- package/lib/context/directory/handlers/organizations.js +39 -44
- package/lib/context/directory/handlers/pages.js +31 -37
- package/lib/context/directory/handlers/phoneProvider.js +12 -24
- package/lib/context/directory/handlers/phoneTemplates.d.ts +6 -0
- package/lib/context/directory/handlers/phoneTemplates.js +39 -0
- package/lib/context/directory/handlers/prompts.js +58 -76
- package/lib/context/directory/handlers/resourceServers.d.ts +1 -1
- package/lib/context/directory/handlers/resourceServers.js +18 -30
- package/lib/context/directory/handlers/roles.js +21 -31
- package/lib/context/directory/handlers/rules.js +22 -32
- package/lib/context/directory/handlers/rulesConfigs.js +3 -15
- package/lib/context/directory/handlers/selfServiceProfiles.js +28 -40
- package/lib/context/directory/handlers/tenant.js +14 -34
- package/lib/context/directory/handlers/themes.js +9 -21
- package/lib/context/directory/handlers/tokenExchangeProfiles.d.ts +5 -0
- package/lib/context/directory/handlers/tokenExchangeProfiles.js +41 -0
- package/lib/context/directory/handlers/triggers.d.ts +1 -1
- package/lib/context/directory/handlers/triggers.js +16 -26
- package/lib/context/directory/handlers/userAttributeProfiles.d.ts +1 -1
- package/lib/context/directory/handlers/userAttributeProfiles.js +16 -26
- package/lib/context/directory/index.js +66 -80
- package/lib/context/index.js +7 -18
- package/lib/context/yaml/handlers/actions.js +39 -41
- package/lib/context/yaml/handlers/attackProtection.js +27 -41
- package/lib/context/yaml/handlers/branding.js +47 -69
- package/lib/context/yaml/handlers/clientGrants.js +26 -40
- package/lib/context/yaml/handlers/clients.js +69 -84
- package/lib/context/yaml/handlers/connectionProfiles.d.ts +1 -1
- package/lib/context/yaml/handlers/connectionProfiles.js +20 -34
- package/lib/context/yaml/handlers/connections.js +63 -67
- package/lib/context/yaml/handlers/customDomains.js +7 -19
- package/lib/context/yaml/handlers/databases.js +63 -65
- package/lib/context/yaml/handlers/emailProvider.js +22 -37
- package/lib/context/yaml/handlers/emailTemplates.js +28 -39
- package/lib/context/yaml/handlers/flowVaultConnections.js +37 -50
- package/lib/context/yaml/handlers/flows.js +55 -66
- package/lib/context/yaml/handlers/forms.js +55 -66
- package/lib/context/yaml/handlers/guardianFactorProviders.js +7 -19
- package/lib/context/yaml/handlers/guardianFactorTemplates.js +7 -19
- package/lib/context/yaml/handlers/guardianFactors.js +7 -19
- package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js +7 -19
- package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js +7 -19
- package/lib/context/yaml/handlers/guardianPolicies.js +7 -19
- package/lib/context/yaml/handlers/hooks.js +34 -48
- package/lib/context/yaml/handlers/index.js +4 -1
- package/lib/context/yaml/handlers/logStreams.js +16 -30
- package/lib/context/yaml/handlers/networkACLs.js +25 -39
- package/lib/context/yaml/handlers/organizations.js +37 -46
- package/lib/context/yaml/handlers/pages.js +31 -39
- package/lib/context/yaml/handlers/phoneProvider.js +17 -31
- package/lib/context/yaml/handlers/phoneTemplates.d.ts +6 -0
- package/lib/context/yaml/handlers/phoneTemplates.js +25 -0
- package/lib/context/yaml/handlers/prompts.js +22 -47
- package/lib/context/yaml/handlers/resourceServers.d.ts +1 -1
- package/lib/context/yaml/handlers/resourceServers.js +21 -33
- package/lib/context/yaml/handlers/roles.js +19 -33
- package/lib/context/yaml/handlers/rules.js +28 -39
- package/lib/context/yaml/handlers/rulesConfigs.js +14 -28
- package/lib/context/yaml/handlers/selfServiceProfiles.js +29 -43
- package/lib/context/yaml/handlers/tenant.js +19 -41
- package/lib/context/yaml/handlers/themes.js +7 -19
- package/lib/context/yaml/handlers/tokenExchangeProfiles.d.ts +5 -0
- package/lib/context/yaml/handlers/tokenExchangeProfiles.js +27 -0
- package/lib/context/yaml/handlers/triggers.d.ts +1 -1
- package/lib/context/yaml/handlers/triggers.js +15 -29
- package/lib/context/yaml/handlers/userAttributeProfiles.d.ts +1 -1
- package/lib/context/yaml/handlers/userAttributeProfiles.js +7 -19
- package/lib/context/yaml/index.js +120 -128
- package/lib/index.d.ts +4 -96
- package/lib/index.js +24 -34
- package/lib/keywordPreservation.d.ts +1 -1
- package/lib/keywordPreservation.js +11 -6
- package/lib/logger.js +0 -1
- package/lib/readonly.js +3 -4
- package/lib/sessionDurationsToMinutes.js +0 -1
- package/lib/tools/auth0/client.js +108 -127
- package/lib/tools/auth0/handlers/actions.d.ts +8 -26
- package/lib/tools/auth0/handlers/actions.js +138 -149
- package/lib/tools/auth0/handlers/attackProtection.js +80 -92
- package/lib/tools/auth0/handlers/branding.js +75 -99
- package/lib/tools/auth0/handlers/clientGrants.d.ts +2 -9
- package/lib/tools/auth0/handlers/clientGrants.js +68 -73
- package/lib/tools/auth0/handlers/clients.d.ts +17 -16
- package/lib/tools/auth0/handlers/clients.js +120 -106
- package/lib/tools/auth0/handlers/connectionProfiles.d.ts +3 -1
- package/lib/tools/auth0/handlers/connectionProfiles.js +36 -32
- package/lib/tools/auth0/handlers/connections.d.ts +3 -1
- package/lib/tools/auth0/handlers/connections.js +130 -135
- package/lib/tools/auth0/handlers/customDomains.d.ts +4 -1
- package/lib/tools/auth0/handlers/customDomains.js +43 -53
- package/lib/tools/auth0/handlers/databases.js +94 -114
- package/lib/tools/auth0/handlers/default.d.ts +2 -2
- package/lib/tools/auth0/handlers/default.js +210 -171
- package/lib/tools/auth0/handlers/emailProvider.js +41 -52
- package/lib/tools/auth0/handlers/emailTemplates.d.ts +1 -0
- package/lib/tools/auth0/handlers/emailTemplates.js +54 -70
- package/lib/tools/auth0/handlers/flowVaultConnections.d.ts +5 -12
- package/lib/tools/auth0/handlers/flowVaultConnections.js +108 -143
- package/lib/tools/auth0/handlers/flows.d.ts +2 -3
- package/lib/tools/auth0/handlers/flows.js +92 -129
- package/lib/tools/auth0/handlers/forms.d.ts +3 -3
- package/lib/tools/auth0/handlers/forms.js +98 -112
- package/lib/tools/auth0/handlers/guardianFactorProviders.js +61 -84
- package/lib/tools/auth0/handlers/guardianFactorTemplates.js +46 -68
- package/lib/tools/auth0/handlers/guardianFactors.js +35 -45
- package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +29 -45
- package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +29 -45
- package/lib/tools/auth0/handlers/guardianPolicies.js +20 -35
- package/lib/tools/auth0/handlers/hooks.js +123 -153
- package/lib/tools/auth0/handlers/index.js +4 -1
- package/lib/tools/auth0/handlers/logStreams.js +42 -47
- package/lib/tools/auth0/handlers/networkACLs.d.ts +5 -4
- package/lib/tools/auth0/handlers/networkACLs.js +115 -133
- package/lib/tools/auth0/handlers/organizations.d.ts +10 -9
- package/lib/tools/auth0/handlers/organizations.js +360 -429
- package/lib/tools/auth0/handlers/pages.js +74 -83
- package/lib/tools/auth0/handlers/phoneProvider.d.ts +2 -2
- package/lib/tools/auth0/handlers/phoneProvider.js +69 -82
- package/lib/tools/auth0/handlers/phoneTemplates.d.ts +63 -0
- package/lib/tools/auth0/handlers/phoneTemplates.js +229 -0
- package/lib/tools/auth0/handlers/prompts.d.ts +7 -7
- package/lib/tools/auth0/handlers/prompts.js +246 -240
- package/lib/tools/auth0/handlers/resourceServers.d.ts +6 -2
- package/lib/tools/auth0/handlers/resourceServers.js +94 -105
- package/lib/tools/auth0/handlers/roles.js +162 -178
- package/lib/tools/auth0/handlers/rules.js +144 -162
- package/lib/tools/auth0/handlers/rulesConfigs.js +30 -39
- package/lib/tools/auth0/handlers/scimHandler.d.ts +4 -3
- package/lib/tools/auth0/handlers/scimHandler.js +110 -132
- package/lib/tools/auth0/handlers/selfServiceProfiles.d.ts +12 -3
- package/lib/tools/auth0/handlers/selfServiceProfiles.js +173 -203
- package/lib/tools/auth0/handlers/tenant.d.ts +5 -3
- package/lib/tools/auth0/handlers/tenant.js +46 -52
- package/lib/tools/auth0/handlers/themes.d.ts +12 -12
- package/lib/tools/auth0/handlers/themes.js +86 -102
- package/lib/tools/auth0/handlers/tokenExchangeProfiles.d.ts +60 -0
- package/lib/tools/auth0/handlers/tokenExchangeProfiles.js +271 -0
- package/lib/tools/auth0/handlers/triggers.js +59 -75
- package/lib/tools/auth0/handlers/userAttributeProfiles.d.ts +3 -2
- package/lib/tools/auth0/handlers/userAttributeProfiles.js +41 -43
- package/lib/tools/auth0/index.js +35 -48
- package/lib/tools/auth0/schema.js +6 -4
- package/lib/tools/calculateChanges.js +24 -15
- package/lib/tools/constants.d.ts +4 -2
- package/lib/tools/constants.js +3 -1
- package/lib/tools/deploy.js +17 -29
- package/lib/tools/index.d.ts +3 -89
- package/lib/tools/index.js +3 -2
- package/lib/tools/utils.d.ts +1 -1
- package/lib/tools/utils.js +12 -22
- package/lib/tools/validationError.js +0 -1
- package/lib/types.d.ts +13 -5
- package/lib/types.js +0 -1
- package/lib/utils.d.ts +3 -58
- package/lib/utils.js +8 -5
- package/package.json +11 -10
- package/tsconfig.json +4 -3
- package/.eslintignore +0 -5
- package/.eslintrc +0 -69
- package/lib/args.js.map +0 -1
- package/lib/commands/export.js.map +0 -1
- package/lib/commands/import.js.map +0 -1
- package/lib/commands/index.js.map +0 -1
- package/lib/configFactory.js.map +0 -1
- package/lib/context/defaults.js.map +0 -1
- package/lib/context/directory/handlers/actions.js.map +0 -1
- package/lib/context/directory/handlers/attackProtection.js.map +0 -1
- package/lib/context/directory/handlers/branding.js.map +0 -1
- package/lib/context/directory/handlers/clientGrants.js.map +0 -1
- package/lib/context/directory/handlers/clients.js.map +0 -1
- package/lib/context/directory/handlers/connectionProfiles.js.map +0 -1
- package/lib/context/directory/handlers/connections.js.map +0 -1
- package/lib/context/directory/handlers/customDomains.js.map +0 -1
- package/lib/context/directory/handlers/databases.js.map +0 -1
- package/lib/context/directory/handlers/emailProvider.js.map +0 -1
- package/lib/context/directory/handlers/emailTemplates.js.map +0 -1
- package/lib/context/directory/handlers/flowVaultConnections.js.map +0 -1
- package/lib/context/directory/handlers/flows.js.map +0 -1
- package/lib/context/directory/handlers/forms.js.map +0 -1
- package/lib/context/directory/handlers/guardianFactorProviders.js.map +0 -1
- package/lib/context/directory/handlers/guardianFactorTemplates.js.map +0 -1
- package/lib/context/directory/handlers/guardianFactors.js.map +0 -1
- package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
- package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
- package/lib/context/directory/handlers/guardianPolicies.js.map +0 -1
- package/lib/context/directory/handlers/hooks.js.map +0 -1
- package/lib/context/directory/handlers/index.js.map +0 -1
- package/lib/context/directory/handlers/logStreams.js.map +0 -1
- package/lib/context/directory/handlers/networkACLs.js.map +0 -1
- package/lib/context/directory/handlers/organizations.js.map +0 -1
- package/lib/context/directory/handlers/pages.js.map +0 -1
- package/lib/context/directory/handlers/phoneProvider.js.map +0 -1
- package/lib/context/directory/handlers/prompts.js.map +0 -1
- package/lib/context/directory/handlers/resourceServers.js.map +0 -1
- package/lib/context/directory/handlers/roles.js.map +0 -1
- package/lib/context/directory/handlers/rules.js.map +0 -1
- package/lib/context/directory/handlers/rulesConfigs.js.map +0 -1
- package/lib/context/directory/handlers/selfServiceProfiles.js.map +0 -1
- package/lib/context/directory/handlers/tenant.js.map +0 -1
- package/lib/context/directory/handlers/themes.js.map +0 -1
- package/lib/context/directory/handlers/triggers.js.map +0 -1
- package/lib/context/directory/handlers/userAttributeProfiles.js.map +0 -1
- package/lib/context/directory/index.js.map +0 -1
- package/lib/context/index.js.map +0 -1
- package/lib/context/yaml/handlers/actions.js.map +0 -1
- package/lib/context/yaml/handlers/attackProtection.js.map +0 -1
- package/lib/context/yaml/handlers/branding.js.map +0 -1
- package/lib/context/yaml/handlers/clientGrants.js.map +0 -1
- package/lib/context/yaml/handlers/clients.js.map +0 -1
- package/lib/context/yaml/handlers/connectionProfiles.js.map +0 -1
- package/lib/context/yaml/handlers/connections.js.map +0 -1
- package/lib/context/yaml/handlers/customDomains.js.map +0 -1
- package/lib/context/yaml/handlers/databases.js.map +0 -1
- package/lib/context/yaml/handlers/emailProvider.js.map +0 -1
- package/lib/context/yaml/handlers/emailTemplates.js.map +0 -1
- package/lib/context/yaml/handlers/flowVaultConnections.js.map +0 -1
- package/lib/context/yaml/handlers/flows.js.map +0 -1
- package/lib/context/yaml/handlers/forms.js.map +0 -1
- package/lib/context/yaml/handlers/guardianFactorProviders.js.map +0 -1
- package/lib/context/yaml/handlers/guardianFactorTemplates.js.map +0 -1
- package/lib/context/yaml/handlers/guardianFactors.js.map +0 -1
- package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
- package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
- package/lib/context/yaml/handlers/guardianPolicies.js.map +0 -1
- package/lib/context/yaml/handlers/hooks.js.map +0 -1
- package/lib/context/yaml/handlers/index.js.map +0 -1
- package/lib/context/yaml/handlers/logStreams.js.map +0 -1
- package/lib/context/yaml/handlers/networkACLs.js.map +0 -1
- package/lib/context/yaml/handlers/organizations.js.map +0 -1
- package/lib/context/yaml/handlers/pages.js.map +0 -1
- package/lib/context/yaml/handlers/phoneProvider.js.map +0 -1
- package/lib/context/yaml/handlers/prompts.js.map +0 -1
- package/lib/context/yaml/handlers/resourceServers.js.map +0 -1
- package/lib/context/yaml/handlers/roles.js.map +0 -1
- package/lib/context/yaml/handlers/rules.js.map +0 -1
- package/lib/context/yaml/handlers/rulesConfigs.js.map +0 -1
- package/lib/context/yaml/handlers/selfServiceProfiles.js.map +0 -1
- package/lib/context/yaml/handlers/tenant.js.map +0 -1
- package/lib/context/yaml/handlers/themes.js.map +0 -1
- package/lib/context/yaml/handlers/triggers.js.map +0 -1
- package/lib/context/yaml/handlers/userAttributeProfiles.js.map +0 -1
- package/lib/context/yaml/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/keywordPreservation.js.map +0 -1
- package/lib/logger.js.map +0 -1
- package/lib/readonly.js.map +0 -1
- package/lib/sessionDurationsToMinutes.js.map +0 -1
- package/lib/tools/auth0/client.js.map +0 -1
- package/lib/tools/auth0/handlers/actions.js.map +0 -1
- package/lib/tools/auth0/handlers/attackProtection.js.map +0 -1
- package/lib/tools/auth0/handlers/branding.js.map +0 -1
- package/lib/tools/auth0/handlers/clientGrants.js.map +0 -1
- package/lib/tools/auth0/handlers/clients.js.map +0 -1
- package/lib/tools/auth0/handlers/connectionProfiles.js.map +0 -1
- package/lib/tools/auth0/handlers/connections.js.map +0 -1
- package/lib/tools/auth0/handlers/customDomains.js.map +0 -1
- package/lib/tools/auth0/handlers/databases.js.map +0 -1
- package/lib/tools/auth0/handlers/default.js.map +0 -1
- package/lib/tools/auth0/handlers/emailProvider.js.map +0 -1
- package/lib/tools/auth0/handlers/emailTemplates.js.map +0 -1
- package/lib/tools/auth0/handlers/flowVaultConnections.js.map +0 -1
- package/lib/tools/auth0/handlers/flows.js.map +0 -1
- package/lib/tools/auth0/handlers/forms.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianFactorProviders.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianFactorTemplates.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianFactors.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianPolicies.js.map +0 -1
- package/lib/tools/auth0/handlers/hooks.js.map +0 -1
- package/lib/tools/auth0/handlers/index.js.map +0 -1
- package/lib/tools/auth0/handlers/logStreams.js.map +0 -1
- package/lib/tools/auth0/handlers/networkACLs.js.map +0 -1
- package/lib/tools/auth0/handlers/organizations.js.map +0 -1
- package/lib/tools/auth0/handlers/pages.js.map +0 -1
- package/lib/tools/auth0/handlers/phoneProvider.js.map +0 -1
- package/lib/tools/auth0/handlers/prompts.js.map +0 -1
- package/lib/tools/auth0/handlers/resourceServers.js.map +0 -1
- package/lib/tools/auth0/handlers/roles.js.map +0 -1
- package/lib/tools/auth0/handlers/rules.js.map +0 -1
- package/lib/tools/auth0/handlers/rulesConfigs.js.map +0 -1
- package/lib/tools/auth0/handlers/scimHandler.js.map +0 -1
- package/lib/tools/auth0/handlers/selfServiceProfiles.js.map +0 -1
- package/lib/tools/auth0/handlers/tenant.js.map +0 -1
- package/lib/tools/auth0/handlers/themes.js.map +0 -1
- package/lib/tools/auth0/handlers/triggers.js.map +0 -1
- package/lib/tools/auth0/handlers/userAttributeProfiles.js.map +0 -1
- package/lib/tools/auth0/index.js.map +0 -1
- package/lib/tools/auth0/schema.js.map +0 -1
- package/lib/tools/calculateChanges.js.map +0 -1
- package/lib/tools/constants.js.map +0 -1
- package/lib/tools/deploy.js.map +0 -1
- package/lib/tools/index.js.map +0 -1
- package/lib/tools/utils.js.map +0 -1
- package/lib/tools/validationError.js.map +0 -1
- package/lib/types.js.map +0 -1
- package/lib/utils.js.map +0 -1
|
@@ -38,22 +38,13 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
38
38
|
return result;
|
|
39
39
|
};
|
|
40
40
|
})();
|
|
41
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
42
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
43
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
44
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
45
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
46
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
47
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
41
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
51
42
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
52
43
|
};
|
|
53
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
45
|
exports.schema = void 0;
|
|
55
46
|
exports.isMarketplaceAction = isMarketplaceAction;
|
|
56
|
-
const lodash_1 =
|
|
47
|
+
const lodash_1 = require("lodash");
|
|
57
48
|
const default_1 = __importStar(require("./default"));
|
|
58
49
|
const logger_1 = __importDefault(require("../../../logger"));
|
|
59
50
|
const utils_1 = require("../../utils");
|
|
@@ -110,7 +101,7 @@ exports.schema = {
|
|
|
110
101
|
},
|
|
111
102
|
};
|
|
112
103
|
function isActionsDisabled(err) {
|
|
113
|
-
const errorBody = lodash_1.
|
|
104
|
+
const errorBody = (0, lodash_1.get)(err, 'originalError.response.body') || {};
|
|
114
105
|
return err.statusCode === 403 && errorBody.errorCode === 'feature_not_enabled';
|
|
115
106
|
}
|
|
116
107
|
function isMarketplaceAction(action) {
|
|
@@ -118,169 +109,167 @@ function isMarketplaceAction(action) {
|
|
|
118
109
|
}
|
|
119
110
|
class ActionHandler extends default_1.default {
|
|
120
111
|
constructor(options) {
|
|
121
|
-
super(
|
|
112
|
+
super({
|
|
113
|
+
...options,
|
|
114
|
+
type: 'actions',
|
|
115
|
+
functions: {
|
|
122
116
|
create: (action) => this.createAction(action),
|
|
123
|
-
|
|
124
|
-
|
|
117
|
+
update: ({ id }, action) => this.updateAction(id, action),
|
|
118
|
+
delete: (actionId) => this.deleteAction(actionId),
|
|
119
|
+
},
|
|
120
|
+
stripUpdateFields: ['deployed', 'status'],
|
|
121
|
+
});
|
|
125
122
|
}
|
|
126
|
-
createAction(action) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
123
|
+
async createAction(action) {
|
|
124
|
+
// Strip the deployed flag
|
|
125
|
+
const addAction = { ...action };
|
|
126
|
+
if ('deployed' in addAction) {
|
|
127
|
+
delete addAction.deployed;
|
|
128
|
+
}
|
|
129
|
+
if ('status' in addAction) {
|
|
130
|
+
delete addAction.status;
|
|
131
|
+
}
|
|
132
|
+
const createdAction = await this.client.actions.create(addAction);
|
|
133
|
+
// Add the action id so we can deploy it later
|
|
134
|
+
if (createdAction?.id) {
|
|
138
135
|
action.id = createdAction.id;
|
|
139
|
-
|
|
140
|
-
|
|
136
|
+
}
|
|
137
|
+
return createdAction;
|
|
141
138
|
}
|
|
142
|
-
|
|
143
|
-
return
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
return
|
|
148
|
-
}
|
|
139
|
+
async updateAction(actionId, action) {
|
|
140
|
+
return this.client.actions.update(actionId, action);
|
|
141
|
+
}
|
|
142
|
+
async deleteAction(actionId) {
|
|
143
|
+
if (!this.client.actions || typeof this.client.actions.delete !== 'function') {
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
146
|
+
return this.client.actions.delete(actionId, { force: true });
|
|
149
147
|
}
|
|
150
148
|
objString(action) {
|
|
151
149
|
return super.objString({ id: action.id, name: action.name });
|
|
152
150
|
}
|
|
153
|
-
deployActions(actions) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
logger_1.default.info(`Deployed [${this.type}]: ${this.objString(action)}`);
|
|
161
|
-
})
|
|
162
|
-
.catch((err) => {
|
|
163
|
-
throw new Error(`Problem Deploying ${this.type} ${this.objString(action)}\n${err}`);
|
|
164
|
-
}),
|
|
151
|
+
async deployActions(actions) {
|
|
152
|
+
await this.client.pool
|
|
153
|
+
.addEachTask({
|
|
154
|
+
data: actions || [],
|
|
155
|
+
generator: (action) => this.deployAction(action)
|
|
156
|
+
.then(() => {
|
|
157
|
+
logger_1.default.info(`Deployed [${this.type}]: ${this.objString(action)}`);
|
|
165
158
|
})
|
|
166
|
-
.
|
|
167
|
-
|
|
159
|
+
.catch((err) => {
|
|
160
|
+
throw new Error(`Problem Deploying ${this.type} ${this.objString(action)}\n${err}`);
|
|
161
|
+
}),
|
|
162
|
+
})
|
|
163
|
+
.promise();
|
|
168
164
|
}
|
|
169
|
-
deployAction(action) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
action.retry_count = 1;
|
|
180
|
-
}
|
|
181
|
-
if (action.retry_count > MAX_ACTION_DEPLOY_RETRY_ATTEMPTS) {
|
|
182
|
-
throw err;
|
|
183
|
-
}
|
|
184
|
-
yield (0, utils_1.sleep)(2000);
|
|
185
|
-
action.retry_count += 1;
|
|
186
|
-
yield this.deployAction(action);
|
|
165
|
+
async deployAction(action) {
|
|
166
|
+
try {
|
|
167
|
+
await this.client.actions.deploy(action.id);
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
// Retry if pending build.
|
|
171
|
+
if (err.message && err.message.includes("must be in the 'built' state")) {
|
|
172
|
+
if (!action.retry_count) {
|
|
173
|
+
logger_1.default.info(`[${this.type}]: Waiting for build to complete ${this.objString(action)}`);
|
|
174
|
+
action.retry_count = 1;
|
|
187
175
|
}
|
|
188
|
-
|
|
176
|
+
if (action.retry_count > MAX_ACTION_DEPLOY_RETRY_ATTEMPTS) {
|
|
189
177
|
throw err;
|
|
190
178
|
}
|
|
179
|
+
await (0, utils_1.sleep)(2000);
|
|
180
|
+
action.retry_count += 1;
|
|
181
|
+
await this.deployAction(action);
|
|
191
182
|
}
|
|
192
|
-
|
|
183
|
+
else {
|
|
184
|
+
throw err;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
193
187
|
}
|
|
194
|
-
actionChanges(action, found) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
actionChanges.code = action.code;
|
|
202
|
-
}
|
|
203
|
-
if (action.runtime !== found.runtime) {
|
|
204
|
-
actionChanges.runtime = action.runtime;
|
|
205
|
-
}
|
|
206
|
-
if (!(0, utils_1.areArraysEquals)(action.dependencies, found.dependencies)) {
|
|
207
|
-
actionChanges.dependencies = action.dependencies;
|
|
208
|
-
}
|
|
188
|
+
async actionChanges(action, found) {
|
|
189
|
+
const actionChanges = {};
|
|
190
|
+
// if action is deployed, should compare against curren_version - calcDeployedVersionChanges method
|
|
191
|
+
if (!action.deployed) {
|
|
192
|
+
// name or secrets modifications are not supported yet
|
|
193
|
+
if (action.code !== found.code) {
|
|
194
|
+
actionChanges.code = action.code;
|
|
209
195
|
}
|
|
210
|
-
if (
|
|
211
|
-
actionChanges.
|
|
196
|
+
if (action.runtime !== found.runtime) {
|
|
197
|
+
actionChanges.runtime = action.runtime;
|
|
212
198
|
}
|
|
213
|
-
|
|
214
|
-
|
|
199
|
+
if (!(0, utils_1.areArraysEquals)(action.dependencies, found.dependencies)) {
|
|
200
|
+
actionChanges.dependencies = action.dependencies;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (!(0, utils_1.areArraysEquals)(action.supported_triggers, found.supported_triggers)) {
|
|
204
|
+
actionChanges.supported_triggers = action.supported_triggers;
|
|
205
|
+
}
|
|
206
|
+
return actionChanges;
|
|
215
207
|
}
|
|
216
|
-
getType() {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
208
|
+
async getType() {
|
|
209
|
+
if (this.existing)
|
|
210
|
+
return this.existing;
|
|
211
|
+
if (!this.client.actions || typeof this.client.actions.list !== 'function') {
|
|
212
|
+
return [];
|
|
213
|
+
}
|
|
214
|
+
// Actions API does not support include_totals param like the other paginate API's.
|
|
215
|
+
// So we set it to false otherwise it will fail with "Additional properties not allowed: include_totals"
|
|
216
|
+
try {
|
|
217
|
+
const actions = await (0, client_1.paginate)(this.client.actions.list, {
|
|
218
|
+
paginate: true,
|
|
219
|
+
});
|
|
220
|
+
this.existing = actions;
|
|
221
|
+
return actions;
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
if (err.statusCode === 404 || err.statusCode === 501) {
|
|
225
|
+
return null;
|
|
222
226
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
try {
|
|
226
|
-
const actions = yield (0, client_1.paginate)(this.client.actions.getAll, {
|
|
227
|
-
paginate: true,
|
|
228
|
-
});
|
|
229
|
-
this.existing = actions;
|
|
230
|
-
return actions;
|
|
227
|
+
if (err.statusCode === 500 && err.message === 'An internal server error occurred') {
|
|
228
|
+
throw new Error("Cannot process actions because the actions service is currently unavailable. Retrying may result in a successful operation. Alternatively, adding 'actions' to `AUTH0_EXCLUDED` configuration property will provide ability to skip until service is restored to actions service. This is not an issue with the Deploy CLI.");
|
|
231
229
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}
|
|
236
|
-
if (err.statusCode === 500 && err.message === 'An internal server error occurred') {
|
|
237
|
-
throw new Error("Cannot process actions because the actions service is currently unavailable. Retrying may result in a successful operation. Alternatively, adding 'actions' to `AUTH0_EXCLUDED` configuration property will provide ability to skip until service is restored to actions service. This is not an issue with the Deploy CLI.");
|
|
238
|
-
}
|
|
239
|
-
if (isActionsDisabled(err)) {
|
|
240
|
-
logger_1.default.info('Skipping actions because it is not enabled.');
|
|
241
|
-
return null;
|
|
242
|
-
}
|
|
243
|
-
throw err;
|
|
230
|
+
if (isActionsDisabled(err)) {
|
|
231
|
+
logger_1.default.info('Skipping actions because it is not enabled.');
|
|
232
|
+
return null;
|
|
244
233
|
}
|
|
245
|
-
|
|
234
|
+
throw err;
|
|
235
|
+
}
|
|
246
236
|
}
|
|
247
|
-
processChanges(assets) {
|
|
248
|
-
const
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
237
|
+
async processChanges(assets) {
|
|
238
|
+
const { actions } = assets;
|
|
239
|
+
// Do nothing if not set
|
|
240
|
+
if (!actions)
|
|
241
|
+
return;
|
|
242
|
+
const changes = await this.calcChanges(assets);
|
|
243
|
+
// Management of marketplace actions not currently supported, see ESD-23225.
|
|
244
|
+
const changesWithMarketplaceActionsFiltered = (() => ({
|
|
245
|
+
...changes,
|
|
246
|
+
del: changes.del.filter((action) => !isMarketplaceAction(action)),
|
|
247
|
+
}))();
|
|
248
|
+
await super.processChanges(assets, changesWithMarketplaceActionsFiltered);
|
|
249
|
+
const postProcessedActions = await (async () => {
|
|
250
|
+
this.existing = null; // Clear the cache
|
|
251
|
+
return this.getType();
|
|
252
|
+
})();
|
|
253
|
+
// Deploy actions
|
|
254
|
+
const deployActions = [
|
|
255
|
+
...changes.create
|
|
256
|
+
.filter((action) => action.deployed)
|
|
257
|
+
.map((actionWithoutId) => {
|
|
258
|
+
// Add IDs to just-created actions
|
|
259
|
+
const actionId = postProcessedActions?.find((postProcessedAction) => postProcessedAction.name === actionWithoutId.name)?.id;
|
|
260
|
+
const actionWithId = {
|
|
261
|
+
...actionWithoutId,
|
|
262
|
+
id: actionId,
|
|
263
|
+
};
|
|
264
|
+
return actionWithId;
|
|
265
|
+
})
|
|
266
|
+
.filter((action) => !!action.id),
|
|
267
|
+
...changes.update.filter((action) => action.deployed),
|
|
268
|
+
];
|
|
269
|
+
await this.deployActions(deployActions);
|
|
280
270
|
}
|
|
281
271
|
}
|
|
282
272
|
exports.default = ActionHandler;
|
|
283
273
|
__decorate([
|
|
284
274
|
(0, default_1.order)('50')
|
|
285
275
|
], ActionHandler.prototype, "processChanges", null);
|
|
286
|
-
//# sourceMappingURL=actions.js.map
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -193,11 +184,13 @@ exports.schema = {
|
|
|
193
184
|
};
|
|
194
185
|
class AttackProtectionHandler extends default_1.default {
|
|
195
186
|
constructor(config) {
|
|
196
|
-
super(
|
|
187
|
+
super({
|
|
188
|
+
...config,
|
|
189
|
+
type: 'attackProtection',
|
|
190
|
+
});
|
|
197
191
|
}
|
|
198
192
|
objString(item) {
|
|
199
193
|
const objectString = (() => {
|
|
200
|
-
var _a, _b, _c;
|
|
201
194
|
const obj = {};
|
|
202
195
|
if (item.botDetection) {
|
|
203
196
|
obj['bot-detection'] = {
|
|
@@ -205,12 +198,12 @@ class AttackProtectionHandler extends default_1.default {
|
|
|
205
198
|
monitoring_mode_enabled: item.botDetection.monitoring_mode_enabled,
|
|
206
199
|
};
|
|
207
200
|
}
|
|
208
|
-
if (
|
|
201
|
+
if (item.breachedPasswordDetection?.enabled) {
|
|
209
202
|
obj['breached-password-protection'] = {
|
|
210
203
|
enabled: item.breachedPasswordDetection.enabled,
|
|
211
204
|
};
|
|
212
205
|
}
|
|
213
|
-
if (
|
|
206
|
+
if (item.bruteForceProtection?.enabled) {
|
|
214
207
|
obj['brute-force-protection'] = {
|
|
215
208
|
enabled: item.bruteForceProtection.enabled,
|
|
216
209
|
};
|
|
@@ -220,7 +213,7 @@ class AttackProtectionHandler extends default_1.default {
|
|
|
220
213
|
active_provider_id: item.captcha.active_provider_id,
|
|
221
214
|
};
|
|
222
215
|
}
|
|
223
|
-
if (
|
|
216
|
+
if (item.suspiciousIpThrottling?.enabled) {
|
|
224
217
|
obj['suspicious-ip-throttling'] = {
|
|
225
218
|
enabled: item.suspiciousIpThrottling.enabled,
|
|
226
219
|
};
|
|
@@ -229,88 +222,83 @@ class AttackProtectionHandler extends default_1.default {
|
|
|
229
222
|
})();
|
|
230
223
|
return super.objString(objectString);
|
|
231
224
|
}
|
|
232
|
-
getType() {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
225
|
+
async getType() {
|
|
226
|
+
if (this.existing) {
|
|
227
|
+
return this.existing;
|
|
228
|
+
}
|
|
229
|
+
const [breachedPasswordDetection, bruteForceProtection, suspiciousIpThrottling] = await Promise.all([
|
|
230
|
+
this.client.attackProtection.breachedPasswordDetection.get(),
|
|
231
|
+
this.client.attackProtection.bruteForceProtection.get(),
|
|
232
|
+
this.client.attackProtection.suspiciousIpThrottling.get(),
|
|
233
|
+
]);
|
|
234
|
+
let botDetection = null;
|
|
235
|
+
let captcha = null;
|
|
236
|
+
try {
|
|
237
|
+
[botDetection, captcha] = await Promise.all([
|
|
238
|
+
this.client.attackProtection.botDetection.get(),
|
|
239
|
+
this.client.attackProtection.captcha.get(),
|
|
241
240
|
]);
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
this.client.attackProtection.getBotDetectionConfig(),
|
|
247
|
-
this.client.attackProtection.getCaptchaConfig(),
|
|
248
|
-
]);
|
|
249
|
-
}
|
|
250
|
-
catch (err) {
|
|
251
|
-
if (err.statusCode === 403) {
|
|
252
|
-
logger_1.default.warn('Bot Detection API are not enabled for this tenant. Please verify `scope` or contact Auth0 support to enable this feature.');
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
const attackProtection = {
|
|
256
|
-
breachedPasswordDetection: breachedPasswordDetection.data,
|
|
257
|
-
bruteForceProtection: bruteForceProtection.data,
|
|
258
|
-
suspiciousIpThrottling: suspiciousIpThrottling.data,
|
|
259
|
-
};
|
|
260
|
-
if (botDetection === null || botDetection === void 0 ? void 0 : botDetection.data) {
|
|
261
|
-
attackProtection.botDetection = botDetection.data;
|
|
262
|
-
}
|
|
263
|
-
if (captcha === null || captcha === void 0 ? void 0 : captcha.data) {
|
|
264
|
-
attackProtection.captcha = captcha.data;
|
|
241
|
+
}
|
|
242
|
+
catch (err) {
|
|
243
|
+
if (err.statusCode === 403) {
|
|
244
|
+
logger_1.default.warn('Bot Detection API are not enabled for this tenant. Please verify `scope` or contact Auth0 support to enable this feature.');
|
|
265
245
|
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
246
|
+
}
|
|
247
|
+
const attackProtection = {
|
|
248
|
+
breachedPasswordDetection: breachedPasswordDetection,
|
|
249
|
+
bruteForceProtection: bruteForceProtection,
|
|
250
|
+
suspiciousIpThrottling: suspiciousIpThrottling,
|
|
251
|
+
};
|
|
252
|
+
if (botDetection) {
|
|
253
|
+
attackProtection.botDetection = botDetection;
|
|
254
|
+
}
|
|
255
|
+
if (captcha) {
|
|
256
|
+
attackProtection.captcha = captcha;
|
|
257
|
+
}
|
|
258
|
+
this.existing = attackProtection;
|
|
259
|
+
return this.existing;
|
|
269
260
|
}
|
|
270
|
-
processChanges(assets) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
delete captcha[provider];
|
|
294
|
-
}
|
|
261
|
+
async processChanges(assets) {
|
|
262
|
+
const { attackProtection } = assets;
|
|
263
|
+
if (!attackProtection || !Object.keys(attackProtection).length) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
const updates = [];
|
|
267
|
+
if (attackProtection.botDetection && Object.keys(attackProtection.botDetection).length) {
|
|
268
|
+
updates.push(this.client.attackProtection.botDetection.update(attackProtection.botDetection));
|
|
269
|
+
}
|
|
270
|
+
if (attackProtection.breachedPasswordDetection) {
|
|
271
|
+
updates.push(this.client.attackProtection.breachedPasswordDetection.update(attackProtection.breachedPasswordDetection));
|
|
272
|
+
}
|
|
273
|
+
if (attackProtection.captcha && Object.keys(attackProtection.captcha).length) {
|
|
274
|
+
const { captcha } = attackProtection;
|
|
275
|
+
// remove empty CAPTCHA provider configurations before updates to prevent API errors
|
|
276
|
+
exports.CAPTCHA_PROVIDERS.forEach((provider) => {
|
|
277
|
+
if (provider in captcha) {
|
|
278
|
+
const providerConfig = captcha[provider];
|
|
279
|
+
const isEmpty = provider === 'auth_challenge' || provider === 'simple_captcha'
|
|
280
|
+
? Object.keys(providerConfig).length === 0
|
|
281
|
+
: !providerConfig?.site_key || providerConfig.site_key === '';
|
|
282
|
+
if (isEmpty) {
|
|
283
|
+
delete captcha[provider];
|
|
295
284
|
}
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
attackProtection.captcha = captcha;
|
|
288
|
+
updates.push(this.client.attackProtection.captcha.update(attackProtection.captcha));
|
|
289
|
+
}
|
|
290
|
+
if (attackProtection.bruteForceProtection) {
|
|
291
|
+
updates.push(this.client.attackProtection.bruteForceProtection.update(attackProtection.bruteForceProtection));
|
|
292
|
+
}
|
|
293
|
+
if (attackProtection.suspiciousIpThrottling) {
|
|
294
|
+
updates.push(this.client.attackProtection.suspiciousIpThrottling.update(attackProtection.suspiciousIpThrottling));
|
|
295
|
+
}
|
|
296
|
+
if (!updates.length) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
await Promise.all(updates);
|
|
300
|
+
this.updated += 1;
|
|
301
|
+
this.didUpdate(attackProtection);
|
|
313
302
|
}
|
|
314
303
|
}
|
|
315
304
|
exports.default = AttackProtectionHandler;
|
|
316
|
-
//# sourceMappingURL=attackProtection.js.map
|