auth0-deploy-cli 7.3.5 → 7.4.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/.husky/pre-commit +4 -0
- package/.husky/pre-push +4 -0
- package/.nyc_output/597f412e-a239-4319-ad5b-ddb87fc39e67.json +1 -0
- package/.nyc_output/processinfo/{3aaf2f9d-fd3b-4d98-8c6b-8ba83b332050.json → 597f412e-a239-4319-ad5b-ddb87fc39e67.json} +1 -1
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +29 -2
- package/lib/context/directory/handlers/clients.js +1 -1
- package/lib/context/directory/handlers/connections.js +1 -1
- package/lib/context/directory/handlers/databases.js +1 -1
- package/lib/context/directory/handlers/emailTemplates.js +1 -1
- package/lib/context/directory/handlers/pages.js +1 -1
- package/lib/context/directory/index.js +1 -1
- package/lib/context/yaml/index.js +1 -1
- package/lib/tools/auth0/handlers/actions.js +2 -0
- package/lib/tools/auth0/handlers/databases.js +1 -1
- package/lib/tools/auth0/handlers/default.js +3 -3
- package/lib/tools/index.js +3 -3
- package/lib/tools/utils.js +47 -16
- package/lib/utils.js +1 -1
- package/package.json +4 -2
- package/.nyc_output/3aaf2f9d-fd3b-4d98-8c6b-8ba83b332050.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"parent":null,"pid":
|
|
1
|
+
{"parent":null,"pid":222,"argv":["/usr/local/bin/node","/home/circleci/repo/node_modules/.bin/mocha","--recursive","--require","@babel/register","test"],"execArgv":[],"cwd":"/home/circleci/repo","time":1645735498596,"ppid":211,"coverageFilename":"/home/circleci/repo/.nyc_output/597f412e-a239-4319-ad5b-ddb87fc39e67.json","externalId":"","uuid":"597f412e-a239-4319-ad5b-ddb87fc39e67","files":["/home/circleci/repo/src/context/index.js","/home/circleci/repo/src/context/yaml/index.js","/home/circleci/repo/src/tools/index.js","/home/circleci/repo/src/tools/constants.js","/home/circleci/repo/src/tools/deploy.js","/home/circleci/repo/src/tools/auth0/index.js","/home/circleci/repo/src/tools/auth0/client.js","/home/circleci/repo/src/tools/utils.js","/home/circleci/repo/src/tools/logger.js","/home/circleci/repo/src/tools/auth0/schema.js","/home/circleci/repo/src/tools/auth0/handlers/index.js","/home/circleci/repo/src/tools/auth0/handlers/rules.js","/home/circleci/repo/src/tools/ValidationError.js","/home/circleci/repo/src/tools/auth0/handlers/default.js","/home/circleci/repo/src/tools/auth0/handlers/rulesConfigs.js","/home/circleci/repo/src/tools/auth0/handlers/hooks.js","/home/circleci/repo/src/tools/auth0/handlers/pages.js","/home/circleci/repo/src/tools/auth0/handlers/resourceServers.js","/home/circleci/repo/src/tools/auth0/handlers/databases.js","/home/circleci/repo/src/tools/auth0/handlers/connections.js","/home/circleci/repo/src/tools/auth0/handlers/clients.js","/home/circleci/repo/src/tools/auth0/handlers/tenant.js","/home/circleci/repo/src/tools/auth0/handlers/emailProvider.js","/home/circleci/repo/src/tools/auth0/handlers/emailTemplates.js","/home/circleci/repo/src/tools/auth0/handlers/clientGrants.js","/home/circleci/repo/src/tools/auth0/handlers/guardianFactors.js","/home/circleci/repo/src/tools/auth0/handlers/guardianFactorProviders.js","/home/circleci/repo/src/tools/auth0/handlers/guardianFactorTemplates.js","/home/circleci/repo/src/tools/auth0/handlers/guardianPolicies.js","/home/circleci/repo/src/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js","/home/circleci/repo/src/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js","/home/circleci/repo/src/tools/auth0/handlers/roles.js","/home/circleci/repo/src/tools/auth0/handlers/branding.js","/home/circleci/repo/src/tools/auth0/handlers/prompts.js","/home/circleci/repo/src/tools/auth0/handlers/migrations.js","/home/circleci/repo/src/tools/auth0/handlers/actions.js","/home/circleci/repo/src/tools/auth0/handlers/triggers.js","/home/circleci/repo/src/tools/auth0/handlers/organizations.js","/home/circleci/repo/src/logger.js","/home/circleci/repo/src/utils.js","/home/circleci/repo/src/context/yaml/handlers/index.js","/home/circleci/repo/src/context/yaml/handlers/pages.js","/home/circleci/repo/src/context/yaml/handlers/rules.js","/home/circleci/repo/src/context/yaml/handlers/hooks.js","/home/circleci/repo/src/context/yaml/handlers/clients.js","/home/circleci/repo/src/context/yaml/handlers/tenant.js","/home/circleci/repo/src/context/yaml/handlers/emailProvider.js","/home/circleci/repo/src/context/defaults.js","/home/circleci/repo/src/context/yaml/handlers/connections.js","/home/circleci/repo/src/context/yaml/handlers/databases.js","/home/circleci/repo/src/context/yaml/handlers/emailTemplates.js","/home/circleci/repo/src/context/yaml/handlers/clientGrants.js","/home/circleci/repo/src/context/yaml/handlers/rulesConfigs.js","/home/circleci/repo/src/context/yaml/handlers/resourceServers.js","/home/circleci/repo/src/context/yaml/handlers/guardianFactors.js","/home/circleci/repo/src/context/yaml/handlers/guardianFactorProviders.js","/home/circleci/repo/src/context/yaml/handlers/guardianFactorTemplates.js","/home/circleci/repo/src/context/yaml/handlers/guardianPhoneFactorMessageTypes.js","/home/circleci/repo/src/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js","/home/circleci/repo/src/context/yaml/handlers/guardianPolicies.js","/home/circleci/repo/src/context/yaml/handlers/roles.js","/home/circleci/repo/src/context/yaml/handlers/organizations.js","/home/circleci/repo/src/context/yaml/handlers/migrations.js","/home/circleci/repo/src/context/yaml/handlers/actions.js","/home/circleci/repo/src/context/yaml/handlers/triggers.js","/home/circleci/repo/src/readonly.js","/home/circleci/repo/src/context/directory/index.js","/home/circleci/repo/src/context/directory/handlers/index.js","/home/circleci/repo/src/context/directory/handlers/pages.js","/home/circleci/repo/src/context/directory/handlers/rules.js","/home/circleci/repo/src/context/directory/handlers/hooks.js","/home/circleci/repo/src/context/directory/handlers/clients.js","/home/circleci/repo/src/context/directory/handlers/tenant.js","/home/circleci/repo/src/context/directory/handlers/emailProvider.js","/home/circleci/repo/src/context/directory/handlers/connections.js","/home/circleci/repo/src/context/directory/handlers/databases.js","/home/circleci/repo/src/context/directory/handlers/emailTemplates.js","/home/circleci/repo/src/context/directory/handlers/clientGrants.js","/home/circleci/repo/src/context/directory/handlers/rulesConfigs.js","/home/circleci/repo/src/context/directory/handlers/resourceServers.js","/home/circleci/repo/src/context/directory/handlers/guardianFactors.js","/home/circleci/repo/src/context/directory/handlers/guardianFactorProviders.js","/home/circleci/repo/src/context/directory/handlers/guardianFactorTemplates.js","/home/circleci/repo/src/context/directory/handlers/guardianPhoneFactorMessageTypes.js","/home/circleci/repo/src/context/directory/handlers/guardianPhoneFactorSelectedProvider.js","/home/circleci/repo/src/context/directory/handlers/guardianPolicies.js","/home/circleci/repo/src/context/directory/handlers/roles.js","/home/circleci/repo/src/context/directory/handlers/migrations.js","/home/circleci/repo/src/context/directory/handlers/actions.js","/home/circleci/repo/src/context/directory/handlers/organizations.js","/home/circleci/repo/src/context/directory/handlers/triggers.js","/home/circleci/repo/src/index.js","/home/circleci/repo/src/args.js","/home/circleci/repo/src/commands/index.js","/home/circleci/repo/src/commands/import.js","/home/circleci/repo/src/configFactory.js","/home/circleci/repo/src/commands/export.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"processes":{"
|
|
1
|
+
{"processes":{"597f412e-a239-4319-ad5b-ddb87fc39e67":{"parent":null,"children":[]}},"files":{"/home/circleci/repo/src/context/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/constants.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/deploy.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/client.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/utils.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/logger.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/schema.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/rules.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/ValidationError.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/default.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/rulesConfigs.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/hooks.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/pages.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/resourceServers.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/databases.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/connections.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/clients.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/tenant.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/emailProvider.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/emailTemplates.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/clientGrants.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/guardianFactors.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/guardianFactorProviders.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/guardianFactorTemplates.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/guardianPolicies.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/roles.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/branding.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/prompts.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/migrations.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/actions.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/triggers.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/tools/auth0/handlers/organizations.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/logger.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/utils.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/pages.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/rules.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/hooks.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/clients.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/tenant.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/emailProvider.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/defaults.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/connections.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/databases.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/emailTemplates.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/clientGrants.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/rulesConfigs.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/resourceServers.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/guardianFactors.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/guardianFactorProviders.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/guardianFactorTemplates.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/guardianPhoneFactorMessageTypes.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/guardianPolicies.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/roles.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/organizations.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/migrations.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/actions.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/yaml/handlers/triggers.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/readonly.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/pages.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/rules.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/hooks.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/clients.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/tenant.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/emailProvider.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/connections.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/databases.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/emailTemplates.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/clientGrants.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/rulesConfigs.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/resourceServers.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/guardianFactors.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/guardianFactorProviders.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/guardianFactorTemplates.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/guardianPhoneFactorMessageTypes.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/guardianPhoneFactorSelectedProvider.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/guardianPolicies.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/roles.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/migrations.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/actions.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/organizations.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/context/directory/handlers/triggers.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/args.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/commands/index.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/commands/import.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/configFactory.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"],"/home/circleci/repo/src/commands/export.js":["597f412e-a239-4319-ad5b-ddb87fc39e67"]},"externalIds":{}}
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [7.4.0] - 2022-02-24
|
|
11
|
+
### Added
|
|
12
|
+
- Allowing @@ array variable replacement to work when wrapped in quotes [#421]
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- Eliminated benign `client_metadata` warnings on import [#416]
|
|
16
|
+
- Fixing request abstraction from losing function scope, enabling Auth0 Node SDK updates [#412]
|
|
17
|
+
|
|
18
|
+
### Security
|
|
19
|
+
- Updating Auth0 Node SDK to 2.40.0 which fixes minor dependency vulnerability
|
|
20
|
+
|
|
21
|
+
## [7.3.7] - 2022-02-03
|
|
22
|
+
### Fixed
|
|
23
|
+
- Expose errors that may be silently missed in Actions [#408]
|
|
24
|
+
|
|
25
|
+
## [7.3.6] - 2022-02-02
|
|
26
|
+
### Fixed
|
|
27
|
+
- Fix errors caused by incompatibilities introduced by new versions of Auth0 SDK [#406]
|
|
28
|
+
|
|
10
29
|
## [7.3.5] - 2022-01-27
|
|
11
30
|
### Fixed
|
|
12
31
|
- Fix an error with the function context [#403]
|
|
@@ -410,8 +429,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
410
429
|
[#400]: https://github.com/auth0/auth0-deploy-cli/issues/400
|
|
411
430
|
[#401]: https://github.com/auth0/auth0-deploy-cli/issues/401
|
|
412
431
|
[#403]: https://github.com/auth0/auth0-deploy-cli/issues/403
|
|
413
|
-
|
|
414
|
-
[
|
|
432
|
+
[#406]: https://github.com/auth0/auth0-deploy-cli/issues/406
|
|
433
|
+
[#408]: https://github.com/auth0/auth0-deploy-cli/issues/408
|
|
434
|
+
[#412]: https://github.com/auth0/auth0-deploy-cli/issues/412
|
|
435
|
+
[#416]: https://github.com/auth0/auth0-deploy-cli/issues/416
|
|
436
|
+
[#421]: https://github.com/auth0/auth0-deploy-cli/issues/421
|
|
437
|
+
|
|
438
|
+
[Unreleased]: https://github.com/auth0/auth0-deploy-cli/compare/v7.4.0...HEAD
|
|
439
|
+
[7.4.0]: https://github.com/auth0/auth0-deploy-cli/compare/v7.3.7...v7.4.0
|
|
440
|
+
[7.3.7]: https://github.com/auth0/auth0-deploy-cli/compare/v7.3.6...v7.3.7
|
|
441
|
+
[7.3.6]: https://github.com/auth0/auth0-deploy-cli/compare/v7.3.5...v7.3.6
|
|
415
442
|
[7.3.5]: https://github.com/auth0/auth0-deploy-cli/compare/v7.3.4...v7.3.5
|
|
416
443
|
[7.3.4]: https://github.com/auth0/auth0-deploy-cli/compare/v7.3.3...v7.3.4
|
|
417
444
|
[7.3.3]: https://github.com/auth0/auth0-deploy-cli/compare/v7.3.2...v7.3.3
|
|
@@ -36,7 +36,7 @@ function parse(context) {
|
|
|
36
36
|
const htmlFileName = _path2.default.join(clientsFolder, client.custom_login_page);
|
|
37
37
|
|
|
38
38
|
if ((0, _utils.isFile)(htmlFileName)) {
|
|
39
|
-
client.custom_login_page = (0, _tools.
|
|
39
|
+
client.custom_login_page = (0, _tools.loadFileAndReplaceKeywords)(htmlFileName, context.mappings);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
|
|
@@ -40,7 +40,7 @@ function parse(context) {
|
|
|
40
40
|
const htmlFileName = _path2.default.join(connectionsFolder, connection.options.email.body);
|
|
41
41
|
|
|
42
42
|
if ((0, _utils.isFile)(htmlFileName)) {
|
|
43
|
-
connection.options.email.body = (0, _tools.
|
|
43
|
+
connection.options.email.body = (0, _tools.loadFileAndReplaceKeywords)(htmlFileName, context.mappings);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -54,7 +54,7 @@ function getDatabase(folder, mappings) {
|
|
|
54
54
|
if (!_tools.constants.DATABASE_SCRIPTS.includes(name)) {
|
|
55
55
|
_logger2.default.warn('Skipping invalid database configuration: ' + name);
|
|
56
56
|
} else {
|
|
57
|
-
database.options.customScripts[name] = (0, _tools.
|
|
57
|
+
database.options.customScripts[name] = (0, _tools.loadFileAndReplaceKeywords)(_path2.default.join(folder, script), mappings);
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
}
|
|
@@ -48,7 +48,7 @@ function parse(context) {
|
|
|
48
48
|
_logger2.default.warn(`Skipping email template file ${data.meta} as missing corresponding '.html' file`);
|
|
49
49
|
} else {
|
|
50
50
|
emailTemplates.push({ ...(0, _utils.loadJSON)(data.meta, context.mappings),
|
|
51
|
-
body: (0, _tools.
|
|
51
|
+
body: (0, _tools.loadFileAndReplaceKeywords)(data.html, context.mappings)
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
});
|
|
@@ -48,7 +48,7 @@ function parse(context) {
|
|
|
48
48
|
_logger2.default.warn(`Skipping pages file ${data.meta} as missing corresponding '.html' file`);
|
|
49
49
|
} else {
|
|
50
50
|
pages.push({ ...(0, _utils.loadJSON)(data.meta, context.mappings),
|
|
51
|
-
html: (0, _tools.
|
|
51
|
+
html: (0, _tools.loadFileAndReplaceKeywords)(data.html, context.mappings)
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
});
|
|
@@ -77,7 +77,7 @@ let DatabaseHandler = (_dec = (0, _default.order)('60'), (_class = class Databas
|
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
return
|
|
80
|
+
return this.client.connections[fn].bind(this.client.connections);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
async getType() {
|
|
@@ -48,8 +48,8 @@ class DefaultHandler {
|
|
|
48
48
|
|
|
49
49
|
getClientFN(fn) {
|
|
50
50
|
if (typeof fn === 'string') {
|
|
51
|
-
const client =
|
|
52
|
-
return
|
|
51
|
+
const client = this.client[this.type];
|
|
52
|
+
return client[fn].bind(client);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
return fn;
|
|
@@ -88,7 +88,7 @@ class DefaultHandler {
|
|
|
88
88
|
const typeAssets = assets[this.type];
|
|
89
89
|
if (!typeAssets) return {};
|
|
90
90
|
const existing = await this.getType();
|
|
91
|
-
return (0, _utils.calcChanges)(this, typeAssets, existing, this.identifiers
|
|
91
|
+
return (0, _utils.calcChanges)(this, typeAssets, existing, this.identifiers);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
async validate(assets) {
|
package/lib/tools/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.Auth0 = exports.
|
|
6
|
+
exports.Auth0 = exports.loadFileAndReplaceKeywords = exports.keywordReplace = exports.deploy = exports.constants = undefined;
|
|
7
7
|
|
|
8
8
|
var _constants = require("./constants");
|
|
9
9
|
|
|
@@ -25,11 +25,11 @@ exports.default = {
|
|
|
25
25
|
constants: _constants2.default,
|
|
26
26
|
deploy: _deploy2.default,
|
|
27
27
|
keywordReplace: _utils.keywordReplace,
|
|
28
|
-
|
|
28
|
+
loadFileAndReplaceKeywords: _utils.loadFileAndReplaceKeywords,
|
|
29
29
|
Auth0: _auth2.default
|
|
30
30
|
};
|
|
31
31
|
exports.constants = _constants2.default;
|
|
32
32
|
exports.deploy = _deploy2.default;
|
|
33
33
|
exports.keywordReplace = _utils.keywordReplace;
|
|
34
|
-
exports.
|
|
34
|
+
exports.loadFileAndReplaceKeywords = _utils.loadFileAndReplaceKeywords;
|
|
35
35
|
exports.Auth0 = _auth2.default;
|
package/lib/tools/utils.js
CHANGED
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.keywordArrayReplace = keywordArrayReplace;
|
|
7
|
+
exports.keywordStringReplace = keywordStringReplace;
|
|
6
8
|
exports.keywordReplace = keywordReplace;
|
|
7
9
|
exports.convertClientNameToId = convertClientNameToId;
|
|
8
10
|
exports.convertClientNamesToIds = convertClientNamesToIds;
|
|
9
|
-
exports.
|
|
11
|
+
exports.loadFileAndReplaceKeywords = loadFileAndReplaceKeywords;
|
|
10
12
|
exports.flatten = flatten;
|
|
11
13
|
exports.dumpJSON = dumpJSON;
|
|
14
|
+
exports.processChangedObjectFields = processChangedObjectFields;
|
|
12
15
|
exports.calcChanges = calcChanges;
|
|
13
16
|
exports.stripFields = stripFields;
|
|
14
17
|
exports.getEnabledClients = getEnabledClients;
|
|
@@ -38,16 +41,28 @@ var _logger2 = _interopRequireDefault(_logger);
|
|
|
38
41
|
|
|
39
42
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
40
43
|
|
|
44
|
+
function keywordArrayReplace(input, mappings) {
|
|
45
|
+
Object.keys(mappings).forEach(function (key) {
|
|
46
|
+
const pattern = `@@${key}@@`;
|
|
47
|
+
const patternWithQuotes = `"${pattern}"`;
|
|
48
|
+
const regex = new RegExp(`${patternWithQuotes}|${pattern}`, 'g');
|
|
49
|
+
input = input.replace(regex, JSON.stringify(mappings[key]));
|
|
50
|
+
});
|
|
51
|
+
return input;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function keywordStringReplace(input, mappings) {
|
|
55
|
+
Object.keys(mappings).forEach(function (key) {
|
|
56
|
+
const regex = new RegExp(`##${key}##`, 'g');
|
|
57
|
+
input = input.replace(regex, mappings[key]);
|
|
58
|
+
});
|
|
59
|
+
return input;
|
|
60
|
+
}
|
|
61
|
+
|
|
41
62
|
function keywordReplace(input, mappings) {
|
|
42
63
|
if (mappings && Object.keys(mappings).length > 0) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
input = input.replace(re, mappings[key]);
|
|
46
|
-
});
|
|
47
|
-
Object.keys(mappings).forEach(function (key) {
|
|
48
|
-
const re = new RegExp(`@@${key}@@`, 'g');
|
|
49
|
-
input = input.replace(re, JSON.stringify(mappings[key]));
|
|
50
|
-
});
|
|
64
|
+
input = keywordStringReplace(input, mappings);
|
|
65
|
+
input = keywordArrayReplace(input, mappings);
|
|
51
66
|
}
|
|
52
67
|
|
|
53
68
|
return input;
|
|
@@ -76,7 +91,7 @@ function convertClientNamesToIds(names, clients) {
|
|
|
76
91
|
return [...unresolved, ...result];
|
|
77
92
|
}
|
|
78
93
|
|
|
79
|
-
function
|
|
94
|
+
function loadFileAndReplaceKeywords(file, mappings) {
|
|
80
95
|
const f = _path2.default.resolve(file);
|
|
81
96
|
|
|
82
97
|
try {
|
|
@@ -100,11 +115,22 @@ function dumpJSON(obj, spacing = 0) {
|
|
|
100
115
|
return JSON.stringify(obj, null, spacing);
|
|
101
116
|
}
|
|
102
117
|
|
|
103
|
-
function processChangedObjectFields(
|
|
118
|
+
function processChangedObjectFields({
|
|
119
|
+
handler,
|
|
120
|
+
desiredAssetState,
|
|
121
|
+
currentAssetState,
|
|
122
|
+
allowDelete = false
|
|
123
|
+
}) {
|
|
104
124
|
const desiredAssetStateWithChanges = { ...desiredAssetState
|
|
105
125
|
};
|
|
106
126
|
|
|
107
|
-
for (const fieldName of objectFields) {
|
|
127
|
+
for (const fieldName of handler.objectFields) {
|
|
128
|
+
const areDesiredStateAndCurrentStateEmpty = Object.keys(desiredAssetState[fieldName] || {}).length === 0 && Object.keys(currentAssetState[fieldName] || {}).length === 0;
|
|
129
|
+
|
|
130
|
+
if (areDesiredStateAndCurrentStateEmpty) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
|
|
108
134
|
if (desiredAssetState[fieldName] && Object.keys(desiredAssetState[fieldName]).length) {
|
|
109
135
|
if (currentAssetState[fieldName]) {
|
|
110
136
|
for (const currentObjectFieldPropertyName of Object.keys(currentAssetState[fieldName])) {
|
|
@@ -112,7 +138,7 @@ function processChangedObjectFields(handler, desiredAssetState, currentAssetStat
|
|
|
112
138
|
if (allowDelete) {
|
|
113
139
|
desiredAssetStateWithChanges[fieldName][currentObjectFieldPropertyName] = null;
|
|
114
140
|
} else {
|
|
115
|
-
_logger2.default.warn(`Detected that the ${fieldName} of the following ${handler.name} should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config\n${handler.objString(currentAssetState)}`);
|
|
141
|
+
_logger2.default.warn(`Detected that the ${fieldName} of the following ${handler.name || handler.id || ''} should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config\n${handler.objString(currentAssetState)}`);
|
|
116
142
|
}
|
|
117
143
|
}
|
|
118
144
|
}
|
|
@@ -122,14 +148,14 @@ function processChangedObjectFields(handler, desiredAssetState, currentAssetStat
|
|
|
122
148
|
} else {
|
|
123
149
|
delete desiredAssetStateWithChanges[fieldName];
|
|
124
150
|
|
|
125
|
-
_logger2.default.warn(`Detected that the ${fieldName} of the following ${handler.name} should be emptied. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config\n${handler.objString(currentAssetState)}`);
|
|
151
|
+
_logger2.default.warn(`Detected that the ${fieldName} of the following ${handler.name || handler.id || ''} should be emptied. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config\n${handler.objString(currentAssetState)}`);
|
|
126
152
|
}
|
|
127
153
|
}
|
|
128
154
|
|
|
129
155
|
return desiredAssetStateWithChanges;
|
|
130
156
|
}
|
|
131
157
|
|
|
132
|
-
function calcChanges(handler, assets, existing, identifiers = ['id', 'name'],
|
|
158
|
+
function calcChanges(handler, assets, existing, identifiers = ['id', 'name'], allowDelete = false) {
|
|
133
159
|
const update = [];
|
|
134
160
|
let del = [...existing];
|
|
135
161
|
let create = [...assets];
|
|
@@ -173,7 +199,12 @@ function calcChanges(handler, assets, existing, identifiers = ['id', 'name'], ob
|
|
|
173
199
|
if (found[i]) obj[i] = found[i];
|
|
174
200
|
return obj;
|
|
175
201
|
}, {}),
|
|
176
|
-
...(objectFields.length ? processChangedObjectFields(
|
|
202
|
+
...(handler.objectFields.length ? processChangedObjectFields({
|
|
203
|
+
handler,
|
|
204
|
+
desiredAssetState: asset,
|
|
205
|
+
currentAssetState: found,
|
|
206
|
+
allowDelete
|
|
207
|
+
}) : asset)
|
|
177
208
|
});
|
|
178
209
|
}
|
|
179
210
|
}
|
package/lib/utils.js
CHANGED
|
@@ -71,7 +71,7 @@ function getFiles(folder, exts) {
|
|
|
71
71
|
|
|
72
72
|
function loadJSON(file, mappings) {
|
|
73
73
|
try {
|
|
74
|
-
const content = (0, _tools.
|
|
74
|
+
const content = (0, _tools.loadFileAndReplaceKeywords)(file, mappings);
|
|
75
75
|
return JSON.parse(content);
|
|
76
76
|
} catch (e) {
|
|
77
77
|
throw new Error(`Error parsing JSON from metadata file: ${file}, because: ${e.message}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "auth0-deploy-cli",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.4.0",
|
|
4
4
|
"description": "A command line tool for deploying updates to your Auth0 tenant",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"pretest": "rimraf ./.nyc_output",
|
|
13
13
|
"test": "cross-env NODE_ENV=test nyc mocha --recursive --require @babel/register test",
|
|
14
14
|
"build": "rimraf ./lib && babel src -d lib",
|
|
15
|
+
"dev": "npm run build -- --watch",
|
|
15
16
|
"prepare": "npm run build",
|
|
16
17
|
"preversion": "kacl prerelease",
|
|
17
18
|
"version": "kacl release && git add CHANGELOG.md"
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
"homepage": "https://github.com/auth0/auth0-deploy-cli#readme",
|
|
30
31
|
"dependencies": {
|
|
31
32
|
"ajv": "^6.12.6",
|
|
32
|
-
"auth0": "^2.
|
|
33
|
+
"auth0": "^2.40.0",
|
|
33
34
|
"dot-prop": "^5.2.0",
|
|
34
35
|
"fs-extra": "^7.0.0",
|
|
35
36
|
"global-agent": "^2.1.12",
|
|
@@ -60,6 +61,7 @@
|
|
|
60
61
|
"eslint-config-airbnb-base": "^14.2.1",
|
|
61
62
|
"eslint-import-resolver-babel-module": "^5.1.2",
|
|
62
63
|
"eslint-plugin-import": "^2.20.2",
|
|
64
|
+
"husky": "^7.0.4",
|
|
63
65
|
"kacl": "^1.1.1",
|
|
64
66
|
"mocha": "^9.1.3",
|
|
65
67
|
"nyc": "^15.0.1",
|