auth0-deploy-cli 7.3.6 → 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 (113) hide show
  1. package/.circleci/config.yml +15 -0
  2. package/.github/CODEOWNERS +1 -0
  3. package/.husky/pre-commit +6 -0
  4. package/.husky/pre-push +4 -0
  5. package/.nyc_output/60b76a45-577b-4171-9982-a8e836ab7fd6.json +1 -0
  6. package/.nyc_output/processinfo/60b76a45-577b-4171-9982-a8e836ab7fd6.json +1 -0
  7. package/.nyc_output/processinfo/index.json +1 -1
  8. package/CHANGELOG.md +35 -2
  9. package/lib/args.js +89 -81
  10. package/lib/commands/export.js +51 -77
  11. package/lib/commands/import.js +45 -69
  12. package/lib/commands/index.js +11 -20
  13. package/lib/configFactory.js +19 -27
  14. package/lib/context/defaults.js +18 -41
  15. package/lib/context/directory/handlers/actions.js +77 -107
  16. package/lib/context/directory/handlers/attackProtection.js +59 -0
  17. package/lib/context/directory/handlers/clientGrants.js +45 -54
  18. package/lib/context/directory/handlers/clients.js +60 -79
  19. package/lib/context/directory/handlers/connections.js +65 -89
  20. package/lib/context/directory/handlers/databases.js +91 -123
  21. package/lib/context/directory/handlers/emailProvider.js +46 -57
  22. package/lib/context/directory/handlers/emailTemplates.js +67 -80
  23. package/lib/context/directory/handlers/guardianFactorProviders.js +41 -49
  24. package/lib/context/directory/handlers/guardianFactorTemplates.js +41 -49
  25. package/lib/context/directory/handlers/guardianFactors.js +41 -49
  26. package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js +40 -50
  27. package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js +40 -50
  28. package/lib/context/directory/handlers/guardianPolicies.js +40 -50
  29. package/lib/context/directory/handlers/hooks.js +55 -70
  30. package/lib/context/directory/handlers/index.js +53 -123
  31. package/lib/context/directory/handlers/migrations.js +36 -41
  32. package/lib/context/directory/handlers/organizations.js +54 -69
  33. package/lib/context/directory/handlers/pages.js +72 -86
  34. package/lib/context/directory/handlers/resourceServers.js +41 -49
  35. package/lib/context/directory/handlers/roles.js +49 -62
  36. package/lib/context/directory/handlers/rules.js +52 -68
  37. package/lib/context/directory/handlers/rulesConfigs.js +33 -32
  38. package/lib/context/directory/handlers/tenant.js +52 -47
  39. package/lib/context/directory/handlers/triggers.js +39 -54
  40. package/lib/context/directory/index.js +113 -101
  41. package/lib/context/index.js +96 -105
  42. package/lib/context/yaml/handlers/actions.js +71 -88
  43. package/lib/context/yaml/handlers/attackProtection.js +29 -0
  44. package/lib/context/yaml/handlers/clientGrants.js +36 -29
  45. package/lib/context/yaml/handlers/clients.js +61 -76
  46. package/lib/context/yaml/handlers/connections.js +76 -103
  47. package/lib/context/yaml/handlers/databases.js +64 -79
  48. package/lib/context/yaml/handlers/emailProvider.js +33 -30
  49. package/lib/context/yaml/handlers/emailTemplates.js +45 -54
  50. package/lib/context/yaml/handlers/guardianFactorProviders.js +27 -18
  51. package/lib/context/yaml/handlers/guardianFactorTemplates.js +27 -18
  52. package/lib/context/yaml/handlers/guardianFactors.js +27 -18
  53. package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js +27 -20
  54. package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js +27 -20
  55. package/lib/context/yaml/handlers/guardianPolicies.js +27 -20
  56. package/lib/context/yaml/handlers/hooks.js +57 -67
  57. package/lib/context/yaml/handlers/index.js +53 -123
  58. package/lib/context/yaml/handlers/migrations.js +23 -24
  59. package/lib/context/yaml/handlers/organizations.js +40 -38
  60. package/lib/context/yaml/handlers/pages.js +49 -58
  61. package/lib/context/yaml/handlers/resourceServers.js +27 -18
  62. package/lib/context/yaml/handlers/roles.js +34 -24
  63. package/lib/context/yaml/handlers/rules.js +48 -58
  64. package/lib/context/yaml/handlers/rulesConfigs.js +27 -18
  65. package/lib/context/yaml/handlers/tenant.js +44 -30
  66. package/lib/context/yaml/handlers/triggers.js +32 -23
  67. package/lib/context/yaml/index.js +127 -142
  68. package/lib/index.js +73 -79
  69. package/lib/logger.js +18 -22
  70. package/lib/readonly.js +74 -66
  71. package/lib/tools/ValidationError.js +8 -13
  72. package/lib/tools/auth0/client.js +143 -133
  73. package/lib/tools/auth0/handlers/actions.js +231 -241
  74. package/lib/tools/auth0/handlers/attackProtection.js +86 -0
  75. package/lib/tools/auth0/handlers/branding.js +47 -46
  76. package/lib/tools/auth0/handlers/clientGrants.js +118 -116
  77. package/lib/tools/auth0/handlers/clients.js +72 -90
  78. package/lib/tools/auth0/handlers/connections.js +150 -118
  79. package/lib/tools/auth0/handlers/databases.js +127 -124
  80. package/lib/tools/auth0/handlers/default.js +186 -189
  81. package/lib/tools/auth0/handlers/emailProvider.js +67 -78
  82. package/lib/tools/auth0/handlers/emailTemplates.js +116 -92
  83. package/lib/tools/auth0/handlers/guardianFactorProviders.js +66 -81
  84. package/lib/tools/auth0/handlers/guardianFactorTemplates.js +60 -71
  85. package/lib/tools/auth0/handlers/guardianFactors.js +56 -63
  86. package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +80 -79
  87. package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +77 -76
  88. package/lib/tools/auth0/handlers/guardianPolicies.js +59 -62
  89. package/lib/tools/auth0/handlers/hooks.js +201 -227
  90. package/lib/tools/auth0/handlers/index.js +53 -111
  91. package/lib/tools/auth0/handlers/migrations.js +99 -79
  92. package/lib/tools/auth0/handlers/organizations.js +225 -247
  93. package/lib/tools/auth0/handlers/pages.js +116 -154
  94. package/lib/tools/auth0/handlers/prompts.js +47 -46
  95. package/lib/tools/auth0/handlers/resourceServers.js +88 -112
  96. package/lib/tools/auth0/handlers/roles.js +203 -220
  97. package/lib/tools/auth0/handlers/rules.js +168 -189
  98. package/lib/tools/auth0/handlers/rulesConfigs.js +54 -63
  99. package/lib/tools/auth0/handlers/tenant.js +88 -64
  100. package/lib/tools/auth0/handlers/triggers.js +126 -126
  101. package/lib/tools/auth0/index.js +92 -85
  102. package/lib/tools/auth0/schema.js +39 -31
  103. package/lib/tools/constants.js +111 -21
  104. package/lib/tools/deploy.js +35 -32
  105. package/lib/tools/index.js +19 -32
  106. package/lib/tools/logger.js +11 -12
  107. package/lib/tools/utils.js +258 -254
  108. package/lib/utils.js +167 -190
  109. package/package.json +6 -3
  110. package/tsconfig.json +96 -0
  111. package/typescript-migration-progress.sh +22 -0
  112. package/.nyc_output/8cf4dd0c-1f3a-4ac1-899c-8e453a64221e.json +0 -1
  113. package/.nyc_output/processinfo/8cf4dd0c-1f3a-4ac1-899c-8e453a64221e.json +0 -1
@@ -1,77 +1,62 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _fsExtra = require("fs-extra");
8
-
9
- var _fsExtra2 = _interopRequireDefault(_fsExtra);
10
-
11
- var _path = require("path");
12
-
13
- var _path2 = _interopRequireDefault(_path);
14
-
15
- var _tools = require("../../../tools");
16
-
17
- var _utils = require("../../../utils");
18
-
19
- var _logger = require("../../../logger");
20
-
21
- var _logger2 = _interopRequireDefault(_logger);
22
-
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
-
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const fs_extra_1 = __importDefault(require("fs-extra"));
16
+ const path_1 = __importDefault(require("path"));
17
+ const tools_1 = require("../../../tools");
18
+ const utils_1 = require("../../../utils");
19
+ const logger_1 = __importDefault(require("../../../logger"));
25
20
  function parse(context) {
26
- const hooksFolder = _path2.default.join(context.filePath, _tools.constants.HOOKS_DIRECTORY);
27
-
28
- if (!(0, _utils.existsMustBeDir)(hooksFolder)) return {
29
- hooks: undefined
30
- };
31
- const files = (0, _utils.getFiles)(hooksFolder, ['.json']);
32
- const hooks = files.map(f => {
33
- const hook = { ...(0, _utils.loadJSON)(f, context.mappings)
21
+ const hooksFolder = path_1.default.join(context.filePath, tools_1.constants.HOOKS_DIRECTORY);
22
+ if (!(0, utils_1.existsMustBeDir)(hooksFolder))
23
+ return { hooks: undefined }; // Skip
24
+ const files = (0, utils_1.getFiles)(hooksFolder, ['.json']);
25
+ const hooks = files.map((f) => {
26
+ const hook = Object.assign({}, (0, utils_1.loadJSON)(f, context.mappings));
27
+ if (hook.script) {
28
+ hook.script = context.loadFile(hook.script, tools_1.constants.HOOKS_DIRECTORY);
29
+ }
30
+ hook.name = hook.name.toLowerCase().replace(/\s/g, '-');
31
+ return hook;
32
+ });
33
+ return {
34
+ hooks
34
35
  };
35
-
36
- if (hook.script) {
37
- hook.script = context.loadFile(hook.script, _tools.constants.HOOKS_DIRECTORY);
38
- }
39
-
40
- hook.name = hook.name.toLowerCase().replace(/\s/g, '-');
41
- return hook;
42
- });
43
- return {
44
- hooks
45
- };
46
36
  }
47
-
48
- async function dump(context) {
49
- const hooks = [...(context.assets.hooks || [])];
50
- if (hooks.length < 1) return;
51
-
52
- const hooksFolder = _path2.default.join(context.filePath, _tools.constants.HOOKS_DIRECTORY);
53
-
54
- _fsExtra2.default.ensureDirSync(hooksFolder);
55
-
56
- hooks.forEach(hook => {
57
- hook.name = hook.name || hook.id;
58
- const name = (0, _utils.sanitize)(hook.name);
59
-
60
- const hookCode = _path2.default.join(hooksFolder, `${name}.js`);
61
-
62
- _logger2.default.info(`Writing ${hookCode}`);
63
-
64
- _fsExtra2.default.writeFileSync(hookCode, hook.script);
65
-
66
- const hookFile = _path2.default.join(hooksFolder, `${name}.json`);
67
-
68
- (0, _utils.dumpJSON)(hookFile, { ...hook,
69
- script: `./${name}.js`
37
+ function dump(context) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const hooks = [...context.assets.hooks || []];
40
+ if (hooks.length < 1)
41
+ return;
42
+ // Create Hooks folder
43
+ const hooksFolder = path_1.default.join(context.filePath, tools_1.constants.HOOKS_DIRECTORY);
44
+ fs_extra_1.default.ensureDirSync(hooksFolder);
45
+ hooks.forEach((hook) => {
46
+ // Dump script to file
47
+ // For cases when hook does not have `meta['hook-name']`
48
+ hook.name = hook.name || hook.id;
49
+ const name = (0, utils_1.sanitize)(hook.name);
50
+ const hookCode = path_1.default.join(hooksFolder, `${name}.js`);
51
+ logger_1.default.info(`Writing ${hookCode}`);
52
+ fs_extra_1.default.writeFileSync(hookCode, hook.script);
53
+ // Dump template metadata
54
+ const hookFile = path_1.default.join(hooksFolder, `${name}.json`);
55
+ (0, utils_1.dumpJSON)(hookFile, Object.assign(Object.assign({}, hook), { script: `./${name}.js` }));
56
+ });
70
57
  });
71
- });
72
58
  }
73
-
74
59
  exports.default = {
75
- parse,
76
- dump
77
- };
60
+ parse,
61
+ dump
62
+ };
@@ -1,125 +1,55 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _pages = require("./pages");
8
-
9
- var _pages2 = _interopRequireDefault(_pages);
10
-
11
- var _rules = require("./rules");
12
-
13
- var _rules2 = _interopRequireDefault(_rules);
14
-
15
- var _hooks = require("./hooks");
16
-
17
- var _hooks2 = _interopRequireDefault(_hooks);
18
-
19
- var _clients = require("./clients");
20
-
21
- var _clients2 = _interopRequireDefault(_clients);
22
-
23
- var _tenant = require("./tenant");
24
-
25
- var _tenant2 = _interopRequireDefault(_tenant);
26
-
27
- var _emailProvider = require("./emailProvider");
28
-
29
- var _emailProvider2 = _interopRequireDefault(_emailProvider);
30
-
31
- var _connections = require("./connections");
32
-
33
- var _connections2 = _interopRequireDefault(_connections);
34
-
35
- var _databases = require("./databases");
36
-
37
- var _databases2 = _interopRequireDefault(_databases);
38
-
39
- var _emailTemplates = require("./emailTemplates");
40
-
41
- var _emailTemplates2 = _interopRequireDefault(_emailTemplates);
42
-
43
- var _clientGrants = require("./clientGrants");
44
-
45
- var _clientGrants2 = _interopRequireDefault(_clientGrants);
46
-
47
- var _rulesConfigs = require("./rulesConfigs");
48
-
49
- var _rulesConfigs2 = _interopRequireDefault(_rulesConfigs);
50
-
51
- var _resourceServers = require("./resourceServers");
52
-
53
- var _resourceServers2 = _interopRequireDefault(_resourceServers);
54
-
55
- var _guardianFactors = require("./guardianFactors");
56
-
57
- var _guardianFactors2 = _interopRequireDefault(_guardianFactors);
58
-
59
- var _guardianFactorProviders = require("./guardianFactorProviders");
60
-
61
- var _guardianFactorProviders2 = _interopRequireDefault(_guardianFactorProviders);
62
-
63
- var _guardianFactorTemplates = require("./guardianFactorTemplates");
64
-
65
- var _guardianFactorTemplates2 = _interopRequireDefault(_guardianFactorTemplates);
66
-
67
- var _guardianPhoneFactorMessageTypes = require("./guardianPhoneFactorMessageTypes");
68
-
69
- var _guardianPhoneFactorMessageTypes2 = _interopRequireDefault(_guardianPhoneFactorMessageTypes);
70
-
71
- var _guardianPhoneFactorSelectedProvider = require("./guardianPhoneFactorSelectedProvider");
72
-
73
- var _guardianPhoneFactorSelectedProvider2 = _interopRequireDefault(_guardianPhoneFactorSelectedProvider);
74
-
75
- var _guardianPolicies = require("./guardianPolicies");
76
-
77
- var _guardianPolicies2 = _interopRequireDefault(_guardianPolicies);
78
-
79
- var _roles = require("./roles");
80
-
81
- var _roles2 = _interopRequireDefault(_roles);
82
-
83
- var _migrations = require("./migrations");
84
-
85
- var _migrations2 = _interopRequireDefault(_migrations);
86
-
87
- var _actions = require("./actions");
88
-
89
- var _actions2 = _interopRequireDefault(_actions);
90
-
91
- var _organizations = require("./organizations");
92
-
93
- var _organizations2 = _interopRequireDefault(_organizations);
94
-
95
- var _triggers = require("./triggers");
96
-
97
- var _triggers2 = _interopRequireDefault(_triggers);
98
-
99
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
100
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const pages_1 = __importDefault(require("./pages"));
7
+ const rules_1 = __importDefault(require("./rules"));
8
+ const hooks_1 = __importDefault(require("./hooks"));
9
+ const clients_1 = __importDefault(require("./clients"));
10
+ const tenant_1 = __importDefault(require("./tenant"));
11
+ const emailProvider_1 = __importDefault(require("./emailProvider"));
12
+ const connections_1 = __importDefault(require("./connections"));
13
+ const databases_1 = __importDefault(require("./databases"));
14
+ const emailTemplates_1 = __importDefault(require("./emailTemplates"));
15
+ const clientGrants_1 = __importDefault(require("./clientGrants"));
16
+ const rulesConfigs_1 = __importDefault(require("./rulesConfigs"));
17
+ const resourceServers_1 = __importDefault(require("./resourceServers"));
18
+ const guardianFactors_1 = __importDefault(require("./guardianFactors"));
19
+ const guardianFactorProviders_1 = __importDefault(require("./guardianFactorProviders"));
20
+ const guardianFactorTemplates_1 = __importDefault(require("./guardianFactorTemplates"));
21
+ const guardianPhoneFactorMessageTypes_1 = __importDefault(require("./guardianPhoneFactorMessageTypes"));
22
+ const guardianPhoneFactorSelectedProvider_1 = __importDefault(require("./guardianPhoneFactorSelectedProvider"));
23
+ const guardianPolicies_1 = __importDefault(require("./guardianPolicies"));
24
+ const roles_1 = __importDefault(require("./roles"));
25
+ const migrations_1 = __importDefault(require("./migrations"));
26
+ const actions_1 = __importDefault(require("./actions"));
27
+ const organizations_1 = __importDefault(require("./organizations"));
28
+ const triggers_1 = __importDefault(require("./triggers"));
29
+ const attackProtection_1 = __importDefault(require("./attackProtection"));
101
30
  exports.default = {
102
- rules: _rules2.default,
103
- rulesConfigs: _rulesConfigs2.default,
104
- hooks: _hooks2.default,
105
- pages: _pages2.default,
106
- databases: _databases2.default,
107
- clientGrants: _clientGrants2.default,
108
- resourceServers: _resourceServers2.default,
109
- clients: _clients2.default,
110
- connections: _connections2.default,
111
- tenant: _tenant2.default,
112
- emailProvider: _emailProvider2.default,
113
- emailTemplates: _emailTemplates2.default,
114
- guardianFactors: _guardianFactors2.default,
115
- guardianFactorProviders: _guardianFactorProviders2.default,
116
- guardianFactorTemplates: _guardianFactorTemplates2.default,
117
- migrations: _migrations2.default,
118
- guardianPhoneFactorMessageTypes: _guardianPhoneFactorMessageTypes2.default,
119
- guardianPhoneFactorSelectedProvider: _guardianPhoneFactorSelectedProvider2.default,
120
- guardianPolicies: _guardianPolicies2.default,
121
- roles: _roles2.default,
122
- actions: _actions2.default,
123
- organizations: _organizations2.default,
124
- triggers: _triggers2.default
125
- };
31
+ rules: rules_1.default,
32
+ rulesConfigs: rulesConfigs_1.default,
33
+ hooks: hooks_1.default,
34
+ pages: pages_1.default,
35
+ databases: databases_1.default,
36
+ clientGrants: clientGrants_1.default,
37
+ resourceServers: resourceServers_1.default,
38
+ clients: clients_1.default,
39
+ connections: connections_1.default,
40
+ tenant: tenant_1.default,
41
+ emailProvider: emailProvider_1.default,
42
+ emailTemplates: emailTemplates_1.default,
43
+ guardianFactors: guardianFactors_1.default,
44
+ guardianFactorProviders: guardianFactorProviders_1.default,
45
+ guardianFactorTemplates: guardianFactorTemplates_1.default,
46
+ migrations: migrations_1.default,
47
+ guardianPhoneFactorMessageTypes: guardianPhoneFactorMessageTypes_1.default,
48
+ guardianPhoneFactorSelectedProvider: guardianPhoneFactorSelectedProvider_1.default,
49
+ guardianPolicies: guardianPolicies_1.default,
50
+ roles: roles_1.default,
51
+ actions: actions_1.default,
52
+ organizations: organizations_1.default,
53
+ triggers: triggers_1.default,
54
+ attackProtection: attackProtection_1.default
55
+ };
@@ -1,46 +1,41 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _path = require("path");
8
-
9
- var _path2 = _interopRequireDefault(_path);
10
-
11
- var _utils = require("../../../utils");
12
-
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
-
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const path_1 = __importDefault(require("path"));
16
+ const utils_1 = require("../../../utils");
15
17
  function parse(context) {
16
- const baseFolder = _path2.default.join(context.filePath);
17
-
18
- if (!(0, _utils.existsMustBeDir)(baseFolder)) return {};
19
-
20
- const migrationsFile = _path2.default.join(baseFolder, 'migrations.json');
21
-
22
- if ((0, _utils.isFile)(migrationsFile)) {
23
- const migrations = (0, _utils.loadJSON)(migrationsFile, context.mappings);
24
- return {
25
- migrations
26
- };
27
- }
28
-
29
- return {};
18
+ const baseFolder = path_1.default.join(context.filePath);
19
+ if (!(0, utils_1.existsMustBeDir)(baseFolder))
20
+ return {}; // Skip
21
+ const migrationsFile = path_1.default.join(baseFolder, 'migrations.json');
22
+ if ((0, utils_1.isFile)(migrationsFile)) {
23
+ /* eslint-disable camelcase */
24
+ const migrations = (0, utils_1.loadJSON)(migrationsFile, context.mappings);
25
+ return { migrations };
26
+ }
27
+ return {};
30
28
  }
31
-
32
- async function dump(context) {
33
- const {
34
- migrations
35
- } = context.assets;
36
- if (!migrations || Object.keys(migrations).length === 0) return;
37
-
38
- const migrationsFile = _path2.default.join(context.filePath, 'migrations.json');
39
-
40
- (0, _utils.dumpJSON)(migrationsFile, migrations);
29
+ function dump(context) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const { migrations } = context.assets;
32
+ if (!migrations || Object.keys(migrations).length === 0)
33
+ return; // Skip, nothing to dump
34
+ const migrationsFile = path_1.default.join(context.filePath, 'migrations.json');
35
+ (0, utils_1.dumpJSON)(migrationsFile, migrations);
36
+ });
41
37
  }
42
-
43
38
  exports.default = {
44
- parse,
45
- dump
46
- };
39
+ parse,
40
+ dump
41
+ };
@@ -1,75 +1,60 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _fsExtra = require("fs-extra");
8
-
9
- var _fsExtra2 = _interopRequireDefault(_fsExtra);
10
-
11
- var _path = require("path");
12
-
13
- var _path2 = _interopRequireDefault(_path);
14
-
15
- var _logger = require("../../../logger");
16
-
17
- var _logger2 = _interopRequireDefault(_logger);
18
-
19
- var _utils = require("../../../utils");
20
-
21
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
-
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const fs_extra_1 = __importDefault(require("fs-extra"));
16
+ const path_1 = __importDefault(require("path"));
17
+ const logger_1 = __importDefault(require("../../../logger"));
18
+ const utils_1 = require("../../../utils");
23
19
  function parse(context) {
24
- const organizationsFolder = _path2.default.join(context.filePath, 'organizations');
25
-
26
- if (!(0, _utils.existsMustBeDir)(organizationsFolder)) return {
27
- organizations: undefined
28
- };
29
- const files = (0, _utils.getFiles)(organizationsFolder, ['.json']);
30
- const organizations = files.map(f => {
31
- const org = { ...(0, _utils.loadJSON)(f, context.mappings)
20
+ const organizationsFolder = path_1.default.join(context.filePath, 'organizations');
21
+ if (!(0, utils_1.existsMustBeDir)(organizationsFolder))
22
+ return { organizations: undefined }; // Skip
23
+ const files = (0, utils_1.getFiles)(organizationsFolder, ['.json']);
24
+ const organizations = files.map((f) => {
25
+ const org = Object.assign({}, (0, utils_1.loadJSON)(f, context.mappings));
26
+ return org;
27
+ });
28
+ return {
29
+ organizations
32
30
  };
33
- return org;
34
- });
35
- return {
36
- organizations
37
- };
38
31
  }
39
-
40
- async function dump(context) {
41
- const {
42
- organizations
43
- } = context.assets;
44
- if (!organizations || organizations.constructor === Object) return;
45
-
46
- const organizationsFolder = _path2.default.join(context.filePath, 'organizations');
47
-
48
- _fsExtra2.default.ensureDirSync(organizationsFolder);
49
-
50
- organizations.forEach(organization => {
51
- const organizationFile = _path2.default.join(organizationsFolder, (0, _utils.sanitize)(`${organization.name}.json`));
52
-
53
- _logger2.default.info(`Writing ${organizationFile}`);
54
-
55
- if (organization.connections.length > 0) {
56
- organization.connections = organization.connections.map(c => {
57
- const name = c.connection && c.connection.name;
58
- const conn = {
59
- name,
60
- ...c
61
- };
62
- delete conn.connection_id;
63
- delete conn.connection;
64
- return conn;
65
- });
66
- }
67
-
68
- (0, _utils.dumpJSON)(organizationFile, organization);
69
- });
32
+ function dump(context) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const { organizations } = context.assets;
35
+ // API returns an empty object if no grants are present
36
+ if (!organizations || organizations.constructor === Object)
37
+ return; // Skip, nothing to dump
38
+ const organizationsFolder = path_1.default.join(context.filePath, 'organizations');
39
+ fs_extra_1.default.ensureDirSync(organizationsFolder);
40
+ organizations.forEach((organization) => {
41
+ const organizationFile = path_1.default.join(organizationsFolder, (0, utils_1.sanitize)(`${organization.name}.json`));
42
+ logger_1.default.info(`Writing ${organizationFile}`);
43
+ if (organization.connections.length > 0) {
44
+ organization.connections = organization.connections.map((c) => {
45
+ // connection is a computed field
46
+ const name = c.connection && c.connection.name;
47
+ const conn = Object.assign({ name }, c);
48
+ delete conn.connection_id;
49
+ delete conn.connection;
50
+ return conn;
51
+ });
52
+ }
53
+ (0, utils_1.dumpJSON)(organizationFile, organization);
54
+ });
55
+ });
70
56
  }
71
-
72
57
  exports.default = {
73
- parse,
74
- dump
75
- };
58
+ parse,
59
+ dump
60
+ };