@modern-js/app-tools 2.0.0-beta.1 → 2.0.0-beta.3

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 (240) hide show
  1. package/CHANGELOG.md +445 -0
  2. package/bin/modern.js +10 -1
  3. package/dist/js/modern/analyze/constants.js +2 -0
  4. package/dist/js/modern/analyze/generateCode.js +39 -19
  5. package/dist/js/modern/analyze/getBundleEntry.js +1 -1
  6. package/dist/js/modern/analyze/getFileSystemEntry.js +1 -1
  7. package/dist/js/modern/analyze/getHtmlTemplate.js +1 -1
  8. package/dist/js/modern/analyze/getServerRoutes.js +8 -4
  9. package/dist/js/modern/analyze/index.js +12 -27
  10. package/dist/js/modern/analyze/nestedRoutes.js +17 -6
  11. package/dist/js/modern/analyze/templates.js +59 -27
  12. package/dist/js/modern/analyze/utils.js +30 -4
  13. package/dist/js/modern/builder/builderPlugins/compatModern.js +18 -12
  14. package/dist/js/modern/builder/index.js +31 -16
  15. package/dist/js/modern/builder/loaders/routerLoader.js +20 -0
  16. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -0
  17. package/dist/js/modern/builder/share.js +1 -1
  18. package/dist/js/modern/commands/build.js +8 -2
  19. package/dist/js/modern/commands/dev.js +37 -32
  20. package/dist/js/modern/commands/inspect.js +4 -2
  21. package/dist/js/modern/config/default.js +206 -0
  22. package/dist/js/modern/config/index.js +2 -0
  23. package/dist/js/modern/config/initial/createHtmlConfig.js +32 -0
  24. package/dist/js/modern/{builder → config/initial}/createOutputConfig.js +16 -15
  25. package/dist/js/modern/config/initial/createSourceConfig.js +32 -0
  26. package/dist/js/modern/config/initial/createToolsConfig.js +41 -0
  27. package/dist/js/modern/config/initial/index.js +11 -0
  28. package/dist/js/modern/config/initial/inits.js +117 -0
  29. package/dist/js/modern/config/initial/transformNormalizedConfig.js +40 -0
  30. package/dist/js/modern/defineConfig.js +12 -0
  31. package/dist/js/modern/hooks.js +23 -19
  32. package/dist/js/modern/index.js +7 -5
  33. package/dist/js/modern/initialize/index.js +72 -0
  34. package/dist/js/modern/schema/Schema.js +39 -0
  35. package/dist/js/modern/schema/index.js +139 -0
  36. package/dist/js/modern/schema/legacy.js +284 -0
  37. package/dist/js/modern/types/config/deploy.js +0 -0
  38. package/dist/js/modern/types/config/dev.js +0 -0
  39. package/dist/js/modern/types/config/experiments.js +0 -0
  40. package/dist/js/modern/types/config/html.js +0 -0
  41. package/dist/js/modern/types/config/index.js +2 -0
  42. package/dist/js/modern/types/config/output.js +0 -0
  43. package/dist/js/modern/types/config/performance.js +0 -0
  44. package/dist/js/modern/types/config/security.js +0 -0
  45. package/dist/js/modern/types/config/source.js +0 -0
  46. package/dist/js/modern/types/config/tools.js +0 -0
  47. package/dist/js/modern/types/hooks.js +0 -0
  48. package/dist/js/modern/types/index.js +4 -0
  49. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  50. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  51. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  52. package/dist/js/modern/types/legacyConfig/output.js +1 -0
  53. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  54. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  55. package/dist/js/modern/utils/config.js +1 -1
  56. package/dist/js/modern/utils/createFileWatcher.js +82 -0
  57. package/dist/js/modern/utils/restart.js +17 -0
  58. package/dist/js/node/analyze/constants.js +5 -1
  59. package/dist/js/node/analyze/generateCode.js +37 -17
  60. package/dist/js/node/analyze/getBundleEntry.js +1 -1
  61. package/dist/js/node/analyze/getFileSystemEntry.js +1 -1
  62. package/dist/js/node/analyze/getHtmlTemplate.js +1 -1
  63. package/dist/js/node/analyze/getServerRoutes.js +8 -4
  64. package/dist/js/node/analyze/index.js +13 -39
  65. package/dist/js/node/analyze/nestedRoutes.js +15 -4
  66. package/dist/js/node/analyze/templates.js +60 -27
  67. package/dist/js/node/analyze/utils.js +31 -3
  68. package/dist/js/node/builder/builderPlugins/compatModern.js +18 -12
  69. package/dist/js/node/builder/index.js +32 -16
  70. package/dist/js/node/builder/loaders/routerLoader.js +27 -0
  71. package/dist/js/node/builder/loaders/serverModuleLoader.js +11 -0
  72. package/dist/js/node/builder/share.js +1 -1
  73. package/dist/js/node/commands/build.js +8 -2
  74. package/dist/js/node/commands/dev.js +37 -32
  75. package/dist/js/node/commands/inspect.js +4 -2
  76. package/dist/js/node/config/default.js +213 -0
  77. package/dist/js/node/config/index.js +31 -0
  78. package/dist/js/node/config/initial/createHtmlConfig.js +38 -0
  79. package/dist/js/node/{builder → config/initial}/createOutputConfig.js +16 -15
  80. package/dist/js/node/config/initial/createSourceConfig.js +38 -0
  81. package/dist/js/node/config/initial/createToolsConfig.js +47 -0
  82. package/dist/js/node/config/initial/index.js +24 -0
  83. package/dist/js/node/config/initial/inits.js +127 -0
  84. package/dist/js/node/config/initial/transformNormalizedConfig.js +46 -0
  85. package/dist/js/node/defineConfig.js +20 -0
  86. package/dist/js/node/hooks.js +23 -28
  87. package/dist/js/node/index.js +30 -16
  88. package/dist/js/node/initialize/index.js +79 -0
  89. package/dist/js/node/schema/Schema.js +46 -0
  90. package/dist/js/node/schema/index.js +152 -0
  91. package/dist/js/node/schema/legacy.js +291 -0
  92. package/dist/js/node/types/config/deploy.js +0 -0
  93. package/dist/js/node/types/config/dev.js +0 -0
  94. package/dist/js/node/types/config/experiments.js +0 -0
  95. package/dist/js/node/types/config/html.js +0 -0
  96. package/dist/js/node/types/config/index.js +16 -0
  97. package/dist/js/node/types/config/output.js +0 -0
  98. package/dist/js/node/types/config/performance.js +0 -0
  99. package/dist/js/node/types/config/security.js +0 -0
  100. package/dist/js/node/types/config/source.js +0 -0
  101. package/dist/js/node/types/config/tools.js +0 -0
  102. package/dist/js/node/types/hooks.js +0 -0
  103. package/dist/js/node/types/index.js +38 -0
  104. package/dist/js/node/types/legacyConfig/deploy.js +0 -0
  105. package/dist/js/node/types/legacyConfig/dev.js +0 -0
  106. package/dist/js/node/types/legacyConfig/index.js +0 -0
  107. package/dist/js/node/types/legacyConfig/output.js +5 -0
  108. package/dist/js/node/types/legacyConfig/source.js +0 -0
  109. package/dist/js/node/types/legacyConfig/tools.js +0 -0
  110. package/dist/js/node/utils/config.js +1 -1
  111. package/dist/js/node/utils/createFileWatcher.js +91 -0
  112. package/dist/js/node/utils/restart.js +23 -0
  113. package/dist/js/treeshaking/analyze/constants.js +2 -0
  114. package/dist/js/treeshaking/analyze/generateCode.js +138 -82
  115. package/dist/js/treeshaking/analyze/getBundleEntry.js +1 -1
  116. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +1 -1
  117. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +1 -1
  118. package/dist/js/treeshaking/analyze/getServerRoutes.js +7 -5
  119. package/dist/js/treeshaking/analyze/index.js +10 -26
  120. package/dist/js/treeshaking/analyze/nestedRoutes.js +98 -55
  121. package/dist/js/treeshaking/analyze/templates.js +175 -101
  122. package/dist/js/treeshaking/analyze/utils.js +80 -4
  123. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +18 -12
  124. package/dist/js/treeshaking/builder/index.js +29 -16
  125. package/dist/js/treeshaking/builder/loaders/routerLoader.js +14 -0
  126. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +4 -0
  127. package/dist/js/treeshaking/builder/share.js +1 -1
  128. package/dist/js/treeshaking/commands/build.js +33 -23
  129. package/dist/js/treeshaking/commands/dev.js +56 -43
  130. package/dist/js/treeshaking/commands/inspect.js +8 -3
  131. package/dist/js/treeshaking/config/default.js +199 -0
  132. package/dist/js/treeshaking/config/index.js +2 -0
  133. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +31 -0
  134. package/dist/js/treeshaking/config/initial/createOutputConfig.js +70 -0
  135. package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -0
  136. package/dist/js/treeshaking/config/initial/createToolsConfig.js +38 -0
  137. package/dist/js/treeshaking/config/initial/index.js +11 -0
  138. package/dist/js/treeshaking/config/initial/inits.js +114 -0
  139. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +38 -0
  140. package/dist/js/treeshaking/defineConfig.js +14 -0
  141. package/dist/js/treeshaking/hooks.js +23 -19
  142. package/dist/js/treeshaking/index.js +7 -5
  143. package/dist/js/treeshaking/initialize/index.js +121 -0
  144. package/dist/js/treeshaking/schema/Schema.js +75 -0
  145. package/dist/js/treeshaking/schema/index.js +138 -0
  146. package/dist/js/treeshaking/schema/legacy.js +273 -0
  147. package/dist/js/treeshaking/types/config/deploy.js +0 -0
  148. package/dist/js/treeshaking/types/config/dev.js +0 -0
  149. package/dist/js/treeshaking/types/config/experiments.js +0 -0
  150. package/dist/js/treeshaking/types/config/html.js +0 -0
  151. package/dist/js/treeshaking/types/config/index.js +2 -0
  152. package/dist/js/treeshaking/types/config/output.js +0 -0
  153. package/dist/js/treeshaking/types/config/performance.js +0 -0
  154. package/dist/js/treeshaking/types/config/security.js +0 -0
  155. package/dist/js/treeshaking/types/config/source.js +0 -0
  156. package/dist/js/treeshaking/types/config/tools.js +0 -0
  157. package/dist/js/treeshaking/types/hooks.js +0 -0
  158. package/dist/js/treeshaking/types/index.js +4 -0
  159. package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -0
  160. package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -0
  161. package/dist/js/treeshaking/types/legacyConfig/index.js +0 -0
  162. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  163. package/dist/js/treeshaking/types/legacyConfig/source.js +0 -0
  164. package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -0
  165. package/dist/js/treeshaking/utils/config.js +1 -1
  166. package/dist/js/treeshaking/utils/createFileWatcher.js +123 -0
  167. package/dist/js/treeshaking/utils/restart.js +45 -0
  168. package/dist/types/analyze/constants.d.ts +2 -0
  169. package/dist/types/analyze/generateCode.d.ts +3 -2
  170. package/dist/types/analyze/getBundleEntry.d.ts +2 -2
  171. package/dist/types/analyze/getFileSystemEntry.d.ts +2 -2
  172. package/dist/types/analyze/getHtmlTemplate.d.ts +3 -3
  173. package/dist/types/analyze/getServerRoutes.d.ts +3 -2
  174. package/dist/types/analyze/index.d.ts +3 -41
  175. package/dist/types/analyze/templates.d.ts +9 -8
  176. package/dist/types/analyze/utils.d.ts +10 -2
  177. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -2
  178. package/dist/types/builder/index.d.ts +5 -2
  179. package/dist/types/builder/loaders/routerLoader.d.ts +3 -0
  180. package/dist/types/builder/loaders/serverModuleLoader.d.ts +3 -0
  181. package/dist/types/builder/share.d.ts +2 -2
  182. package/dist/types/commands/build.d.ts +2 -2
  183. package/dist/types/commands/deploy.d.ts +2 -2
  184. package/dist/types/commands/dev.d.ts +2 -2
  185. package/dist/types/commands/inspect.d.ts +9 -1
  186. package/dist/types/commands/start.d.ts +2 -2
  187. package/dist/types/config/default.d.ts +3 -0
  188. package/dist/types/config/index.d.ts +2 -0
  189. package/dist/types/config/initial/createHtmlConfig.d.ts +2 -0
  190. package/dist/types/config/initial/createOutputConfig.d.ts +2 -0
  191. package/dist/types/config/initial/createSourceConfig.d.ts +2 -0
  192. package/dist/types/config/initial/createToolsConfig.d.ts +2 -0
  193. package/dist/types/config/initial/index.d.ts +4 -0
  194. package/dist/types/config/initial/inits.d.ts +4 -0
  195. package/dist/types/config/initial/transformNormalizedConfig.d.ts +2 -0
  196. package/dist/types/defineConfig.d.ts +7 -0
  197. package/dist/types/hooks.d.ts +2 -42
  198. package/dist/types/index.d.ts +5 -5
  199. package/dist/types/initialize/index.d.ts +3 -0
  200. package/dist/types/schema/Schema.d.ts +14 -0
  201. package/dist/types/schema/index.d.ts +4 -0
  202. package/dist/types/schema/legacy.d.ts +3 -0
  203. package/dist/types/types/config/deploy.d.ts +9 -0
  204. package/dist/types/types/config/dev.d.ts +13 -0
  205. package/dist/types/types/config/experiments.d.ts +4 -0
  206. package/dist/types/types/config/html.d.ts +4 -0
  207. package/dist/types/types/config/index.d.ts +62 -0
  208. package/dist/types/types/config/output.d.ts +23 -0
  209. package/dist/types/types/config/performance.d.ts +4 -0
  210. package/dist/types/types/config/security.d.ts +4 -0
  211. package/dist/types/types/config/source.d.ts +22 -0
  212. package/dist/types/types/config/tools.d.ts +22 -0
  213. package/dist/types/types/hooks.d.ts +81 -0
  214. package/dist/types/types/index.d.ts +23 -0
  215. package/dist/types/types/legacyConfig/deploy.d.ts +8 -0
  216. package/dist/types/types/legacyConfig/dev.d.ts +12 -0
  217. package/dist/types/types/legacyConfig/index.d.ts +33 -0
  218. package/dist/types/types/legacyConfig/output.d.ts +51 -0
  219. package/dist/types/types/legacyConfig/source.d.ts +25 -0
  220. package/dist/types/types/legacyConfig/tools.d.ts +16 -0
  221. package/dist/types/utils/config.d.ts +2 -2
  222. package/dist/types/utils/createFileWatcher.d.ts +4 -0
  223. package/dist/types/utils/printInstructions.d.ts +3 -3
  224. package/dist/types/utils/restart.d.ts +3 -0
  225. package/lib/types.d.ts +1 -1
  226. package/package.json +28 -25
  227. package/dist/js/modern/builder/createHtmlConfig.js +0 -58
  228. package/dist/js/modern/builder/createSourceConfig.js +0 -74
  229. package/dist/js/modern/builder/createToolsConfig.js +0 -87
  230. package/dist/js/node/builder/createHtmlConfig.js +0 -68
  231. package/dist/js/node/builder/createSourceConfig.js +0 -82
  232. package/dist/js/node/builder/createToolsConfig.js +0 -94
  233. package/dist/js/treeshaking/builder/createHtmlConfig.js +0 -59
  234. package/dist/js/treeshaking/builder/createOutputConfig.js +0 -70
  235. package/dist/js/treeshaking/builder/createSourceConfig.js +0 -88
  236. package/dist/js/treeshaking/builder/createToolsConfig.js +0 -85
  237. package/dist/types/builder/createHtmlConfig.d.ts +0 -6
  238. package/dist/types/builder/createOutputConfig.d.ts +0 -3
  239. package/dist/types/builder/createSourceConfig.d.ts +0 -5
  240. package/dist/types/builder/createToolsConfig.d.ts +0 -13
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createToolsConfig = createToolsConfig;
7
+ function createToolsConfig(config) {
8
+ const {
9
+ autoprefixer,
10
+ babel,
11
+ minifyCss,
12
+ terser,
13
+ webpack,
14
+ webpackChain,
15
+ tsLoader,
16
+ styledComponents,
17
+ sass,
18
+ postcss,
19
+ less,
20
+ htmlPlugin,
21
+ devServer,
22
+ tailwindcss,
23
+ jest,
24
+ esbuild
25
+ } = config.tools;
26
+ const {
27
+ enableTsLoader
28
+ } = config.output;
29
+ return {
30
+ tsLoader: enableTsLoader ? tsLoader : undefined,
31
+ autoprefixer,
32
+ babel,
33
+ minifyCss,
34
+ terser,
35
+ webpack,
36
+ webpackChain,
37
+ styledComponents,
38
+ sass,
39
+ postcss,
40
+ less,
41
+ htmlPlugin,
42
+ devServer,
43
+ tailwindcss,
44
+ jest,
45
+ esbuild
46
+ };
47
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkIsLegacyConfig = checkIsLegacyConfig;
7
+ exports.initialNormalizedConfig = initialNormalizedConfig;
8
+ Object.defineProperty(exports, "transformNormalizedConfig", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _transformNormalizedConfig.transformNormalizedConfig;
12
+ }
13
+ });
14
+ var _inits = require("./inits");
15
+ var _transformNormalizedConfig = require("./transformNormalizedConfig");
16
+ function checkIsLegacyConfig(config) {
17
+ return Boolean(config.legacy);
18
+ }
19
+ function initialNormalizedConfig(config, appContext) {
20
+ (0, _inits.initHtmlConfig)(config, appContext);
21
+ (0, _inits.initSourceConfig)(config, appContext);
22
+ (0, _inits.initToolsConfig)(config);
23
+ return config;
24
+ }
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.initHtmlConfig = initHtmlConfig;
7
+ exports.initSourceConfig = initSourceConfig;
8
+ exports.initToolsConfig = initToolsConfig;
9
+ var _path = _interopRequireWildcard(require("path"));
10
+ var _utils = require("@modern-js/utils");
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
+ 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; }
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+ function initHtmlConfig(config, appContext) {
17
+ const ICON_EXTENSIONS = ['png', 'jpg', 'jpeg', 'svg', 'ico'];
18
+ config.html.appIcon = createBuilderAppIcon(config, appContext);
19
+ config.html.favicon = createBuilderFavicon(config, appContext);
20
+ return config.html;
21
+ function createBuilderAppIcon(config, appContext) {
22
+ const {
23
+ configDir
24
+ } = config.source;
25
+ const appIcon = (0, _utils.findExists)(ICON_EXTENSIONS.map(ext => _path.default.resolve(appContext.appDirectory, configDir || './config', `icon.${ext}`)));
26
+ return typeof appIcon === 'string' ? appIcon : undefined;
27
+ }
28
+ function createBuilderFavicon(config, appContext) {
29
+ const {
30
+ configDir
31
+ } = config.source;
32
+ const {
33
+ favicon
34
+ } = config.html;
35
+ const defaultFavicon = (0, _utils.findExists)(ICON_EXTENSIONS.map(ext => _path.default.resolve(appContext.appDirectory, configDir || './config', `favicon.${ext}`)));
36
+ return favicon || defaultFavicon || undefined;
37
+ }
38
+ }
39
+ function initSourceConfig(config, appContext) {
40
+ config.source.include = createBuilderInclude(config, appContext);
41
+ config.source.moduleScopes = createBuilderModuleScope(config);
42
+ function createBuilderInclude(config, appContext) {
43
+ const {
44
+ include
45
+ } = config.source;
46
+ const defaultInclude = [appContext.internalDirectory];
47
+ const transformInclude = (include || []).map(include => {
48
+ if (typeof include === 'string') {
49
+ if ((0, _path.isAbsolute)(include)) {
50
+ return include;
51
+ }
52
+ return new RegExp(include);
53
+ }
54
+ return include;
55
+ }).concat(defaultInclude); // concat default Include
56
+
57
+ const root = (0, _utils.findMonorepoRoot)(appContext.appDirectory);
58
+ if (!root) {
59
+ return transformInclude;
60
+ }
61
+ const modernjsMonorepo = (0, _utils.isModernjsMonorepo)(root);
62
+ if (modernjsMonorepo) {
63
+ const paths = _utils.globby.sync(_path.posix.join(root, 'features', '**', 'package.json'), {
64
+ ignore: ['**/node_modules/**/*']
65
+ }).map(pathname => (0, _path.dirname)(pathname) + _path.sep);
66
+ return [...paths, ...transformInclude];
67
+ }
68
+ return transformInclude;
69
+ }
70
+ function createBuilderModuleScope(config) {
71
+ const {
72
+ moduleScopes
73
+ } = config.source;
74
+ if (moduleScopes) {
75
+ let builderModuleScope = [];
76
+ const DEFAULT_SCOPES = ['./src', './shared', /node_modules/];
77
+ if (Array.isArray(moduleScopes)) {
78
+ if (isPrimitiveScope(moduleScopes)) {
79
+ builderModuleScope = DEFAULT_SCOPES.concat(moduleScopes);
80
+ } else {
81
+ builderModuleScope = [DEFAULT_SCOPES, ...moduleScopes];
82
+ }
83
+ } else {
84
+ builderModuleScope = [DEFAULT_SCOPES, moduleScopes];
85
+ }
86
+ return builderModuleScope;
87
+ } else {
88
+ return undefined;
89
+ }
90
+ function isPrimitiveScope(items) {
91
+ return items.every(item => typeof item === 'string' || Object.prototype.toString.call(item) === '[object RegExp]');
92
+ }
93
+ }
94
+ }
95
+ function initToolsConfig(config) {
96
+ const defaultTsChecker = {
97
+ issue: {
98
+ include: [{
99
+ file: '**/src/**/*'
100
+ }],
101
+ exclude: [{
102
+ file: '**/*.(spec|test).ts'
103
+ }, {
104
+ file: '**/node_modules/**/*'
105
+ }]
106
+ }
107
+ };
108
+ const {
109
+ tsChecker,
110
+ tsLoader,
111
+ htmlPlugin
112
+ } = config.tools;
113
+ config.tools.tsChecker = (0, _utils.applyOptionsChain)(defaultTsChecker, tsChecker);
114
+ tsLoader && (config.tools.tsLoader = (tsLoaderConfig, utils) => {
115
+ (0, _utils.applyOptionsChain)(_objectSpread(_objectSpread({}, tsLoaderConfig), {}, {
116
+ transpileOnly: false,
117
+ allowTsInNodeModules: true
118
+ }), tsLoader || {}, utils);
119
+ });
120
+ config.tools.htmlPlugin = [config => _objectSpread(_objectSpread({}, config), {}, {
121
+ minify: typeof config.minify === 'object' ? _objectSpread(_objectSpread({}, config.minify), {}, {
122
+ removeComments: false
123
+ }) : config.minify
124
+ }),
125
+ // eslint-disable-next-line no-nested-ternary
126
+ ...(Array.isArray(htmlPlugin) ? htmlPlugin : htmlPlugin ? [htmlPlugin] : [])];
127
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transformNormalizedConfig = transformNormalizedConfig;
7
+ var _createToolsConfig = require("./createToolsConfig");
8
+ var _createSourceConfig = require("./createSourceConfig");
9
+ var _createOutputConfig = require("./createOutputConfig");
10
+ var _createHtmlConfig = require("./createHtmlConfig");
11
+ function transformNormalizedConfig(config) {
12
+ const html = (0, _createHtmlConfig.createHtmlConfig)(config);
13
+ const output = (0, _createOutputConfig.createOutputConfig)(config);
14
+ const source = (0, _createSourceConfig.createSourceConfig)(config);
15
+ const tools = (0, _createToolsConfig.createToolsConfig)(config);
16
+ const {
17
+ bff,
18
+ dev,
19
+ deploy,
20
+ runtime,
21
+ runtimeByEntries,
22
+ server,
23
+ cliOptions,
24
+ plugins,
25
+ testing
26
+ } = config;
27
+ return {
28
+ source,
29
+ html,
30
+ output,
31
+ tools,
32
+ bff,
33
+ dev,
34
+ deploy,
35
+ runtime,
36
+ runtimeByEntries,
37
+ server,
38
+ cliOptions,
39
+ testing,
40
+ plugins: plugins,
41
+ security: {},
42
+ _raw: {},
43
+ experiments: {},
44
+ performance: {}
45
+ };
46
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defineLegacyConfig = exports.defineConfig = void 0;
7
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+ const defineConfig = config => config;
11
+
12
+ /**
13
+ * @deprecated
14
+ * Using defineConfig first.
15
+ */
16
+ exports.defineConfig = defineConfig;
17
+ const defineLegacyConfig = config => _objectSpread(_objectSpread({}, config), {}, {
18
+ legacy: true
19
+ });
20
+ exports.defineLegacyConfig = defineLegacyConfig;
@@ -3,35 +3,30 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.hooks = exports.beforePrintInstructions = exports.beforeDev = exports.beforeDeploy = exports.beforeCreateCompiler = exports.beforeBuild = exports.afterDev = exports.afterDeploy = exports.afterCreateCompiler = exports.afterBuild = void 0;
6
+ exports.hooks = void 0;
7
7
  var _plugin = require("@modern-js/plugin");
8
- const beforeDev = (0, _plugin.createAsyncWorkflow)();
9
- exports.beforeDev = beforeDev;
10
- const afterDev = (0, _plugin.createAsyncWorkflow)();
11
- exports.afterDev = afterDev;
12
- const beforeCreateCompiler = (0, _plugin.createAsyncWorkflow)();
13
- exports.beforeCreateCompiler = beforeCreateCompiler;
14
- const afterCreateCompiler = (0, _plugin.createAsyncWorkflow)();
15
- exports.afterCreateCompiler = afterCreateCompiler;
16
- const beforePrintInstructions = (0, _plugin.createAsyncWaterfall)();
17
- exports.beforePrintInstructions = beforePrintInstructions;
18
- const beforeBuild = (0, _plugin.createAsyncWorkflow)();
19
- exports.beforeBuild = beforeBuild;
20
- const afterBuild = (0, _plugin.createAsyncWorkflow)();
21
- exports.afterBuild = afterBuild;
22
- const beforeDeploy = (0, _plugin.createAsyncWorkflow)();
23
- exports.beforeDeploy = beforeDeploy;
24
- const afterDeploy = (0, _plugin.createAsyncWorkflow)();
25
- exports.afterDeploy = afterDeploy;
26
8
  const hooks = {
27
- beforeDev,
28
- afterDev,
29
- beforeCreateCompiler,
30
- afterCreateCompiler,
31
- beforePrintInstructions,
32
- beforeBuild,
33
- afterBuild,
34
- beforeDeploy,
35
- afterDeploy
9
+ modifyEntryExport: (0, _plugin.createAsyncWaterfall)(),
10
+ modifyEntryImports: (0, _plugin.createAsyncWaterfall)(),
11
+ modifyEntryRuntimePlugins: (0, _plugin.createAsyncWaterfall)(),
12
+ modifyEntryRenderFunction: (0, _plugin.createAsyncWaterfall)(),
13
+ modifyAsyncEntry: (0, _plugin.createAsyncWaterfall)(),
14
+ modifyFileSystemRoutes: (0, _plugin.createAsyncWaterfall)(),
15
+ modifyServerRoutes: (0, _plugin.createAsyncWaterfall)(),
16
+ htmlPartials: (0, _plugin.createAsyncWaterfall)(),
17
+ beforeGenerateRoutes: (0, _plugin.createAsyncWaterfall)(),
18
+ addDefineTypes: (0, _plugin.createAsyncWaterfall)(),
19
+ beforeDev: (0, _plugin.createAsyncWorkflow)(),
20
+ afterDev: (0, _plugin.createAsyncWorkflow)(),
21
+ beforeCreateCompiler: (0, _plugin.createAsyncWorkflow)(),
22
+ afterCreateCompiler: (0, _plugin.createAsyncWorkflow)(),
23
+ beforePrintInstructions: (0, _plugin.createAsyncWaterfall)(),
24
+ beforeBuild: (0, _plugin.createAsyncWorkflow)(),
25
+ afterBuild: (0, _plugin.createAsyncWorkflow)(),
26
+ beforeDeploy: (0, _plugin.createAsyncWorkflow)(),
27
+ afterDeploy: (0, _plugin.createAsyncWorkflow)(),
28
+ watchFiles: (0, _plugin.createParallelWorkflow)(),
29
+ fileChange: (0, _plugin.createAsyncWorkflow)(),
30
+ beforeRestart: (0, _plugin.createAsyncWorkflow)()
36
31
  };
37
32
  exports.hooks = hooks;
@@ -3,28 +3,42 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {};
6
7
  exports.default = void 0;
7
- Object.defineProperty(exports, "defineConfig", {
8
- enumerable: true,
9
- get: function () {
10
- return _core.defineConfig;
11
- }
12
- });
13
- Object.defineProperty(exports, "hooks", {
14
- enumerable: true,
15
- get: function () {
16
- return _hooks.hooks;
17
- }
18
- });
19
8
  var _path = _interopRequireDefault(require("path"));
20
- var _core = require("@modern-js/core");
21
9
  var _pluginLint = _interopRequireDefault(require("@modern-js/plugin-lint"));
22
10
  var _utils = require("@modern-js/utils");
23
11
  var _analyze = _interopRequireDefault(require("./analyze"));
12
+ var _initialize = _interopRequireDefault(require("./initialize"));
24
13
  var _hooks = require("./hooks");
25
14
  var _locale = require("./locale");
26
15
  var _language = require("./utils/language");
27
16
  var _commands = require("./utils/commands");
17
+ var _restart = require("./utils/restart");
18
+ var _defineConfig = require("./defineConfig");
19
+ Object.keys(_defineConfig).forEach(function (key) {
20
+ if (key === "default" || key === "__esModule") return;
21
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
22
+ if (key in exports && exports[key] === _defineConfig[key]) return;
23
+ Object.defineProperty(exports, key, {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _defineConfig[key];
27
+ }
28
+ });
29
+ });
30
+ var _types = require("./types");
31
+ Object.keys(_types).forEach(function (key) {
32
+ if (key === "default" || key === "__esModule") return;
33
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
34
+ if (key in exports && exports[key] === _types[key]) return;
35
+ Object.defineProperty(exports, key, {
36
+ enumerable: true,
37
+ get: function () {
38
+ return _types[key];
39
+ }
40
+ });
41
+ });
28
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
43
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
44
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -34,9 +48,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
34
48
  const upgradeModel = _utils.Import.lazy('@modern-js/upgrade', require);
35
49
  var _default = () => ({
36
50
  name: '@modern-js/app-tools',
37
- post: ['@modern-js/plugin-analyze', '@modern-js/plugin-ssr', '@modern-js/plugin-document', '@modern-js/plugin-state', '@modern-js/plugin-router', '@modern-js/plugin-router-legacy', '@modern-js/plugin-polyfill'],
51
+ post: ['@modern-js/plugin-initialize', '@modern-js/plugin-analyze', '@modern-js/plugin-ssr', '@modern-js/plugin-document', '@modern-js/plugin-state', '@modern-js/plugin-router', '@modern-js/plugin-router-legacy', '@modern-js/plugin-polyfill'],
38
52
  registerHook: _hooks.hooks,
39
- usePlugins: [(0, _analyze.default)(), (0, _pluginLint.default)()],
53
+ usePlugins: [(0, _initialize.default)(), (0, _analyze.default)(), (0, _pluginLint.default)()],
40
54
  setup: api => {
41
55
  const locale = (0, _language.getLocaleLanguage)();
42
56
  _locale.i18n.changeLanguage({
@@ -119,7 +133,7 @@ var _default = () => ({
119
133
  closeServer
120
134
  } = await Promise.resolve().then(() => _interopRequireWildcard(require("./utils/createServer")));
121
135
  await closeServer();
122
- await _core.cli.restart();
136
+ await (0, _restart.restart)(api.useHookRunners());
123
137
  }
124
138
  },
125
139
  async beforeRestart() {
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("@modern-js/utils");
8
+ var _schema = require("../schema");
9
+ var _commands = require("../utils/commands");
10
+ var _transformNormalizedConfig = require("../config/initial/transformNormalizedConfig");
11
+ var _config = require("../config");
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ var _default = () => ({
16
+ name: '@modern-js/plugin-initialize',
17
+ setup(api) {
18
+ const config = () => {
19
+ const appContext = api.useAppContext();
20
+ const userConfig = api.useConfigContext();
21
+ return (0, _config.checkIsLegacyConfig)(userConfig) ? (0, _config.createLegacyDefaultConfig)(appContext) : (0, _config.createDefaultConfig)(appContext);
22
+ };
23
+ const validateSchema = () => {
24
+ const userConfig = api.useConfigContext();
25
+ const schemas = (0, _config.checkIsLegacyConfig)(userConfig) ? _schema.legacySchema : _schema.schema;
26
+ return schemas.generate();
27
+ };
28
+ return {
29
+ config,
30
+ validateSchema,
31
+ async resolvedConfig({
32
+ resolved
33
+ }) {
34
+ var _resolved$output$dist, _normalizedConfig$ser;
35
+ let appContext = api.useAppContext();
36
+ const userConfig = api.useConfigContext();
37
+ const port = await getDevServerPort(appContext, resolved);
38
+ appContext = _objectSpread(_objectSpread({}, appContext), {}, {
39
+ port,
40
+ distDirectory: (0, _utils.ensureAbsolutePath)(appContext.distDirectory, ((_resolved$output$dist = resolved.output.distPath) === null || _resolved$output$dist === void 0 ? void 0 : _resolved$output$dist.root) || 'dist')
41
+ });
42
+ api.setAppContext(appContext);
43
+ const normalizedConfig = (0, _config.checkIsLegacyConfig)(resolved) ? (0, _transformNormalizedConfig.transformNormalizedConfig)(resolved) : resolved;
44
+ return {
45
+ resolved: {
46
+ // FIXME: the userConfig mayby legacy userConfig
47
+ _raw: userConfig,
48
+ source: normalizedConfig.source || {},
49
+ server: _objectSpread(_objectSpread({}, normalizedConfig.server || {}), {}, {
50
+ port: port || ((_normalizedConfig$ser = normalizedConfig.server) === null || _normalizedConfig$ser === void 0 ? void 0 : _normalizedConfig$ser.port)
51
+ }),
52
+ bff: normalizedConfig.bff || {},
53
+ dev: normalizedConfig.dev || {},
54
+ html: normalizedConfig.html || {},
55
+ output: normalizedConfig.output || {},
56
+ security: normalizedConfig.security || {},
57
+ tools: normalizedConfig.tools || {},
58
+ testing: normalizedConfig.testing || {},
59
+ plugins: normalizedConfig.plugins || [],
60
+ runtime: normalizedConfig.runtime || {},
61
+ runtimeByEntries: normalizedConfig.runtimeByEntries || {},
62
+ deploy: normalizedConfig.deploy || {},
63
+ performance: normalizedConfig.performance || {},
64
+ experiments: normalizedConfig.experiments || {}
65
+ }
66
+ };
67
+ }
68
+ };
69
+ }
70
+ });
71
+ exports.default = _default;
72
+ async function getDevServerPort(appContext, resolved) {
73
+ const command = (0, _commands.getCommand)();
74
+ if ((0, _utils.isDev)() && command === 'dev') {
75
+ var _appContext$port;
76
+ return ((_appContext$port = appContext.port) !== null && _appContext$port !== void 0 ? _appContext$port : 0) > 0 ? appContext.port : await (0, _utils.getPort)(resolved.server.port || 8080);
77
+ }
78
+ return resolved.server.port;
79
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Schema = void 0;
7
+ var _lodash = require("@modern-js/utils/lodash");
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+ class Schema extends Map {
10
+ constructor(baseSchema = {}) {
11
+ super();
12
+ _defineProperty(this, "schema", void 0);
13
+ this.schema = baseSchema;
14
+ }
15
+ setSchema(key, object) {
16
+ Object.entries(object).forEach(([k, v]) => {
17
+ const target = `${key}.${k}`;
18
+ this.set(target, v);
19
+ });
20
+ return this;
21
+ }
22
+ set(key, value) {
23
+ if (this.has(key)) {
24
+ (0, _lodash.merge)(this.schema[key], value);
25
+ } else {
26
+ this.schema[key] = value;
27
+ }
28
+ return this;
29
+ }
30
+ has(key) {
31
+ return key in this.schema;
32
+ }
33
+ get(key) {
34
+ return this.schema[key];
35
+ }
36
+ delete(key) {
37
+ return delete this.schema[key];
38
+ }
39
+ generate() {
40
+ return Object.entries(this.schema).map(([target, schema]) => ({
41
+ target,
42
+ schema
43
+ }));
44
+ }
45
+ }
46
+ exports.Schema = Schema;
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "legacySchema", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _legacy.default;
10
+ }
11
+ });
12
+ exports.schema = void 0;
13
+ var _constants = require("@modern-js/utils/constants");
14
+ var _Schema = require("./Schema");
15
+ var _legacy = _interopRequireDefault(require("./legacy"));
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ const source = {
18
+ entries: {
19
+ type: 'object',
20
+ patternProperties: {
21
+ [_constants.ENTRY_NAME_PATTERN]: {
22
+ if: {
23
+ type: 'object'
24
+ },
25
+ then: {
26
+ required: ['entry'],
27
+ properties: {
28
+ entry: {
29
+ type: ['string', 'array']
30
+ },
31
+ disableMount: {
32
+ type: 'boolean'
33
+ },
34
+ enableFileSystemRoutes: {
35
+ type: 'boolean'
36
+ }
37
+ },
38
+ additionalProperties: false
39
+ },
40
+ else: {
41
+ type: ['string', 'array']
42
+ }
43
+ }
44
+ }
45
+ },
46
+ enableAsyncEntry: {
47
+ type: 'boolean'
48
+ },
49
+ disableDefaultEntries: {
50
+ type: 'boolean'
51
+ },
52
+ entriesDir: {
53
+ type: 'string'
54
+ },
55
+ configDir: {
56
+ type: 'string'
57
+ },
58
+ designSystem: {
59
+ type: 'object'
60
+ }
61
+ };
62
+ const bff = {
63
+ prefix: {
64
+ type: 'string'
65
+ },
66
+ proxy: {
67
+ type: 'object',
68
+ additionalProperties: {
69
+ type: 'string'
70
+ }
71
+ }
72
+ };
73
+ const output = {
74
+ ssg: {
75
+ typeof: ['boolean', 'object', 'function']
76
+ },
77
+ enableModernMode: {
78
+ type: 'boolean'
79
+ },
80
+ disableNodePolyfill: {
81
+ type: 'boolean'
82
+ }
83
+ };
84
+ const dev = {
85
+ proxy: {
86
+ type: ['boolean', 'object']
87
+ }
88
+ };
89
+ const server = {
90
+ routes: {
91
+ type: 'object'
92
+ },
93
+ publicRoutes: {
94
+ type: 'object'
95
+ },
96
+ ssr: {
97
+ type: ['boolean', 'object']
98
+ },
99
+ ssrByEntries: {
100
+ type: 'object'
101
+ },
102
+ baseUrl: {
103
+ anyOf: [{
104
+ type: 'string'
105
+ }, {
106
+ type: 'array',
107
+ items: {
108
+ type: 'string'
109
+ }
110
+ }]
111
+ },
112
+ port: {
113
+ type: 'number'
114
+ },
115
+ logger: {
116
+ type: ['boolean', 'object']
117
+ },
118
+ metrics: {
119
+ type: ['boolean', 'object']
120
+ },
121
+ enableMicroFrontendDebug: {
122
+ type: 'boolean'
123
+ },
124
+ watchOptions: {
125
+ type: 'object'
126
+ },
127
+ compiler: {
128
+ type: 'string'
129
+ },
130
+ disableFrameworkExt: {
131
+ type: 'boolean'
132
+ }
133
+ };
134
+ const tools = {
135
+ tailwindcss: {
136
+ type: 'object'
137
+ },
138
+ jest: {
139
+ typeof: ['object', 'function']
140
+ },
141
+ esbuild: {
142
+ typeof: ['object']
143
+ }
144
+ };
145
+ const deploy = {
146
+ microFrontend: {
147
+ type: ['boolean', 'object']
148
+ }
149
+ };
150
+ const schema = new _Schema.Schema();
151
+ exports.schema = schema;
152
+ schema.setSchema('bff', bff).setSchema('dev', dev).setSchema('server', server).setSchema('source', source).setSchema('output', output).setSchema('tools', tools).setSchema('deploy', deploy);