auth0-deploy-cli 7.4.0 → 7.5.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.
Files changed (112) hide show
  1. package/.circleci/config.yml +15 -0
  2. package/.github/CODEOWNERS +1 -0
  3. package/.husky/pre-commit +2 -0
  4. package/.nyc_output/60b76a45-577b-4171-9982-a8e836ab7fd6.json +1 -0
  5. package/.nyc_output/processinfo/60b76a45-577b-4171-9982-a8e836ab7fd6.json +1 -0
  6. package/.nyc_output/processinfo/index.json +1 -1
  7. package/CHANGELOG.md +13 -1
  8. package/lib/args.js +89 -81
  9. package/lib/commands/export.js +51 -77
  10. package/lib/commands/import.js +45 -69
  11. package/lib/commands/index.js +11 -20
  12. package/lib/configFactory.js +19 -27
  13. package/lib/context/defaults.js +18 -41
  14. package/lib/context/directory/handlers/actions.js +77 -107
  15. package/lib/context/directory/handlers/attackProtection.js +59 -0
  16. package/lib/context/directory/handlers/clientGrants.js +45 -54
  17. package/lib/context/directory/handlers/clients.js +60 -79
  18. package/lib/context/directory/handlers/connections.js +65 -89
  19. package/lib/context/directory/handlers/databases.js +91 -123
  20. package/lib/context/directory/handlers/emailProvider.js +46 -57
  21. package/lib/context/directory/handlers/emailTemplates.js +67 -80
  22. package/lib/context/directory/handlers/guardianFactorProviders.js +41 -49
  23. package/lib/context/directory/handlers/guardianFactorTemplates.js +41 -49
  24. package/lib/context/directory/handlers/guardianFactors.js +41 -49
  25. package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js +40 -50
  26. package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js +40 -50
  27. package/lib/context/directory/handlers/guardianPolicies.js +40 -50
  28. package/lib/context/directory/handlers/hooks.js +55 -70
  29. package/lib/context/directory/handlers/index.js +53 -123
  30. package/lib/context/directory/handlers/migrations.js +36 -41
  31. package/lib/context/directory/handlers/organizations.js +54 -69
  32. package/lib/context/directory/handlers/pages.js +72 -86
  33. package/lib/context/directory/handlers/resourceServers.js +41 -49
  34. package/lib/context/directory/handlers/roles.js +49 -62
  35. package/lib/context/directory/handlers/rules.js +52 -68
  36. package/lib/context/directory/handlers/rulesConfigs.js +33 -32
  37. package/lib/context/directory/handlers/tenant.js +52 -47
  38. package/lib/context/directory/handlers/triggers.js +39 -54
  39. package/lib/context/directory/index.js +113 -101
  40. package/lib/context/index.js +96 -105
  41. package/lib/context/yaml/handlers/actions.js +71 -88
  42. package/lib/context/yaml/handlers/attackProtection.js +29 -0
  43. package/lib/context/yaml/handlers/clientGrants.js +36 -29
  44. package/lib/context/yaml/handlers/clients.js +61 -76
  45. package/lib/context/yaml/handlers/connections.js +76 -103
  46. package/lib/context/yaml/handlers/databases.js +64 -79
  47. package/lib/context/yaml/handlers/emailProvider.js +33 -30
  48. package/lib/context/yaml/handlers/emailTemplates.js +45 -54
  49. package/lib/context/yaml/handlers/guardianFactorProviders.js +27 -18
  50. package/lib/context/yaml/handlers/guardianFactorTemplates.js +27 -18
  51. package/lib/context/yaml/handlers/guardianFactors.js +27 -18
  52. package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js +27 -20
  53. package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js +27 -20
  54. package/lib/context/yaml/handlers/guardianPolicies.js +27 -20
  55. package/lib/context/yaml/handlers/hooks.js +57 -67
  56. package/lib/context/yaml/handlers/index.js +53 -123
  57. package/lib/context/yaml/handlers/migrations.js +23 -24
  58. package/lib/context/yaml/handlers/organizations.js +40 -38
  59. package/lib/context/yaml/handlers/pages.js +49 -58
  60. package/lib/context/yaml/handlers/resourceServers.js +27 -18
  61. package/lib/context/yaml/handlers/roles.js +34 -24
  62. package/lib/context/yaml/handlers/rules.js +48 -58
  63. package/lib/context/yaml/handlers/rulesConfigs.js +27 -18
  64. package/lib/context/yaml/handlers/tenant.js +44 -30
  65. package/lib/context/yaml/handlers/triggers.js +32 -23
  66. package/lib/context/yaml/index.js +127 -142
  67. package/lib/index.js +73 -79
  68. package/lib/logger.js +18 -22
  69. package/lib/readonly.js +74 -66
  70. package/lib/tools/ValidationError.js +8 -13
  71. package/lib/tools/auth0/client.js +143 -133
  72. package/lib/tools/auth0/handlers/actions.js +231 -243
  73. package/lib/tools/auth0/handlers/attackProtection.js +86 -0
  74. package/lib/tools/auth0/handlers/branding.js +47 -46
  75. package/lib/tools/auth0/handlers/clientGrants.js +118 -116
  76. package/lib/tools/auth0/handlers/clients.js +72 -90
  77. package/lib/tools/auth0/handlers/connections.js +150 -118
  78. package/lib/tools/auth0/handlers/databases.js +127 -124
  79. package/lib/tools/auth0/handlers/default.js +186 -189
  80. package/lib/tools/auth0/handlers/emailProvider.js +67 -78
  81. package/lib/tools/auth0/handlers/emailTemplates.js +116 -92
  82. package/lib/tools/auth0/handlers/guardianFactorProviders.js +66 -81
  83. package/lib/tools/auth0/handlers/guardianFactorTemplates.js +60 -71
  84. package/lib/tools/auth0/handlers/guardianFactors.js +56 -63
  85. package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +80 -79
  86. package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +77 -76
  87. package/lib/tools/auth0/handlers/guardianPolicies.js +59 -62
  88. package/lib/tools/auth0/handlers/hooks.js +201 -227
  89. package/lib/tools/auth0/handlers/index.js +53 -111
  90. package/lib/tools/auth0/handlers/migrations.js +99 -79
  91. package/lib/tools/auth0/handlers/organizations.js +225 -247
  92. package/lib/tools/auth0/handlers/pages.js +116 -154
  93. package/lib/tools/auth0/handlers/prompts.js +47 -46
  94. package/lib/tools/auth0/handlers/resourceServers.js +88 -112
  95. package/lib/tools/auth0/handlers/roles.js +203 -220
  96. package/lib/tools/auth0/handlers/rules.js +168 -189
  97. package/lib/tools/auth0/handlers/rulesConfigs.js +54 -63
  98. package/lib/tools/auth0/handlers/tenant.js +88 -64
  99. package/lib/tools/auth0/handlers/triggers.js +126 -126
  100. package/lib/tools/auth0/index.js +92 -85
  101. package/lib/tools/auth0/schema.js +39 -31
  102. package/lib/tools/constants.js +111 -21
  103. package/lib/tools/deploy.js +35 -32
  104. package/lib/tools/index.js +19 -32
  105. package/lib/tools/logger.js +11 -12
  106. package/lib/tools/utils.js +255 -282
  107. package/lib/utils.js +167 -190
  108. package/package.json +4 -3
  109. package/tsconfig.json +96 -0
  110. package/typescript-migration-progress.sh +22 -0
  111. package/.nyc_output/597f412e-a239-4319-ad5b-ddb87fc39e67.json +0 -1
  112. package/.nyc_output/processinfo/597f412e-a239-4319-ad5b-ddb87fc39e67.json +0 -1
@@ -1,232 +1,215 @@
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 _default = require("./default");
11
-
12
- var _default2 = _interopRequireDefault(_default);
13
-
14
- var _utils = require("../../utils");
15
-
16
- var _logger = require("../../logger");
17
-
18
- var _logger2 = _interopRequireDefault(_logger);
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- 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; }
23
-
24
- const schema = exports.schema = {
25
- type: 'array',
26
- items: {
27
- type: 'object',
28
- properties: {
29
- name: {
30
- type: 'string'
31
- },
32
- id: {
33
- type: 'string'
34
- },
35
- description: {
36
- type: 'string'
37
- },
38
- permissions: {
39
- type: 'array',
40
- items: {
41
- type: 'object',
42
- properties: {
43
- permission_name: {
44
- type: 'string'
45
- },
46
- resource_server_identifier: {
47
- type: 'string'
48
- }
49
- }
50
- }
51
- }
52
- },
53
- required: ['name']
54
- }
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;
55
23
  };
56
- let RoleHandler = (_dec = (0, _default.order)('60'), (_class = class RoleHandler extends _default2.default {
57
- constructor(config) {
58
- super({ ...config,
59
- type: 'roles',
60
- id: 'id',
61
- identifiers: ['name']
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());
62
38
  });
63
- }
64
-
65
- async createRole(data) {
66
- const role = { ...data
67
- };
68
- delete role.permissions;
69
- const created = await this.client.roles.create(role);
70
-
71
- if (typeof data.permissions !== 'undefined' && data.permissions.length > 0) {
72
- await this.client.roles.permissions.create({
73
- id: created.id
74
- }, {
75
- permissions: data.permissions
76
- });
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 default_1 = __importStar(require("./default"));
46
+ const utils_1 = require("../../utils");
47
+ const logger_1 = __importDefault(require("../../logger"));
48
+ exports.schema = {
49
+ type: 'array',
50
+ items: {
51
+ type: 'object',
52
+ properties: {
53
+ name: { type: 'string' },
54
+ id: { type: 'string' },
55
+ description: { type: 'string' },
56
+ permissions: {
57
+ type: 'array',
58
+ items: {
59
+ type: 'object',
60
+ properties: {
61
+ permission_name: { type: 'string' },
62
+ resource_server_identifier: { type: 'string' }
63
+ }
64
+ }
65
+ }
66
+ },
67
+ required: ['name']
77
68
  }
78
-
79
- return created;
80
- }
81
-
82
- async createRoles(creates) {
83
- await this.client.pool.addEachTask({
84
- data: creates || [],
85
- generator: item => this.createRole(item).then(data => {
86
- this.didCreate(data);
87
- this.created += 1;
88
- }).catch(err => {
89
- throw new Error(`Problem creating ${this.type} ${this.objString(item)}\n${err}`);
90
- })
91
- }).promise();
92
- }
93
-
94
- async deleteRole(data) {
95
- await this.client.roles.delete({
96
- id: data.id
97
- });
98
- }
99
-
100
- async deleteRoles(dels) {
101
- if (this.config('AUTH0_ALLOW_DELETE') === 'true' || this.config('AUTH0_ALLOW_DELETE') === true) {
102
- await this.client.pool.addEachTask({
103
- data: dels || [],
104
- generator: item => this.deleteRole(item).then(() => {
105
- this.didDelete(item);
106
- this.deleted += 1;
107
- }).catch(err => {
108
- throw new Error(`Problem deleting ${this.type} ${this.objString(item)}\n${err}`);
109
- })
110
- }).promise();
111
- } else {
112
- _logger2.default.warn(`Detected the following roles should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config
113
- \n${dels.map(i => this.objString(i)).join('\n')}`);
69
+ };
70
+ class RoleHandler extends default_1.default {
71
+ constructor(config) {
72
+ super(Object.assign(Object.assign({}, config), { type: 'roles', id: 'id', identifiers: ['name'] }));
114
73
  }
115
- }
116
-
117
- async updateRole(data, roles) {
118
- const existingRole = await roles.find(roleDataForUpdate => roleDataForUpdate.name === data.name);
119
- const params = {
120
- id: data.id
121
- };
122
- const newPermissions = data.permissions;
123
- delete data.permissions;
124
- delete data.id;
125
- await this.client.roles.update(params, data);
126
-
127
- if (typeof existingRole.permissions !== 'undefined' && existingRole.permissions.length > 0) {
128
- await this.client.roles.permissions.delete(params, {
129
- permissions: existingRole.permissions
130
- });
74
+ createRole(data) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const role = Object.assign({}, data);
77
+ delete role.permissions;
78
+ const created = yield this.client.roles.create(role);
79
+ if (typeof data.permissions !== 'undefined' && data.permissions.length > 0) {
80
+ yield this.client.roles.permissions.create({ id: created.id }, { permissions: data.permissions });
81
+ }
82
+ return created;
83
+ });
131
84
  }
132
-
133
- if (typeof newPermissions !== 'undefined' && newPermissions.length > 0) {
134
- await this.client.roles.permissions.create(params, {
135
- permissions: newPermissions
136
- });
85
+ createRoles(creates) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ yield this.client.pool.addEachTask({
88
+ data: creates || [],
89
+ generator: (item) => this.createRole(item).then((data) => {
90
+ this.didCreate(data);
91
+ this.created += 1;
92
+ }).catch((err) => {
93
+ throw new Error(`Problem creating ${this.type} ${this.objString(item)}\n${err}`);
94
+ })
95
+ }).promise();
96
+ });
137
97
  }
138
-
139
- return params;
140
- }
141
-
142
- async updateRoles(updates, roles) {
143
- await this.client.pool.addEachTask({
144
- data: updates || [],
145
- generator: item => this.updateRole(item, roles).then(data => {
146
- this.didUpdate(data);
147
- this.updated += 1;
148
- }).catch(err => {
149
- throw new Error(`Problem updating ${this.type} ${this.objString(item)}\n${err}`);
150
- })
151
- }).promise();
152
- }
153
-
154
- async getType() {
155
- if (this.existing) {
156
- return this.existing;
98
+ deleteRole(data) {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ yield this.client.roles.delete({ id: data.id });
101
+ });
157
102
  }
158
-
159
- if (!this.client.roles || typeof this.client.roles.getAll !== 'function') {
160
- return [];
103
+ deleteRoles(dels) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ if (this.config('AUTH0_ALLOW_DELETE') === 'true' || this.config('AUTH0_ALLOW_DELETE') === true) {
106
+ yield this.client.pool.addEachTask({
107
+ data: dels || [],
108
+ generator: (item) => this.deleteRole(item).then(() => {
109
+ this.didDelete(item);
110
+ this.deleted += 1;
111
+ }).catch((err) => {
112
+ throw new Error(`Problem deleting ${this.type} ${this.objString(item)}\n${err}`);
113
+ })
114
+ }).promise();
115
+ }
116
+ else {
117
+ logger_1.default.warn(`Detected the following roles should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config
118
+ \n${dels.map((i) => this.objString(i)).join('\n')}`);
119
+ }
120
+ });
121
+ }
122
+ updateRole(data, roles) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const existingRole = yield roles.find((roleDataForUpdate) => roleDataForUpdate.name === data.name);
125
+ const params = { id: data.id };
126
+ const newPermissions = data.permissions;
127
+ delete data.permissions;
128
+ delete data.id;
129
+ yield this.client.roles.update(params, data);
130
+ if (typeof existingRole.permissions !== 'undefined' && existingRole.permissions.length > 0) {
131
+ yield this.client.roles.permissions.delete(params, { permissions: existingRole.permissions });
132
+ }
133
+ if (typeof newPermissions !== 'undefined' && newPermissions.length > 0) {
134
+ yield this.client.roles.permissions.create(params, { permissions: newPermissions });
135
+ }
136
+ return params;
137
+ });
138
+ }
139
+ updateRoles(updates, roles) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ yield this.client.pool.addEachTask({
142
+ data: updates || [],
143
+ generator: (item) => this.updateRole(item, roles).then((data) => {
144
+ this.didUpdate(data);
145
+ this.updated += 1;
146
+ }).catch((err) => {
147
+ throw new Error(`Problem updating ${this.type} ${this.objString(item)}\n${err}`);
148
+ })
149
+ }).promise();
150
+ });
151
+ }
152
+ getType() {
153
+ return __awaiter(this, void 0, void 0, function* () {
154
+ if (this.existing) {
155
+ return this.existing;
156
+ }
157
+ // in case client version does not support roles
158
+ if (!this.client.roles || typeof this.client.roles.getAll !== 'function') {
159
+ return [];
160
+ }
161
+ try {
162
+ const roles = yield this.client.roles.getAll({ paginate: true, include_totals: true });
163
+ for (let index = 0; index < roles.length; index++) {
164
+ const permissions = yield this.client.roles.permissions.getAll({ paginate: true, include_totals: true, id: roles[index].id });
165
+ const strippedPerms = yield Promise.all(permissions.map((permission) => __awaiter(this, void 0, void 0, function* () {
166
+ delete permission.resource_server_name;
167
+ delete permission.description;
168
+ return permission;
169
+ })));
170
+ roles[index].permissions = strippedPerms;
171
+ }
172
+ this.existing = roles;
173
+ return this.existing;
174
+ }
175
+ catch (err) {
176
+ if (err.statusCode === 404 || err.statusCode === 501) {
177
+ return [];
178
+ }
179
+ throw err;
180
+ }
181
+ });
161
182
  }
162
-
163
- try {
164
- const roles = await this.client.roles.getAll({
165
- paginate: true,
166
- include_totals: true
167
- });
168
-
169
- for (let index = 0; index < roles.length; index++) {
170
- const permissions = await this.client.roles.permissions.getAll({
171
- paginate: true,
172
- include_totals: true,
173
- id: roles[index].id
183
+ processChanges(assets) {
184
+ return __awaiter(this, void 0, void 0, function* () {
185
+ const { roles } = assets;
186
+ // Do nothing if not set
187
+ if (!roles)
188
+ return;
189
+ // Gets roles from destination tenant
190
+ const existing = yield this.getType();
191
+ const changes = (0, utils_1.calcChanges)(this, roles, existing, ['id', 'name']);
192
+ logger_1.default.debug(`Start processChanges for roles [delete:${changes.del.length}] [update:${changes.update.length}], [create:${changes.create.length}]`);
193
+ const myChanges = [{ del: changes.del }, { create: changes.create }, { update: changes.update }];
194
+ yield Promise.all(myChanges.map((change) => __awaiter(this, void 0, void 0, function* () {
195
+ switch (true) {
196
+ case change.del && change.del.length > 0:
197
+ yield this.deleteRoles(change.del);
198
+ break;
199
+ case change.create && change.create.length > 0:
200
+ yield this.createRoles(changes.create);
201
+ break;
202
+ case change.update && change.update.length > 0:
203
+ yield this.updateRoles(change.update, existing);
204
+ break;
205
+ default:
206
+ break;
207
+ }
208
+ })));
174
209
  });
175
- const strippedPerms = await Promise.all(permissions.map(async permission => {
176
- delete permission.resource_server_name;
177
- delete permission.description;
178
- return permission;
179
- }));
180
- roles[index].permissions = strippedPerms;
181
- }
182
-
183
- this.existing = roles;
184
- return this.existing;
185
- } catch (err) {
186
- if (err.statusCode === 404 || err.statusCode === 501) {
187
- return [];
188
- }
189
-
190
- throw err;
191
210
  }
192
- }
193
-
194
- async processChanges(assets) {
195
- const {
196
- roles
197
- } = assets;
198
- if (!roles) return;
199
- const existing = await this.getType();
200
- const changes = (0, _utils.calcChanges)(this, roles, existing, ['id', 'name']);
201
-
202
- _logger2.default.debug(`Start processChanges for roles [delete:${changes.del.length}] [update:${changes.update.length}], [create:${changes.create.length}]`);
203
-
204
- const myChanges = [{
205
- del: changes.del
206
- }, {
207
- create: changes.create
208
- }, {
209
- update: changes.update
210
- }];
211
- await Promise.all(myChanges.map(async change => {
212
- switch (true) {
213
- case change.del && change.del.length > 0:
214
- await this.deleteRoles(change.del);
215
- break;
216
-
217
- case change.create && change.create.length > 0:
218
- await this.createRoles(changes.create);
219
- break;
220
-
221
- case change.update && change.update.length > 0:
222
- await this.updateRoles(change.update, existing);
223
- break;
224
-
225
- default:
226
- break;
227
- }
228
- }));
229
- }
230
-
231
- }, (_applyDecoratedDescriptor(_class.prototype, "processChanges", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "processChanges"), _class.prototype)), _class));
232
- exports.default = RoleHandler;
211
+ }
212
+ __decorate([
213
+ (0, default_1.order)('60')
214
+ ], RoleHandler.prototype, "processChanges", null);
215
+ exports.default = RoleHandler;