auth0-deploy-cli 7.3.7 → 7.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/.circleci/config.yml +15 -0
  2. package/.eslintrc +66 -17
  3. package/.github/CODEOWNERS +1 -0
  4. package/.husky/pre-commit +6 -0
  5. package/.husky/pre-push +4 -0
  6. package/CHANGELOG.md +37 -2
  7. package/lib/args.js +94 -81
  8. package/lib/commands/export.js +54 -78
  9. package/lib/commands/import.js +46 -70
  10. package/lib/commands/index.js +11 -20
  11. package/lib/configFactory.js +19 -27
  12. package/lib/context/defaults.js +18 -41
  13. package/lib/context/directory/handlers/actions.js +77 -107
  14. package/lib/context/directory/handlers/attackProtection.js +59 -0
  15. package/lib/context/directory/handlers/clientGrants.js +45 -54
  16. package/lib/context/directory/handlers/clients.js +60 -79
  17. package/lib/context/directory/handlers/connections.js +65 -89
  18. package/lib/context/directory/handlers/databases.js +91 -123
  19. package/lib/context/directory/handlers/emailProvider.js +46 -57
  20. package/lib/context/directory/handlers/emailTemplates.js +67 -80
  21. package/lib/context/directory/handlers/guardianFactorProviders.js +41 -49
  22. package/lib/context/directory/handlers/guardianFactorTemplates.js +41 -49
  23. package/lib/context/directory/handlers/guardianFactors.js +41 -49
  24. package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js +40 -50
  25. package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js +40 -50
  26. package/lib/context/directory/handlers/guardianPolicies.js +40 -50
  27. package/lib/context/directory/handlers/hooks.js +55 -70
  28. package/lib/context/directory/handlers/index.js +53 -123
  29. package/lib/context/directory/handlers/migrations.js +36 -41
  30. package/lib/context/directory/handlers/organizations.js +54 -69
  31. package/lib/context/directory/handlers/pages.js +72 -86
  32. package/lib/context/directory/handlers/resourceServers.js +41 -49
  33. package/lib/context/directory/handlers/roles.js +49 -62
  34. package/lib/context/directory/handlers/rules.js +52 -68
  35. package/lib/context/directory/handlers/rulesConfigs.js +33 -32
  36. package/lib/context/directory/handlers/tenant.js +52 -47
  37. package/lib/context/directory/handlers/triggers.js +39 -54
  38. package/lib/context/directory/index.js +113 -101
  39. package/lib/context/index.js +96 -105
  40. package/lib/context/yaml/handlers/actions.js +71 -88
  41. package/lib/context/yaml/handlers/attackProtection.js +29 -0
  42. package/lib/context/yaml/handlers/clientGrants.js +36 -29
  43. package/lib/context/yaml/handlers/clients.js +61 -76
  44. package/lib/context/yaml/handlers/connections.js +76 -103
  45. package/lib/context/yaml/handlers/databases.js +64 -79
  46. package/lib/context/yaml/handlers/emailProvider.js +33 -30
  47. package/lib/context/yaml/handlers/emailTemplates.js +45 -54
  48. package/lib/context/yaml/handlers/guardianFactorProviders.js +27 -18
  49. package/lib/context/yaml/handlers/guardianFactorTemplates.js +27 -18
  50. package/lib/context/yaml/handlers/guardianFactors.js +27 -18
  51. package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js +27 -20
  52. package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js +27 -20
  53. package/lib/context/yaml/handlers/guardianPolicies.js +27 -20
  54. package/lib/context/yaml/handlers/hooks.js +57 -67
  55. package/lib/context/yaml/handlers/index.js +53 -123
  56. package/lib/context/yaml/handlers/migrations.js +23 -24
  57. package/lib/context/yaml/handlers/organizations.js +40 -38
  58. package/lib/context/yaml/handlers/pages.js +49 -58
  59. package/lib/context/yaml/handlers/resourceServers.js +27 -18
  60. package/lib/context/yaml/handlers/roles.js +34 -24
  61. package/lib/context/yaml/handlers/rules.js +48 -58
  62. package/lib/context/yaml/handlers/rulesConfigs.js +27 -18
  63. package/lib/context/yaml/handlers/tenant.js +44 -30
  64. package/lib/context/yaml/handlers/triggers.js +32 -23
  65. package/lib/context/yaml/index.js +127 -142
  66. package/lib/index.js +73 -79
  67. package/lib/logger.js +18 -22
  68. package/lib/readonly.js +74 -66
  69. package/lib/tools/ValidationError.js +8 -13
  70. package/lib/tools/auth0/client.js +143 -133
  71. package/lib/tools/auth0/handlers/actions.js +231 -243
  72. package/lib/tools/auth0/handlers/attackProtection.js +86 -0
  73. package/lib/tools/auth0/handlers/branding.js +47 -46
  74. package/lib/tools/auth0/handlers/clientGrants.js +118 -116
  75. package/lib/tools/auth0/handlers/clients.js +72 -90
  76. package/lib/tools/auth0/handlers/connections.js +150 -118
  77. package/lib/tools/auth0/handlers/databases.js +127 -124
  78. package/lib/tools/auth0/handlers/default.js +186 -189
  79. package/lib/tools/auth0/handlers/emailProvider.js +67 -78
  80. package/lib/tools/auth0/handlers/emailTemplates.js +116 -92
  81. package/lib/tools/auth0/handlers/guardianFactorProviders.js +66 -81
  82. package/lib/tools/auth0/handlers/guardianFactorTemplates.js +60 -71
  83. package/lib/tools/auth0/handlers/guardianFactors.js +56 -63
  84. package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +80 -79
  85. package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +77 -76
  86. package/lib/tools/auth0/handlers/guardianPolicies.js +59 -62
  87. package/lib/tools/auth0/handlers/hooks.js +201 -227
  88. package/lib/tools/auth0/handlers/index.js +53 -111
  89. package/lib/tools/auth0/handlers/migrations.js +99 -79
  90. package/lib/tools/auth0/handlers/organizations.js +225 -247
  91. package/lib/tools/auth0/handlers/pages.js +116 -154
  92. package/lib/tools/auth0/handlers/prompts.js +47 -46
  93. package/lib/tools/auth0/handlers/resourceServers.js +88 -112
  94. package/lib/tools/auth0/handlers/roles.js +203 -220
  95. package/lib/tools/auth0/handlers/rules.js +168 -189
  96. package/lib/tools/auth0/handlers/rulesConfigs.js +54 -63
  97. package/lib/tools/auth0/handlers/tenant.js +88 -64
  98. package/lib/tools/auth0/handlers/triggers.js +126 -126
  99. package/lib/tools/auth0/index.js +92 -85
  100. package/lib/tools/auth0/schema.js +39 -31
  101. package/lib/tools/constants.js +111 -21
  102. package/lib/tools/deploy.js +35 -32
  103. package/lib/tools/index.js +19 -32
  104. package/lib/tools/logger.js +11 -12
  105. package/lib/tools/utils.js +258 -254
  106. package/lib/utils.js +167 -190
  107. package/package.json +13 -17
  108. package/tsconfig.json +17 -0
  109. package/typescript-migration-progress.sh +22 -0
  110. package/.babelrc +0 -17
  111. package/.nyc_output/32e2bffd-d561-4814-9aa3-fe929a1e178a.json +0 -1
  112. package/.nyc_output/processinfo/32e2bffd-d561-4814-9aa3-fe929a1e178a.json +0 -1
  113. package/.nyc_output/processinfo/index.json +0 -1
@@ -1,140 +1,140 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
5
17
  });
6
- exports.default = exports.schema = undefined;
7
-
8
- var _dec, _class;
9
-
10
- var _lodash = require("lodash");
11
-
12
- var _lodash2 = _interopRequireDefault(_lodash);
13
-
14
- var _default = require("./default");
15
-
16
- var _default2 = _interopRequireDefault(_default);
17
-
18
- var _constants = require("../../constants");
19
-
20
- var _constants2 = _interopRequireDefault(_constants);
21
-
22
- var _logger = require("../../logger");
23
-
24
- var _logger2 = _interopRequireDefault(_logger);
25
-
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
- function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
29
-
30
- const schema = exports.schema = {
31
- type: 'object',
32
- items: {
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
32
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
33
+ return new (P || (P = Promise))(function (resolve, reject) {
34
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
35
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
36
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
37
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
38
+ });
39
+ };
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.schema = void 0;
45
+ const lodash_1 = __importDefault(require("lodash"));
46
+ const default_1 = __importStar(require("./default"));
47
+ const constants_1 = __importDefault(require("../../constants"));
48
+ const logger_1 = __importDefault(require("../../logger"));
49
+ exports.schema = {
33
50
  type: 'object',
34
- additionalProperties: true,
35
- properties: {
36
- trigger_id: {
51
+ items: {
37
52
  type: 'object',
53
+ additionalProperties: true,
38
54
  properties: {
39
- action_name: {
40
- type: 'string',
41
- enum: _constants2.default.ACTIONS_TRIGGERS
42
- },
43
- display_name: {
44
- type: 'string',
45
- default: ''
46
- }
55
+ trigger_id: {
56
+ type: 'object',
57
+ properties: {
58
+ action_name: { type: 'string', enum: constants_1.default.ACTIONS_TRIGGERS },
59
+ display_name: { type: 'string', default: '' }
60
+ }
61
+ }
47
62
  }
48
- }
49
63
  }
50
- }
51
64
  };
52
-
53
65
  function isActionsDisabled(err) {
54
- const errorBody = _lodash2.default.get(err, 'originalError.response.body') || {};
55
- return err.statusCode === 403 && errorBody.errorCode === 'feature_not_enabled';
66
+ const errorBody = lodash_1.default.get(err, 'originalError.response.body') || {};
67
+ return (err.statusCode === 403 && errorBody.errorCode === 'feature_not_enabled');
56
68
  }
57
-
58
- let TriggersHandler = (_dec = (0, _default.order)('80'), (_class = class TriggersHandler extends _default2.default {
59
- constructor(options) {
60
- super({ ...options,
61
- type: 'triggers',
62
- id: 'name'
63
- });
64
- }
65
-
66
- async getType() {
67
- if (this.existing) {
68
- return this.existing;
69
+ class TriggersHandler extends default_1.default {
70
+ constructor(options) {
71
+ super(Object.assign(Object.assign({}, options), { type: 'triggers', id: 'name' }));
69
72
  }
70
-
71
- if (!this.client.actions || typeof this.client.actions.getAllTriggers !== 'function') {
72
- return [];
73
+ getType() {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ if (this.existing) {
76
+ return this.existing;
77
+ }
78
+ // in case client version does not support actions
79
+ if (!this.client.actions
80
+ || typeof this.client.actions.getAllTriggers !== 'function') {
81
+ return [];
82
+ }
83
+ const triggerBindings = {};
84
+ try {
85
+ const res = yield this.client.actions.getAllTriggers();
86
+ const triggers = (0, lodash_1.default)(res.triggers).map('id').uniq().value();
87
+ for (let i = 0; i < triggers.length; i++) {
88
+ const triggerId = triggers[i];
89
+ const { bindings } = yield this.client.actions.getTriggerBindings({
90
+ trigger_id: triggerId
91
+ });
92
+ if (bindings.length > 0) {
93
+ triggerBindings[triggerId] = bindings.map((binding) => ({
94
+ action_name: binding.action.name,
95
+ display_name: binding.display_name
96
+ }));
97
+ }
98
+ }
99
+ this.existing = triggerBindings;
100
+ return this.existing;
101
+ }
102
+ catch (err) {
103
+ if (err.statusCode === 404 || err.statusCode === 501) {
104
+ return [];
105
+ }
106
+ if (isActionsDisabled(err)) {
107
+ logger_1.default.info('Skipping triggers because Actions is not enabled.');
108
+ return {};
109
+ }
110
+ throw err;
111
+ }
112
+ });
73
113
  }
74
-
75
- const triggerBindings = {};
76
-
77
- try {
78
- const res = await this.client.actions.getAllTriggers();
79
- const triggers = (0, _lodash2.default)(res.triggers).map('id').uniq().value();
80
-
81
- for (let i = 0; i < triggers.length; i++) {
82
- const triggerId = triggers[i];
83
- const {
84
- bindings
85
- } = await this.client.actions.getTriggerBindings({
86
- trigger_id: triggerId
114
+ processChanges(assets) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ // No API to delete or create triggers, we can only update.
117
+ const { triggers } = assets;
118
+ // Do nothing if not set
119
+ if (!triggers)
120
+ return;
121
+ // Process each trigger
122
+ yield Promise.all(Object.entries(triggers).map(([name, data]) => __awaiter(this, void 0, void 0, function* () {
123
+ const bindings = data.map((binding) => ({
124
+ ref: {
125
+ type: 'action_name',
126
+ value: binding.action_name
127
+ },
128
+ display_name: binding.display_name
129
+ }));
130
+ yield this.client.actions.updateTriggerBindings({ trigger_id: name }, { bindings });
131
+ this.didUpdate({ trigger_id: name });
132
+ this.updated += 1;
133
+ })));
87
134
  });
88
-
89
- if (bindings.length > 0) {
90
- triggerBindings[triggerId] = bindings.map(binding => ({
91
- action_name: binding.action.name,
92
- display_name: binding.display_name
93
- }));
94
- }
95
- }
96
-
97
- this.existing = triggerBindings;
98
- return this.existing;
99
- } catch (err) {
100
- if (err.statusCode === 404 || err.statusCode === 501) {
101
- return [];
102
- }
103
-
104
- if (isActionsDisabled(err)) {
105
- _logger2.default.info('Skipping triggers because Actions is not enabled.');
106
-
107
- return {};
108
- }
109
-
110
- throw err;
111
135
  }
112
- }
113
-
114
- async processChanges(assets) {
115
- const {
116
- triggers
117
- } = assets;
118
- if (!triggers) return;
119
- await Promise.all(Object.entries(triggers).map(async ([name, data]) => {
120
- const bindings = data.map(binding => ({
121
- ref: {
122
- type: 'action_name',
123
- value: binding.action_name
124
- },
125
- display_name: binding.display_name
126
- }));
127
- await this.client.actions.updateTriggerBindings({
128
- trigger_id: name
129
- }, {
130
- bindings
131
- });
132
- this.didUpdate({
133
- trigger_id: name
134
- });
135
- this.updated += 1;
136
- }));
137
- }
138
-
139
- }, (_applyDecoratedDescriptor(_class.prototype, "processChanges", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "processChanges"), _class.prototype)), _class));
140
- exports.default = TriggersHandler;
136
+ }
137
+ __decorate([
138
+ (0, default_1.order)('80')
139
+ ], TriggersHandler.prototype, "processChanges", null);
140
+ exports.default = TriggersHandler;
@@ -1,94 +1,101 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
5
17
  });
6
-
7
- var _ajv = require("ajv/lib/ajv");
8
-
9
- var _ajv2 = _interopRequireDefault(_ajv);
10
-
11
- var _client = require("./client");
12
-
13
- var _client2 = _interopRequireDefault(_client);
14
-
15
- var _schema = require("./schema");
16
-
17
- var _schema2 = _interopRequireDefault(_schema);
18
-
19
- var _handlers = require("./handlers");
20
-
21
- var handlers = _interopRequireWildcard(_handlers);
22
-
23
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
-
25
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
-
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const ajv_1 = __importDefault(require("ajv/lib/ajv"));
39
+ const client_1 = __importDefault(require("./client"));
40
+ const schema_1 = __importDefault(require("./schema"));
41
+ const handlers = __importStar(require("./handlers"));
29
42
  const defaultOrder = 50;
30
-
31
43
  function sortByOrder(toSort, stage) {
32
- const sorted = [...toSort];
33
- sorted.sort((a, b) => {
34
- const aOrder = a[stage].order || defaultOrder;
35
- const bOrder = b[stage].order || defaultOrder;
36
- return aOrder - bOrder;
37
- });
38
- return sorted;
44
+ const sorted = [...toSort];
45
+ sorted.sort((a, b) => {
46
+ const aOrder = a[stage].order || defaultOrder;
47
+ const bOrder = b[stage].order || defaultOrder;
48
+ return aOrder - bOrder;
49
+ });
50
+ return sorted;
39
51
  }
40
-
41
52
  class Auth0 {
42
- constructor(client, assets, config) {
43
- this.client = (0, _client2.default)(client);
44
- this.config = config;
45
- this.assets = assets;
46
- this.handlers = [];
47
- Object.values(handlers).forEach(h => {
48
- const handler = new h.default({
49
- client: this.client,
50
- config
51
- });
52
- this.handlers.push(handler);
53
- });
54
- }
55
-
56
- async runStage(stage) {
57
- for (const handler of sortByOrder(this.handlers, stage)) {
58
- try {
59
- const stageFn = Object.getPrototypeOf(handler)[stage];
60
- this.assets = { ...this.assets,
61
- ...((await stageFn.apply(handler, [this.assets])) || {})
62
- };
63
- } catch (err) {
64
- err.type = handler.type;
65
- err.stage = stage;
66
- throw err;
67
- }
53
+ constructor(client, assets, config) {
54
+ this.client = (0, client_1.default)(client);
55
+ this.config = config;
56
+ this.assets = assets;
57
+ this.handlers = [];
58
+ Object.values(handlers).forEach((h) => {
59
+ const handler = new h.default({ client: this.client, config });
60
+ this.handlers.push(handler);
61
+ });
68
62
  }
69
- }
70
-
71
- async validate() {
72
- const ajv = new _ajv2.default({
73
- useDefaults: true
74
- });
75
- const valid = ajv.validate(_schema2.default, this.assets);
76
-
77
- if (!valid) {
78
- throw new Error(`Schema validation failed loading ${JSON.stringify(ajv.errors, null, 4)}`);
63
+ runStage(stage) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ // Sort by priority
66
+ for (const handler of sortByOrder(this.handlers, stage)) { // eslint-disable-line
67
+ try {
68
+ const stageFn = Object.getPrototypeOf(handler)[stage];
69
+ this.assets = Object.assign(Object.assign({}, this.assets), (yield stageFn.apply(handler, [this.assets])) || {});
70
+ }
71
+ catch (err) {
72
+ err.type = handler.type;
73
+ err.stage = stage;
74
+ throw err;
75
+ }
76
+ }
77
+ });
78
+ }
79
+ validate() {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ const ajv = new ajv_1.default({ useDefaults: true });
82
+ const valid = ajv.validate(schema_1.default, this.assets);
83
+ if (!valid) {
84
+ throw new Error(`Schema validation failed loading ${JSON.stringify(ajv.errors, null, 4)}`);
85
+ }
86
+ yield this.runStage('validate');
87
+ });
88
+ }
89
+ loadAll() {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ // Populate assets from auth0 tenant
92
+ yield this.runStage('load');
93
+ });
94
+ }
95
+ processChanges() {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ yield this.runStage('processChanges');
98
+ });
79
99
  }
80
-
81
- await this.runStage('validate');
82
- }
83
-
84
- async loadAll() {
85
- await this.runStage('load');
86
- }
87
-
88
- async processChanges() {
89
- await this.runStage('processChanges');
90
- }
91
-
92
100
  }
93
-
94
- exports.default = Auth0;
101
+ exports.default = Auth0;
@@ -1,38 +1,46 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
5
17
  });
6
-
7
- var _handlers = require("./handlers");
8
-
9
- var handlers = _interopRequireWildcard(_handlers);
10
-
11
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
-
13
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
-
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const handlers = __importStar(require("./handlers"));
15
27
  const typesSchema = Object.entries(handlers).reduce((map, [name, obj]) => {
16
- map[name] = obj.schema;
17
- return map;
28
+ map[name] = obj.schema; //eslint-disable-line
29
+ return map;
18
30
  }, {});
19
31
  const excludeSchema = Object.entries(handlers).reduce((map, [name, obj]) => {
20
- if (obj.excludeSchema) {
21
- map[name] = obj.excludeSchema;
22
- }
23
-
24
- return map;
32
+ if (obj.excludeSchema) {
33
+ map[name] = obj.excludeSchema;
34
+ }
35
+ return map;
25
36
  }, {});
26
37
  exports.default = {
27
- type: 'object',
28
- $schema: 'http://json-schema.org/draft-07/schema#',
29
- properties: { ...typesSchema,
30
- exclude: {
31
- type: 'object',
32
- properties: { ...excludeSchema
33
- },
34
- default: {}
35
- }
36
- },
37
- additionalProperties: false
38
- };
38
+ type: 'object',
39
+ $schema: 'http://json-schema.org/draft-07/schema#',
40
+ properties: Object.assign(Object.assign({}, typesSchema), { exclude: {
41
+ type: 'object',
42
+ properties: Object.assign({}, excludeSchema),
43
+ default: {}
44
+ } }),
45
+ additionalProperties: false
46
+ };