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,91 +1,77 @@
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 _logger = require("../../../logger");
18
-
19
- var _logger2 = _interopRequireDefault(_logger);
20
-
21
- var _utils = require("../../../utils");
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 logger_1 = __importDefault(require("../../../logger"));
19
+ const utils_1 = require("../../../utils");
25
20
  function parse(context) {
26
- const pagesFolder = _path2.default.join(context.filePath, _tools.constants.PAGES_DIRECTORY);
27
-
28
- if (!(0, _utils.existsMustBeDir)(pagesFolder)) return {
29
- pages: undefined
30
- };
31
- const files = (0, _utils.getFiles)(pagesFolder, ['.json', '.html']);
32
- const sorted = {};
33
- files.forEach(file => {
34
- const {
35
- ext,
36
- name
37
- } = _path2.default.parse(file);
38
-
39
- if (!sorted[name]) sorted[name] = {};
40
- if (ext === '.json') sorted[name].meta = file;
41
- if (ext === '.html') sorted[name].html = file;
42
- });
43
- const pages = [];
44
- Object.values(sorted).forEach(data => {
45
- if (!data.meta) {
46
- _logger2.default.warn(`Skipping pages file ${data.html} as missing the corresponding '.json' file`);
47
- } else if (!data.html) {
48
- _logger2.default.warn(`Skipping pages file ${data.meta} as missing corresponding '.html' file`);
49
- } else {
50
- pages.push({ ...(0, _utils.loadJSON)(data.meta, context.mappings),
51
- html: (0, _tools.loadFile)(data.html, context.mappings)
52
- });
53
- }
54
- });
55
- return {
56
- pages
57
- };
58
- }
59
-
60
- async function dump(context) {
61
- const pages = [...(context.assets.pages || [])];
62
- if (!pages) return;
63
-
64
- const pagesFolder = _path2.default.join(context.filePath, _tools.constants.PAGES_DIRECTORY);
65
-
66
- _fsExtra2.default.ensureDirSync(pagesFolder);
67
-
68
- pages.forEach(page => {
69
- var metadata = { ...page
21
+ const pagesFolder = path_1.default.join(context.filePath, tools_1.constants.PAGES_DIRECTORY);
22
+ if (!(0, utils_1.existsMustBeDir)(pagesFolder))
23
+ return { pages: undefined }; // Skip
24
+ const files = (0, utils_1.getFiles)(pagesFolder, ['.json', '.html']);
25
+ const sorted = {};
26
+ files.forEach((file) => {
27
+ const { ext, name } = path_1.default.parse(file);
28
+ if (!sorted[name])
29
+ sorted[name] = {};
30
+ if (ext === '.json')
31
+ sorted[name].meta = file;
32
+ if (ext === '.html')
33
+ sorted[name].html = file;
34
+ });
35
+ const pages = [];
36
+ Object.values(sorted).forEach((data) => {
37
+ if (!data.meta) {
38
+ logger_1.default.warn(`Skipping pages file ${data.html} as missing the corresponding '.json' file`);
39
+ }
40
+ else if (!data.html) {
41
+ logger_1.default.warn(`Skipping pages file ${data.meta} as missing corresponding '.html' file`);
42
+ }
43
+ else {
44
+ pages.push(Object.assign(Object.assign({}, (0, utils_1.loadJSON)(data.meta, context.mappings)), { html: (0, tools_1.loadFileAndReplaceKeywords)(data.html, context.mappings) }));
45
+ }
46
+ });
47
+ return {
48
+ pages
70
49
  };
71
-
72
- if (page.name !== 'error_page' || page.html !== undefined) {
73
- const htmlFile = _path2.default.join(pagesFolder, `${page.name}.html`);
74
-
75
- _logger2.default.info(`Writing ${htmlFile}`);
76
-
77
- _fsExtra2.default.writeFileSync(htmlFile, page.html);
78
-
79
- metadata.html = `./${page.name}.html`;
80
- }
81
-
82
- const pageFile = _path2.default.join(pagesFolder, `${page.name}.json`);
83
-
84
- (0, _utils.dumpJSON)(pageFile, metadata);
85
- });
86
50
  }
87
-
51
+ function dump(context) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const pages = [...context.assets.pages || []];
54
+ if (!pages)
55
+ return; // Skip, nothing to dump
56
+ // Create Pages folder
57
+ const pagesFolder = path_1.default.join(context.filePath, tools_1.constants.PAGES_DIRECTORY);
58
+ fs_extra_1.default.ensureDirSync(pagesFolder);
59
+ pages.forEach((page) => {
60
+ var metadata = Object.assign({}, page);
61
+ if (page.name !== 'error_page' || page.html !== undefined) {
62
+ // Dump template html to file
63
+ const htmlFile = path_1.default.join(pagesFolder, `${page.name}.html`);
64
+ logger_1.default.info(`Writing ${htmlFile}`);
65
+ fs_extra_1.default.writeFileSync(htmlFile, page.html);
66
+ metadata.html = `./${page.name}.html`;
67
+ }
68
+ // Dump page metadata
69
+ const pageFile = path_1.default.join(pagesFolder, `${page.name}.json`);
70
+ (0, utils_1.dumpJSON)(pageFile, metadata);
71
+ });
72
+ });
73
+ }
88
74
  exports.default = {
89
- parse,
90
- dump
91
- };
75
+ parse,
76
+ dump
77
+ };
@@ -1,54 +1,46 @@
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
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
-
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");
21
19
  function parse(context) {
22
- const resourceServersFolder = _path2.default.join(context.filePath, _tools.constants.RESOURCE_SERVERS_DIRECTORY);
23
-
24
- if (!(0, _utils.existsMustBeDir)(resourceServersFolder)) return {
25
- resourceServers: undefined
26
- };
27
- const foundFiles = (0, _utils.getFiles)(resourceServersFolder, ['.json']);
28
- const resourceServers = foundFiles.map(f => (0, _utils.loadJSON)(f, context.mappings)).filter(p => Object.keys(p).length > 0);
29
- return {
30
- resourceServers
31
- };
20
+ const resourceServersFolder = path_1.default.join(context.filePath, tools_1.constants.RESOURCE_SERVERS_DIRECTORY);
21
+ if (!(0, utils_1.existsMustBeDir)(resourceServersFolder))
22
+ return { resourceServers: undefined }; // Skip
23
+ const foundFiles = (0, utils_1.getFiles)(resourceServersFolder, ['.json']);
24
+ const resourceServers = foundFiles.map((f) => (0, utils_1.loadJSON)(f, context.mappings))
25
+ .filter((p) => Object.keys(p).length > 0); // Filter out empty resourceServers
26
+ return {
27
+ resourceServers
28
+ };
32
29
  }
33
-
34
- async function dump(context) {
35
- const {
36
- resourceServers
37
- } = context.assets;
38
- if (!resourceServers) return;
39
-
40
- const resourceServersFolder = _path2.default.join(context.filePath, _tools.constants.RESOURCE_SERVERS_DIRECTORY);
41
-
42
- _fsExtra2.default.ensureDirSync(resourceServersFolder);
43
-
44
- resourceServers.forEach(resourceServer => {
45
- const resourceServerFile = _path2.default.join(resourceServersFolder, (0, _utils.sanitize)(`${resourceServer.name}.json`));
46
-
47
- (0, _utils.dumpJSON)(resourceServerFile, resourceServer);
48
- });
30
+ function dump(context) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const { resourceServers } = context.assets;
33
+ if (!resourceServers)
34
+ return; // Skip, nothing to dump
35
+ const resourceServersFolder = path_1.default.join(context.filePath, tools_1.constants.RESOURCE_SERVERS_DIRECTORY);
36
+ fs_extra_1.default.ensureDirSync(resourceServersFolder);
37
+ resourceServers.forEach((resourceServer) => {
38
+ const resourceServerFile = path_1.default.join(resourceServersFolder, (0, utils_1.sanitize)(`${resourceServer.name}.json`));
39
+ (0, utils_1.dumpJSON)(resourceServerFile, resourceServer);
40
+ });
41
+ });
49
42
  }
50
-
51
43
  exports.default = {
52
- parse,
53
- dump
54
- };
44
+ parse,
45
+ dump
46
+ };
@@ -1,68 +1,55 @@
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 _logger = require("../../../logger");
18
-
19
- var _logger2 = _interopRequireDefault(_logger);
20
-
21
- var _utils = require("../../../utils");
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 logger_1 = __importDefault(require("../../../logger"));
19
+ const utils_1 = require("../../../utils");
25
20
  function parse(context) {
26
- const rolesFolder = _path2.default.join(context.filePath, _tools.constants.ROLES_DIRECTORY);
27
-
28
- if (!(0, _utils.existsMustBeDir)(rolesFolder)) return {
29
- roles: undefined
30
- };
31
- const files = (0, _utils.getFiles)(rolesFolder, ['.json']);
32
- const roles = files.map(f => {
33
- const role = { ...(0, _utils.loadJSON)(f, context.mappings)
21
+ const rolesFolder = path_1.default.join(context.filePath, tools_1.constants.ROLES_DIRECTORY);
22
+ if (!(0, utils_1.existsMustBeDir)(rolesFolder))
23
+ return { roles: undefined }; // Skip
24
+ const files = (0, utils_1.getFiles)(rolesFolder, ['.json']);
25
+ const roles = files.map((f) => {
26
+ const role = Object.assign({}, (0, utils_1.loadJSON)(f, context.mappings));
27
+ return role;
28
+ });
29
+ return {
30
+ roles
34
31
  };
35
- return role;
36
- });
37
- return {
38
- roles
39
- };
40
32
  }
41
-
42
- async function dump(context) {
43
- const {
44
- roles
45
- } = context.assets;
46
- if (!roles || roles.constructor === Object) return;
47
-
48
- const rolesFolder = _path2.default.join(context.filePath, _tools.constants.ROLES_DIRECTORY);
49
-
50
- _fsExtra2.default.ensureDirSync(rolesFolder);
51
-
52
- roles.forEach(role => {
53
- const roleFile = _path2.default.join(rolesFolder, (0, _utils.sanitize)(`${role.name}.json`));
54
-
55
- _logger2.default.info(`Writing ${roleFile}`);
56
-
57
- if (role.description === null) {
58
- delete role.description;
59
- }
60
-
61
- (0, _utils.dumpJSON)(roleFile, role);
62
- });
33
+ function dump(context) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const { roles } = context.assets;
36
+ // API returns an empty object if no grants are present
37
+ if (!roles || roles.constructor === Object)
38
+ return; // Skip, nothing to dump
39
+ const rolesFolder = path_1.default.join(context.filePath, tools_1.constants.ROLES_DIRECTORY);
40
+ fs_extra_1.default.ensureDirSync(rolesFolder);
41
+ roles.forEach((role) => {
42
+ const roleFile = path_1.default.join(rolesFolder, (0, utils_1.sanitize)(`${role.name}.json`));
43
+ logger_1.default.info(`Writing ${roleFile}`);
44
+ // remove empty description
45
+ if (role.description === null) {
46
+ delete role.description;
47
+ }
48
+ (0, utils_1.dumpJSON)(roleFile, role);
49
+ });
50
+ });
63
51
  }
64
-
65
52
  exports.default = {
66
- parse,
67
- dump
68
- };
53
+ parse,
54
+ dump
55
+ };
@@ -1,75 +1,59 @@
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 _logger = require("../../../logger");
18
-
19
- var _logger2 = _interopRequireDefault(_logger);
20
-
21
- var _utils = require("../../../utils");
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 logger_1 = __importDefault(require("../../../logger"));
19
+ const utils_1 = require("../../../utils");
25
20
  function parse(context) {
26
- const rulesFolder = _path2.default.join(context.filePath, _tools.constants.RULES_DIRECTORY);
27
-
28
- if (!(0, _utils.existsMustBeDir)(rulesFolder)) return {
29
- rules: undefined
30
- };
31
- const files = (0, _utils.getFiles)(rulesFolder, ['.json']);
32
- const rules = files.map(f => {
33
- const rule = { ...(0, _utils.loadJSON)(f, context.mappings)
21
+ const rulesFolder = path_1.default.join(context.filePath, tools_1.constants.RULES_DIRECTORY);
22
+ if (!(0, utils_1.existsMustBeDir)(rulesFolder))
23
+ return { rules: undefined }; // Skip
24
+ const files = (0, utils_1.getFiles)(rulesFolder, ['.json']);
25
+ const rules = files.map((f) => {
26
+ const rule = Object.assign({}, (0, utils_1.loadJSON)(f, context.mappings));
27
+ if (rule.script) {
28
+ rule.script = context.loadFile(rule.script, tools_1.constants.RULES_DIRECTORY);
29
+ }
30
+ return rule;
31
+ });
32
+ return {
33
+ rules
34
34
  };
35
-
36
- if (rule.script) {
37
- rule.script = context.loadFile(rule.script, _tools.constants.RULES_DIRECTORY);
38
- }
39
-
40
- return rule;
41
- });
42
- return {
43
- rules
44
- };
45
35
  }
46
-
47
- async function dump(context) {
48
- const rules = [...(context.assets.rules || [])];
49
- if (!rules) return;
50
-
51
- const rulesFolder = _path2.default.join(context.filePath, _tools.constants.RULES_DIRECTORY);
52
-
53
- _fsExtra2.default.ensureDirSync(rulesFolder);
54
-
55
- rules.forEach(rule => {
56
- const name = (0, _utils.sanitize)(rule.name);
57
-
58
- const ruleJS = _path2.default.join(rulesFolder, `${name}.js`);
59
-
60
- _logger2.default.info(`Writing ${ruleJS}`);
61
-
62
- _fsExtra2.default.writeFileSync(ruleJS, rule.script);
63
-
64
- const ruleFile = _path2.default.join(rulesFolder, `${name}.json`);
65
-
66
- (0, _utils.dumpJSON)(ruleFile, { ...rule,
67
- script: `./${name}.js`
36
+ function dump(context) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ const rules = [...context.assets.rules || []];
39
+ if (!rules)
40
+ return; // Skip, nothing to dump
41
+ // Create Rules folder
42
+ const rulesFolder = path_1.default.join(context.filePath, tools_1.constants.RULES_DIRECTORY);
43
+ fs_extra_1.default.ensureDirSync(rulesFolder);
44
+ rules.forEach((rule) => {
45
+ // Dump script to file
46
+ const name = (0, utils_1.sanitize)(rule.name);
47
+ const ruleJS = path_1.default.join(rulesFolder, `${name}.js`);
48
+ logger_1.default.info(`Writing ${ruleJS}`);
49
+ fs_extra_1.default.writeFileSync(ruleJS, rule.script);
50
+ // Dump template metadata
51
+ const ruleFile = path_1.default.join(rulesFolder, `${name}.json`);
52
+ (0, utils_1.dumpJSON)(ruleFile, Object.assign(Object.assign({}, rule), { script: `./${name}.js` }));
53
+ });
68
54
  });
69
- });
70
55
  }
71
-
72
56
  exports.default = {
73
- parse,
74
- dump
75
- };
57
+ parse,
58
+ dump
59
+ };
@@ -1,37 +1,38 @@
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 _tools = require("../../../tools");
12
-
13
- var _utils = require("../../../utils");
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
-
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 tools_1 = require("../../../tools");
17
+ const utils_1 = require("../../../utils");
17
18
  function parse(context) {
18
- const rulesConfigsFolder = _path2.default.join(context.filePath, _tools.constants.RULES_CONFIGS_DIRECTORY);
19
-
20
- if (!(0, _utils.existsMustBeDir)(rulesConfigsFolder)) return {
21
- rulesConfigs: undefined
22
- };
23
- const foundFiles = (0, _utils.getFiles)(rulesConfigsFolder, ['.json']);
24
- const rulesConfigs = foundFiles.map(f => (0, _utils.loadJSON)(f, context.mappings)).filter(p => Object.keys(p).length > 0);
25
- return {
26
- rulesConfigs
27
- };
19
+ const rulesConfigsFolder = path_1.default.join(context.filePath, tools_1.constants.RULES_CONFIGS_DIRECTORY);
20
+ if (!(0, utils_1.existsMustBeDir)(rulesConfigsFolder))
21
+ return { rulesConfigs: undefined }; // Skip
22
+ const foundFiles = (0, utils_1.getFiles)(rulesConfigsFolder, ['.json']);
23
+ const rulesConfigs = foundFiles.map((f) => (0, utils_1.loadJSON)(f, context.mappings))
24
+ .filter((p) => Object.keys(p).length > 0); // Filter out empty rulesConfigs
25
+ return {
26
+ rulesConfigs
27
+ };
28
28
  }
29
-
30
- async function dump() {
31
- return null;
29
+ function dump() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ // do not export rulesConfigs as its values cannot be extracted
32
+ return null;
33
+ });
32
34
  }
33
-
34
35
  exports.default = {
35
- parse,
36
- dump
37
- };
36
+ parse,
37
+ dump
38
+ };