@equinor/echo-cli 1.0.3-beta-0 → 1.0.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 (186) hide show
  1. package/README.md +355 -354
  2. package/lib/__test__/utils/merg.test.d.ts +1 -0
  3. package/lib/__test__/utils/merg.test.js +29 -0
  4. package/lib/__test__/utils/merg.test.js.map +1 -0
  5. package/lib/config/common/buildAndCopyEchoHostForProd.d.ts +16 -0
  6. package/lib/config/common/buildAndCopyEchoHostForProd.js +38 -0
  7. package/lib/config/common/buildAndCopyEchoHostForProd.js.map +1 -0
  8. package/lib/config/common/echoManifest.d.ts +3 -0
  9. package/lib/config/common/echoManifest.js +45 -0
  10. package/lib/config/common/echoManifest.js.map +1 -0
  11. package/lib/config/common/echoModuleConfig.d.ts +31 -0
  12. package/lib/config/common/echoModuleConfig.js +34 -0
  13. package/lib/config/common/echoModuleConfig.js.map +1 -0
  14. package/lib/config/common/echoModuleId.d.ts +5 -0
  15. package/lib/config/common/echoModuleId.js +15 -0
  16. package/lib/config/common/echoModuleId.js.map +1 -0
  17. package/lib/config/common/extensions.d.ts +1 -0
  18. package/lib/config/common/extensions.js +2 -0
  19. package/lib/config/common/extensions.js.map +1 -0
  20. package/lib/config/common/getCurrentIndexFile.d.ts +2 -0
  21. package/lib/config/common/getCurrentIndexFile.js +11 -0
  22. package/lib/config/common/getCurrentIndexFile.js.map +1 -0
  23. package/lib/config/common/getPackageJson.d.ts +1 -0
  24. package/lib/config/common/getPackageJson.js +7 -0
  25. package/lib/config/common/getPackageJson.js.map +1 -0
  26. package/lib/config/common/https.d.ts +6 -0
  27. package/lib/config/common/https.js +16 -0
  28. package/lib/config/common/https.js.map +1 -0
  29. package/lib/config/common/initOptions.d.ts +26 -0
  30. package/lib/config/common/initOptions.js +32 -0
  31. package/lib/config/common/initOptions.js.map +1 -0
  32. package/lib/config/common/ssl.d.ts +7 -0
  33. package/lib/config/common/ssl.js +76 -0
  34. package/lib/config/common/ssl.js.map +1 -0
  35. package/lib/config/common/updateEnv.d.ts +6 -0
  36. package/lib/config/common/updateEnv.js +16 -0
  37. package/lib/config/common/updateEnv.js.map +1 -0
  38. package/lib/config/webpack/config.d.ts +3 -0
  39. package/lib/config/webpack/config.js +36 -0
  40. package/lib/config/webpack/config.js.map +1 -0
  41. package/lib/config/webpack/configBuilders/devServer.d.ts +8 -0
  42. package/lib/config/webpack/configBuilders/devServer.js +60 -0
  43. package/lib/config/webpack/configBuilders/devServer.js.map +1 -0
  44. package/lib/config/webpack/configBuilders/entry.d.ts +12 -0
  45. package/lib/config/webpack/configBuilders/entry.js +13 -0
  46. package/lib/config/webpack/configBuilders/entry.js.map +1 -0
  47. package/lib/config/webpack/configBuilders/module.d.ts +8 -0
  48. package/lib/config/webpack/configBuilders/module.js +124 -0
  49. package/lib/config/webpack/configBuilders/module.js.map +1 -0
  50. package/lib/config/webpack/configBuilders/optimization.d.ts +7 -0
  51. package/lib/config/webpack/configBuilders/optimization.js +30 -0
  52. package/lib/config/webpack/configBuilders/optimization.js.map +1 -0
  53. package/lib/config/webpack/configBuilders/output.d.ts +12 -0
  54. package/lib/config/webpack/configBuilders/output.js +20 -0
  55. package/lib/config/webpack/configBuilders/output.js.map +1 -0
  56. package/lib/config/webpack/configBuilders/plugins.d.ts +10 -0
  57. package/lib/config/webpack/configBuilders/plugins.js +29 -0
  58. package/lib/config/webpack/configBuilders/plugins.js.map +1 -0
  59. package/lib/config/webpack/echoWebpackModule.d.ts +2 -0
  60. package/lib/config/webpack/echoWebpackModule.js +47 -0
  61. package/lib/config/webpack/echoWebpackModule.js.map +1 -0
  62. package/lib/config/webpack/server.d.ts +3 -0
  63. package/lib/config/webpack/server.js +22 -0
  64. package/lib/config/webpack/server.js.map +1 -0
  65. package/lib/const/common.d.ts +6 -0
  66. package/lib/const/common.js +15 -0
  67. package/lib/const/common.js.map +1 -0
  68. package/lib/echo-build-dev-host.d.ts +6 -0
  69. package/lib/echo-build-dev-host.js +19 -0
  70. package/lib/echo-build-dev-host.js.map +1 -0
  71. package/lib/echo-build.d.ts +34 -0
  72. package/lib/echo-build.js +83 -0
  73. package/lib/echo-build.js.map +1 -0
  74. package/lib/echo-create.d.ts +16 -0
  75. package/lib/echo-create.js +35 -0
  76. package/lib/echo-create.js.map +1 -0
  77. package/lib/echo-dev-host/.env +29 -0
  78. package/lib/echo-dev-host/README.md +121 -0
  79. package/lib/echo-dev-host/babel.config.js +11 -0
  80. package/lib/echo-dev-host/env.sh +51 -0
  81. package/lib/echo-dev-host/jest.config.js +21 -0
  82. package/lib/echo-dev-host/package-lock.json +12555 -0
  83. package/lib/echo-dev-host/package.json +80 -0
  84. package/lib/echo-dev-host/public/env-config.js +17 -0
  85. package/lib/echo-dev-host/public/index.css +60 -0
  86. package/lib/echo-dev-host/public/index.html +21 -0
  87. package/lib/echo-dev-host/src/api/api-plants.ts +23 -0
  88. package/lib/echo-dev-host/src/app.css +12 -0
  89. package/lib/echo-dev-host/src/app.tsx +43 -0
  90. package/lib/echo-dev-host/src/components/Home/Home.tsx +23 -0
  91. package/lib/echo-dev-host/src/components/Home/home.module.css +38 -0
  92. package/lib/echo-dev-host/src/components/dummySearchPanel/DummySearchPanel.tsx +28 -0
  93. package/lib/echo-dev-host/src/components/dummySearchPanel/dummySearchPanel.module.css +13 -0
  94. package/lib/echo-dev-host/src/components/legend.tsx +3 -0
  95. package/lib/echo-dev-host/src/images/frontpage-brand-placeholder.jpg +0 -0
  96. package/lib/echo-dev-host/src/index.tsx +91 -0
  97. package/lib/echo-dev-host/src/setupTests.ts +25 -0
  98. package/lib/echo-dev-host/src/utils/plants.test.ts +33 -0
  99. package/lib/echo-dev-host/src/utils/plants.ts +12 -0
  100. package/lib/echo-dev-host/src/utils/setupSkipAuth.ts +43 -0
  101. package/lib/echo-dev-host/tsconfig.json +21 -0
  102. package/lib/echo-dev-host/webpack.config.js +145 -0
  103. package/lib/echo-manifest.d.ts +6 -0
  104. package/lib/echo-manifest.js +13 -0
  105. package/lib/echo-manifest.js.map +1 -0
  106. package/lib/tools/buildScripts/buildAndCopyDevHost.d.ts +29 -0
  107. package/lib/tools/buildScripts/buildAndCopyDevHost.js +135 -0
  108. package/lib/tools/buildScripts/buildAndCopyDevHost.js.map +1 -0
  109. package/lib/tools/buildScripts/webpackBuilds.d.ts +3 -0
  110. package/lib/tools/buildScripts/webpackBuilds.js +87 -0
  111. package/lib/tools/buildScripts/webpackBuilds.js.map +1 -0
  112. package/lib/tools/create/copyFile.d.ts +2 -0
  113. package/lib/tools/create/copyFile.js +16 -0
  114. package/lib/tools/create/copyFile.js.map +1 -0
  115. package/lib/tools/create/createProject.d.ts +2 -0
  116. package/lib/tools/create/createProject.js +83 -0
  117. package/lib/tools/create/createProject.js.map +1 -0
  118. package/lib/tools/create/createSetTargetDirectory.d.ts +1 -0
  119. package/lib/tools/create/createSetTargetDirectory.js +12 -0
  120. package/lib/tools/create/createSetTargetDirectory.js.map +1 -0
  121. package/lib/tools/create/getAppTemplateName.d.ts +1 -0
  122. package/lib/tools/create/getAppTemplateName.js +22 -0
  123. package/lib/tools/create/getAppTemplateName.js.map +1 -0
  124. package/lib/tools/create/gitInit.d.ts +1 -0
  125. package/lib/tools/create/gitInit.js +19 -0
  126. package/lib/tools/create/gitInit.js.map +1 -0
  127. package/lib/tools/create/promptOptions.d.ts +2 -0
  128. package/lib/tools/create/promptOptions.js +88 -0
  129. package/lib/tools/create/promptOptions.js.map +1 -0
  130. package/lib/tools/create/updatePackageConfig.d.ts +2 -0
  131. package/lib/tools/create/updatePackageConfig.js +28 -0
  132. package/lib/tools/create/updatePackageConfig.js.map +1 -0
  133. package/lib/tools/create/updateReadme.d.ts +2 -0
  134. package/lib/tools/create/updateReadme.js +23 -0
  135. package/lib/tools/create/updateReadme.js.map +1 -0
  136. package/lib/types/createTypes.d.ts +23 -0
  137. package/lib/types/createTypes.js +2 -0
  138. package/lib/types/createTypes.js.map +1 -0
  139. package/lib/types/types.d.ts +4 -0
  140. package/lib/types/types.js +2 -0
  141. package/lib/types/types.js.map +1 -0
  142. package/lib/update-echo-libs.d.ts +9 -0
  143. package/lib/update-echo-libs.js +188 -0
  144. package/lib/update-echo-libs.js.map +1 -0
  145. package/lib/utils/findConsumerAppPackageJson.d.ts +11 -0
  146. package/lib/utils/findConsumerAppPackageJson.js +55 -0
  147. package/lib/utils/findConsumerAppPackageJson.js.map +1 -0
  148. package/lib/utils/findTopLevelNodeModulesWithCli.d.ts +12 -0
  149. package/lib/utils/findTopLevelNodeModulesWithCli.js +28 -0
  150. package/lib/utils/findTopLevelNodeModulesWithCli.js.map +1 -0
  151. package/lib/utils/getFile.d.ts +34 -0
  152. package/lib/utils/getFile.js +72 -0
  153. package/lib/utils/getFile.js.map +1 -0
  154. package/lib/utils/getFilePath.d.ts +1 -0
  155. package/lib/utils/getFilePath.js +22 -0
  156. package/lib/utils/getFilePath.js.map +1 -0
  157. package/lib/utils/getLatestPkgVersion.d.ts +14 -0
  158. package/lib/utils/getLatestPkgVersion.js +30 -0
  159. package/lib/utils/getLatestPkgVersion.js.map +1 -0
  160. package/lib/utils/logo.d.ts +1 -0
  161. package/lib/utils/logo.js +12 -0
  162. package/lib/utils/logo.js.map +1 -0
  163. package/lib/utils/merge.d.ts +1 -0
  164. package/lib/utils/merge.js +8 -0
  165. package/lib/utils/merge.js.map +1 -0
  166. package/lib/utils/printEchoLibsVersions.d.ts +23 -0
  167. package/lib/utils/printEchoLibsVersions.js +162 -0
  168. package/lib/utils/printEchoLibsVersions.js.map +1 -0
  169. package/lib/utils/timer.d.ts +0 -0
  170. package/lib/utils/timer.js +2 -0
  171. package/lib/utils/timer.js.map +1 -0
  172. package/package.json +110 -110
  173. package/templates/echoAppTemplate/.gitattributes +3 -3
  174. package/templates/echoAppTemplate/package.json +35 -35
  175. package/templates/echoAppTemplate/readme.md +41 -41
  176. package/templates/echoAppTemplate/tsconfig.json +25 -25
  177. package/templates/echoAppTemplateTutorial/.gitattributes +3 -3
  178. package/templates/echoAppTemplateTutorial/package.json +36 -36
  179. package/templates/echoAppTemplateTutorial/readme.md +41 -41
  180. package/templates/echoAppTemplateTutorial/tsconfig.json +25 -25
  181. package/templates/echoLibraryTemplate/package.json +35 -35
  182. package/templates/echoLibraryTemplate/public/index.html +21 -21
  183. package/templates/echoLibraryTemplate/readme.md +1 -1
  184. package/templates/echoPluginTemplate/package.json +35 -35
  185. package/templates/echoPluginTemplate/public/index.html +21 -21
  186. package/templates/echoPluginTemplate/readme.md +1 -1
@@ -0,0 +1,60 @@
1
+ import express from 'express';
2
+ import * as path from 'path';
3
+ /**
4
+ * Defines options for the webpack dev server middleware.
5
+ * @param - Additional options (https://webpack.js.org/configuration/dev-server/)
6
+ * @returns {WebpackDevServerOptions} A settings object.
7
+ */
8
+ export function defineDevServer(current, root, modulePath, echoModuleConfig) {
9
+ const publicPath = path.join(current, 'build');
10
+ const { port, host, open, logging } = echoModuleConfig.server;
11
+ const { stats } = echoModuleConfig.devMiddleware;
12
+ return {
13
+ host,
14
+ port,
15
+ static: [
16
+ {
17
+ directory: root,
18
+ serveIndex: true,
19
+ publicPath: '/'
20
+ },
21
+ {
22
+ directory: publicPath,
23
+ watch: true
24
+ }
25
+ ],
26
+ hot: true,
27
+ liveReload: true,
28
+ devMiddleware: {
29
+ writeToDisk: true,
30
+ publicPath,
31
+ index: true,
32
+ stats
33
+ },
34
+ server: {
35
+ type: 'https'
36
+ },
37
+ setupMiddlewares: (middlewares, devServer) => {
38
+ if (!devServer.app) {
39
+ throw new Error('webpack-dev-server is not defined');
40
+ }
41
+ devServer.app.use('/', [express.static(root), express.static(publicPath)]);
42
+ middlewares.push({
43
+ path: '*',
44
+ middleware: (req, res) => res.sendFile(root + '/index.html')
45
+ });
46
+ return middlewares;
47
+ },
48
+ client: {
49
+ // overlay: {
50
+ // errors: true,
51
+ // warnings: false
52
+ // },
53
+ logging
54
+ },
55
+ historyApiFallback: true,
56
+ open,
57
+ compress: true
58
+ };
59
+ }
60
+ //# sourceMappingURL=devServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devServer.js","sourceRoot":"","sources":["../../../../src/config/webpack/configBuilders/devServer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC3B,OAAe,EACf,IAAY,EACZ,UAAkB,EAClB,gBAAkC;IAElC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC;IAEjD,OAAO;QACH,IAAI;QACJ,IAAI;QACJ,MAAM,EAAE;YACJ;gBACI,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,GAAG;aAClB;YACD;gBACI,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,IAAI;aACd;SACJ;QACD,GAAG,EAAE,IAAI;QACT,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE;YACX,WAAW,EAAE,IAAI;YACjB,UAAU;YACV,KAAK,EAAE,IAAI;YACX,KAAK;SACR;QACD,MAAM,EAAE;YACJ,IAAI,EAAE,OAAO;SAChB;QACD,gBAAgB,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACzD,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3E,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;aAC/D,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,MAAM,EAAE;YACJ,aAAa;YACb,oBAAoB;YACpB,sBAAsB;YACtB,KAAK;YACL,OAAO;SACV;QACD,kBAAkB,EAAE,IAAI;QACxB,IAAI;QACJ,QAAQ,EAAE,IAAI;KACjB,CAAC;AACN,CAAC"}
@@ -0,0 +1,12 @@
1
+ export interface EntryOptions {
2
+ currentDir: string;
3
+ source: string;
4
+ }
5
+ /**
6
+ * Defines the WebpackEntry config with polyfills.
7
+ *
8
+ * @export
9
+ * @param {EntryOptions} { currentDir, main } current project directory and main from package.json
10
+ * @return {*} {string}
11
+ */
12
+ export declare function defineEntry({ currentDir, source }: EntryOptions): string;
@@ -0,0 +1,13 @@
1
+ import { getSrcFilePath } from '../../common/getCurrentIndexFile.js';
2
+ /**
3
+ * Defines the WebpackEntry config with polyfills.
4
+ *
5
+ * @export
6
+ * @param {EntryOptions} { currentDir, main } current project directory and main from package.json
7
+ * @return {*} {string}
8
+ */
9
+ export function defineEntry({ currentDir, source }) {
10
+ return getSrcFilePath(currentDir, source);
11
+ }
12
+ //'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000'
13
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../../src/config/webpack/configBuilders/entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAOrE;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,UAAU,EAAE,MAAM,EAAgB;IAC5D,OAAO,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AACD,mEAAmE"}
@@ -0,0 +1,8 @@
1
+ import { ModuleOptions } from 'webpack';
2
+ /**
3
+ *
4
+ *
5
+ * @export
6
+ * @return {*} {ModuleOptions}
7
+ */
8
+ export declare function defineModule(excludeTsLoader?: boolean): ModuleOptions;
@@ -0,0 +1,124 @@
1
+ // More info:
2
+ // https://webpack.js.org/configuration/module/
3
+ /**
4
+ *
5
+ * Defines a rule set for ts-loader targeting ts and tsx files,
6
+ * @return {*} {RuleSetRule} ts-loader rules
7
+ */
8
+ function defineTsLoader() {
9
+ return {
10
+ test: /\.(ts|tsx)$/,
11
+ loader: 'ts-loader',
12
+ exclude: /node_modules/,
13
+ options: {
14
+ compilerOptions: {
15
+ noEmit: false,
16
+ jsx: 'react-jsx'
17
+ }
18
+ }
19
+ };
20
+ }
21
+ /**
22
+ * Defines a RuleSetRule for bundling global CSS.
23
+ * @returns {RuleSetRule} Global CSS bundling rules.
24
+ */
25
+ function defineGlobalCSS() {
26
+ // Handles any bits of third party CSS and whatever we define.
27
+ /**@type RuleSetRule */
28
+ return {
29
+ test: /\.css$/,
30
+ use: [{ loader: 'style-loader' }, { loader: 'css-loader' }],
31
+ exclude: /\.module\.css$/
32
+ };
33
+ }
34
+ /**
35
+ * Defines a RuleSetRule for bundling global CSS.
36
+ * @returns {RuleSetRule} Global CSS bundling rules.
37
+ */
38
+ function defineModuleCSS() {
39
+ return {
40
+ test: /\.css$/,
41
+ use: [
42
+ 'style-loader',
43
+ {
44
+ loader: 'css-loader',
45
+ options: {
46
+ importLoaders: 1,
47
+ modules: {
48
+ mode: 'local',
49
+ localIdentName: 'echo-[folder]__[local]-[hash:base64:5]',
50
+ namedExport: false,
51
+ exportLocalsConvention: 'as-is'
52
+ }
53
+ }
54
+ }
55
+ ],
56
+ include: /\.module\.css$/
57
+ };
58
+ }
59
+ /**
60
+ * Defines a RuleSetRule for bundling images.
61
+ * @returns {RuleSetRule} Image bundling rules.
62
+ */
63
+ function defineImages() {
64
+ return {
65
+ test: /\.(png|jpg|gif|jpeg)$/,
66
+ type: 'asset/resource',
67
+ generator: {
68
+ filename: 'resources/images/[name].[ext]'
69
+ }
70
+ };
71
+ }
72
+ /**
73
+ * Defines a RuleSetRule for bundling worker.
74
+ * @returns {RuleSetRule} Worker resources.
75
+ */
76
+ function defineWorkers() {
77
+ return {
78
+ test: /\.worker\.(c|m)?ts$/i,
79
+ use: [
80
+ {
81
+ loader: 'worker-loader'
82
+ },
83
+ {
84
+ loader: 'babel-loader',
85
+ options: {
86
+ presets: ['@babel/preset-env']
87
+ }
88
+ }
89
+ ]
90
+ };
91
+ }
92
+ /**
93
+ *
94
+ *
95
+ * @return {*} {RuleSetRule} SVG rules
96
+ */
97
+ function defineSvg() {
98
+ return {
99
+ test: /\.svg$/,
100
+ type: 'asset/inline'
101
+ };
102
+ }
103
+ /**
104
+ *
105
+ *
106
+ * @export
107
+ * @return {*} {ModuleOptions}
108
+ */
109
+ export function defineModule(excludeTsLoader) {
110
+ const tsLoader = defineTsLoader();
111
+ const images = defineImages();
112
+ const svg = defineSvg();
113
+ const moduleCSS = defineModuleCSS();
114
+ const globalCSS = defineGlobalCSS();
115
+ const worker = defineWorkers();
116
+ const rules = [moduleCSS, globalCSS, worker, svg, images];
117
+ if (!excludeTsLoader) {
118
+ rules.push(tsLoader);
119
+ }
120
+ return {
121
+ rules
122
+ };
123
+ }
124
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/config/webpack/configBuilders/module.ts"],"names":[],"mappings":"AAEA,aAAa;AACb,+CAA+C;AAE/C;;;;GAIG;AACH,SAAS,cAAc;IACnB,OAAO;QACH,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE;YACL,eAAe,EAAE;gBACb,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,WAAW;aACnB;SACJ;KACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe;IACpB,+DAA+D;IAC/D,uBAAuB;IACvB,OAAO;QACH,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAC3D,OAAO,EAAE,gBAAgB;KAC5B,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe;IACpB,OAAO;QACH,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE;YACD,cAAc;YACd;gBACI,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE;oBACL,aAAa,EAAE,CAAC;oBAChB,OAAO,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,cAAc,EAAE,wCAAwC;wBACxD,WAAW,EAAE,KAAK;wBAClB,sBAAsB,EAAE,OAAO;qBAClC;iBACJ;aACJ;SACJ;QACD,OAAO,EAAE,gBAAgB;KAC5B,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY;IACjB,OAAO;QACH,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE;YACP,QAAQ,EAAE,+BAA+B;SAC5C;KACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa;IAClB,OAAO;QACH,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE;YACD;gBACI,MAAM,EAAE,eAAe;aAC1B;YACD;gBACI,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE;oBACL,OAAO,EAAE,CAAC,mBAAmB,CAAC;iBACjC;aACJ;SACJ;KACJ,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS;IACd,OAAO;QACH,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,cAAc;KACvB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,eAAyB;IAClD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1D,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACH,KAAK;KACR,CAAC;AACN,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Defines a Webpack Optimization config object.
3
+ * https://webpack.js.org/configuration/optimization/
4
+ * @param {"dev"|"prod"|"test"|undefined} env The environment identifier.
5
+ * @returns {Optimization} Optimization
6
+ */
7
+ export declare function defineOptimizations(isProduction: boolean): Record<string, unknown>;
@@ -0,0 +1,30 @@
1
+ import TerserPlugin from 'terser-webpack-plugin';
2
+ /**
3
+ * Defines a Webpack Optimization config object.
4
+ * https://webpack.js.org/configuration/optimization/
5
+ * @param {"dev"|"prod"|"test"|undefined} env The environment identifier.
6
+ * @returns {Optimization} Optimization
7
+ */
8
+ export function defineOptimizations(isProduction) {
9
+ return isProduction
10
+ ? {
11
+ minimizer: [
12
+ new TerserPlugin({
13
+ terserOptions: {
14
+ // warnings: false,
15
+ ie8: false,
16
+ output: {
17
+ comments: /^@echo-module/
18
+ }
19
+ }
20
+ })
21
+ ]
22
+ // splitChunks: {
23
+ // chunks: 'all'
24
+ // }
25
+ }
26
+ : {
27
+ minimize: false
28
+ };
29
+ }
30
+ //# sourceMappingURL=optimization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimization.js","sourceRoot":"","sources":["../../../../src/config/webpack/configBuilders/optimization.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAqB;IACrD,OAAO,YAAY;QACf,CAAC,CAAC;YACI,SAAS,EAAE;gBACP,IAAI,YAAY,CAAC;oBACb,aAAa,EAAE;wBACX,qBAAqB;wBACrB,GAAG,EAAE,KAAK;wBACV,MAAM,EAAE;4BACJ,QAAQ,EAAE,eAAe;yBAC5B;qBACJ;iBACJ,CAAC;aACL;YACD,mBAAmB;YACnB,sBAAsB;YACtB,MAAM;SACT;QACH,CAAC,CAAC;YACI,QAAQ,EAAE,KAAK;SAClB,CAAC;AACZ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { EchoWebpackOptions } from '../../common/initOptions.js';
2
+ type LibraryTarget = 'var' | 'assign' | 'this' | 'window' | 'global' | 'commonjs' | 'commonjs2' | 'amd' | 'umd' | 'jsonp' | 'system';
3
+ export interface Output {
4
+ path: string;
5
+ filename: string;
6
+ libraryTarget: LibraryTarget;
7
+ library: string;
8
+ clean: boolean;
9
+ }
10
+ export declare function defineOutput(options: EchoWebpackOptions): Output;
11
+ export declare function getFileName(filePath: string): string;
12
+ export {};
@@ -0,0 +1,20 @@
1
+ import path from 'path';
2
+ export function defineOutput(options) {
3
+ const { manifest, chunk } = options.echoModuleConfig;
4
+ const shortName = manifest.shortName;
5
+ return {
6
+ clean: options.isProduction,
7
+ path: path.join(options.currentDir, 'build'),
8
+ filename: chunk ? `${shortName}-main.js` : getFileName(options.main), //`${shortName}.echo.bundle.js`,
9
+ library: shortName,
10
+ libraryTarget: 'umd'
11
+ // chunkFilename: `${shortName}.[contenthash].chunk.js`,
12
+ // publicPath: options.isProduction ? '/' : `https://${server.host}:${server.port}/`
13
+ };
14
+ }
15
+ export function getFileName(filePath) {
16
+ const arr = filePath.split('/');
17
+ const fileName = arr[arr.length - 1];
18
+ return fileName;
19
+ }
20
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../src/config/webpack/configBuilders/output.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AA0BxB,MAAM,UAAU,YAAY,CAAC,OAA2B;IACpD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAErD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,OAAO;QACH,KAAK,EAAE,OAAO,CAAC,YAAY;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;QAC5C,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,gCAAgC;QACtG,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,KAAK;QACpB,wDAAwD;QACxD,oFAAoF;KACvF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Compiler, WebpackPluginInstance } from 'webpack';
2
+ import { EchoWebpackOptions } from '../../common/initOptions.js';
3
+ type WebpackPlugin = ((this: Compiler, compiler: Compiler) => void) | WebpackPluginInstance;
4
+ /**
5
+ * Creates an array of webpack plugins that will be used in the build process.
6
+ * @param {"dev"|"remote"} env
7
+ * @returns {WebpackPlugin[]}
8
+ */
9
+ export declare function definePlugins(options: EchoWebpackOptions): WebpackPlugin[];
10
+ export {};
@@ -0,0 +1,29 @@
1
+ import Dotenv from 'dotenv-webpack';
2
+ import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
3
+ import { echoWebpackModulePlugin } from '../echoWebpackModule.js';
4
+ /**
5
+ * Creates an array of webpack plugins that will be used in the build process.
6
+ * @param {"dev"|"remote"} env
7
+ * @returns {WebpackPlugin[]}
8
+ */
9
+ export function definePlugins(options) {
10
+ const { envPath, analyze } = options;
11
+ const plugins = [
12
+ new Dotenv({
13
+ ignoreStub: false,
14
+ expand: true,
15
+ systemvars: true,
16
+ path: envPath
17
+ }),
18
+ echoWebpackModulePlugin(options)
19
+ ];
20
+ if (analyze) {
21
+ plugins.push(new BundleAnalyzerPlugin({
22
+ analyzerPort: options.echoModuleConfig.server.port,
23
+ openAnalyzer: options.echoModuleConfig.server.open,
24
+ analyzerHost: options.echoModuleConfig.server.host
25
+ }));
26
+ }
27
+ return plugins;
28
+ }
29
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../src/config/webpack/configBuilders/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIlE;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAA2B;IACrD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACrC,MAAM,OAAO,GAAG;QACZ,IAAI,MAAM,CAAC;YACP,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,OAAO;SAChB,CAAC;QACF,uBAAuB,CAAC,OAAO,CAAC;KACnC,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CACR,IAAI,oBAAoB,CAAC;YACrB,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI;YAClD,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI;YAClD,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI;SACrD,CAAC,CACL,CAAC;IACN,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { EchoWebpackOptions } from '../common/initOptions.js';
2
+ export declare function echoWebpackModulePlugin(options: EchoWebpackOptions): any;
@@ -0,0 +1,47 @@
1
+ import ReplaceInFileWebpackPlugin from 'replace-in-file-webpack-plugin';
2
+ import { REQUIRED_REF } from '../../const/common.js';
3
+ import { getFileName } from './configBuilders/output.js';
4
+ const devModuleCode = `(function webpackUniversalModuleDefinition(root, factory) {
5
+ /* Echo Module definition */
6
+ function define(dependencies, factory){
7
+ const echoModule = factory(...dependencies.map(window["${REQUIRED_REF}"]));
8
+ typeof document!=='undefined' && (document.currentScript.module = echoModule);
9
+ }
10
+ define.amd=!0;`;
11
+ export function echoWebpackModulePlugin(options) {
12
+ const file = options.echoModuleConfig.chunk
13
+ ? `${options.echoModuleConfig.manifest.shortName}-main.js`
14
+ : getFileName(options.main);
15
+ return new ReplaceInFileWebpackPlugin([
16
+ {
17
+ dir: './build',
18
+ files: [file],
19
+ rules: options.isProduction
20
+ ? [
21
+ {
22
+ search: /^\!function\s?\(e,\s?t\)\s?\{/m,
23
+ replace: `!function(e,t){function define(d,t){const echoModule = t(...d.map(window["${REQUIRED_REF}"])); typeof document!=='undefined' && (document.currentScript.module = echoModule);}define.amd=!0;`
24
+ },
25
+ {
26
+ search: /^\!function\s?\(t,\s?e\)\s?\{/m,
27
+ replace: `!function(t,e){function define(d,e){const echoModule = e(...d.map(window["${REQUIRED_REF}"])); typeof document!=='undefined' && (document.currentScript.module = echoModule);}define.amd=!0;`
28
+ },
29
+ {
30
+ search: /^\!function\s?\(e,\s?n\)\s?\{/m,
31
+ replace: `!function(e,n){function define(d,n){const echoModule = n(...d.map(window["${REQUIRED_REF}"])); typeof document!=='undefined' && (document.currentScript.module = echoModule);}define.amd=!0;`
32
+ },
33
+ {
34
+ search: /^\!function\s?\(e,\s?r\)\s?\{/m,
35
+ replace: `!function(e,r){function define(d,r){const echoModule = r(...d.map(window["${REQUIRED_REF}"])); typeof document!=='undefined' && (document.currentScript.module = echoModule);}define.amd=!0;`
36
+ }
37
+ ]
38
+ : [
39
+ {
40
+ search: /^\(function\s?webpackUniversalModuleDefinition\(root,\s?factory\)\s?\{/m,
41
+ replace: devModuleCode
42
+ }
43
+ ]
44
+ }
45
+ ]);
46
+ }
47
+ //# sourceMappingURL=echoWebpackModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echoWebpackModule.js","sourceRoot":"","sources":["../../../src/config/webpack/echoWebpackModule.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,aAAa,GAAG;;;6DAGuC,YAAY;;;eAG1D,CAAC;AAEhB,MAAM,UAAU,uBAAuB,CAAC,OAA2B;IAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK;QACvC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,UAAU;QAC1D,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,IAAI,0BAA0B,CAAC;QAClC;YACI,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,OAAO,CAAC,YAAY;gBACvB,CAAC,CAAC;oBACI;wBACI,MAAM,EAAE,gCAAgC;wBACxC,OAAO,EAAE,6EAA6E,YAAY,qGAAqG;qBAC1M;oBACD;wBACI,MAAM,EAAE,gCAAgC;wBACxC,OAAO,EAAE,6EAA6E,YAAY,qGAAqG;qBAC1M;oBACD;wBACI,MAAM,EAAE,gCAAgC;wBACxC,OAAO,EAAE,6EAA6E,YAAY,qGAAqG;qBAC1M;oBACD;wBACI,MAAM,EAAE,gCAAgC;wBACxC,OAAO,EAAE,6EAA6E,YAAY,qGAAqG;qBAC1M;iBACJ;gBACH,CAAC,CAAC;oBACI;wBACI,MAAM,EAAE,yEAAyE;wBACjF,OAAO,EAAE,aAAa;qBACzB;iBACJ;SACV;KACJ,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Compiler } from 'webpack';
2
+ import { EchoWebpackOptions } from '../common/initOptions.js';
3
+ export declare function devServer(compiler: Compiler, options: EchoWebpackOptions): void;
@@ -0,0 +1,22 @@
1
+ import WebpackDevServer from 'webpack-dev-server';
2
+ import { merge } from 'webpack-merge';
3
+ import { defineDevServer } from './configBuilders/devServer.js';
4
+ export function devServer(compiler, options) {
5
+ const defaultDevServerOptions = defineDevServer(options.currentDir, options.wwwRoot, options.echoModuleConfig.manifest.path, options.echoModuleConfig);
6
+ let devServerOptionsToUse = defaultDevServerOptions;
7
+ if (compiler.options.devServer) {
8
+ console.log('EchoCli: Merging devServer values with custom config');
9
+ // Override any default devServer configs with the config in the project webpack.config.js
10
+ devServerOptionsToUse = merge(defaultDevServerOptions, compiler.options.devServer);
11
+ }
12
+ const server = new WebpackDevServer(devServerOptionsToUse, compiler);
13
+ server.startCallback((err) => {
14
+ if (err) {
15
+ console.error('Failed to start webpack dev-server: ' + err);
16
+ }
17
+ else {
18
+ console.log(`Starting webpack dev server on https://${devServerOptionsToUse.host}:${devServerOptionsToUse.port}`);
19
+ }
20
+ });
21
+ }
22
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/config/webpack/server.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,UAAU,SAAS,CAAC,QAAkB,EAAE,OAA2B;IACrE,MAAM,uBAAuB,GAAG,eAAe,CAC3C,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EACtC,OAAO,CAAC,gBAAgB,CAC3B,CAAC;IAEF,IAAI,qBAAqB,GAAG,uBAAuB,CAAC;IACpD,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,0FAA0F;QAC1F,qBAAqB,GAAG,KAAK,CAAC,uBAAuB,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAErE,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CACP,0CAA0C,qBAAqB,CAAC,IAAI,IAAI,qBAAqB,CAAC,IAAI,EAAE,CACvG,CAAC;QACN,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const REQUIRED_REF = "echoDepLoader";
2
+ export declare const ECHO_MODULE_ID_PATH = "/echoModuleId.json";
3
+ export declare const ECHO_MODULE_CONFIG_PATH = "/echoModule.config.json";
4
+ export declare const ECHO_HOST_BUILD_OUTPUT_FOLDER = "echo-dev-host-build";
5
+ export declare const ECHO_HOST_TEMP_BUILD_FOLDER = "echo-dev-host-tmp";
6
+ export declare const SUPPORTED_ECHO_LIBS: Readonly<Readonly<string>[]>;
@@ -0,0 +1,15 @@
1
+ export const REQUIRED_REF = 'echoDepLoader';
2
+ export const ECHO_MODULE_ID_PATH = '/echoModuleId.json';
3
+ export const ECHO_MODULE_CONFIG_PATH = '/echoModule.config.json';
4
+ export const ECHO_HOST_BUILD_OUTPUT_FOLDER = 'echo-dev-host-build';
5
+ export const ECHO_HOST_TEMP_BUILD_FOLDER = 'echo-dev-host-tmp';
6
+ export const SUPPORTED_ECHO_LIBS = [
7
+ '@equinor/echo-base',
8
+ '@equinor/echo-core',
9
+ '@equinor/echo-utils',
10
+ '@equinor/echo-search',
11
+ '@equinor/echo-components',
12
+ '@equinor/echo-framework',
13
+ '@equinor/echo-cli'
14
+ ];
15
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/const/common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAiC;IAC7D,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,0BAA0B;IAC1B,yBAAyB;IACzB,mBAAmB;CACtB,CAAC"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from '@oclif/core';
3
+ export default class BuildDevHost extends Command {
4
+ static description: string;
5
+ run(): Promise<void>;
6
+ }
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from '@oclif/core';
3
+ import path from 'path';
4
+ import { ECHO_HOST_BUILD_OUTPUT_FOLDER, ECHO_HOST_TEMP_BUILD_FOLDER } from './const/common.js';
5
+ import { buildAndCopyDevHost } from './tools/buildScripts/buildAndCopyDevHost.js';
6
+ export default class BuildDevHost extends Command {
7
+ static description = 'Build echo-dev-host locally with current echo lib versions';
8
+ async run() {
9
+ const cliNodeModules = path.resolve(process.cwd(), 'node_modules', '@equinor', 'echo-cli');
10
+ const finalOutput = path.join(cliNodeModules, ECHO_HOST_BUILD_OUTPUT_FOLDER);
11
+ await buildAndCopyDevHost({
12
+ cliNodeModules,
13
+ tmpDevHostFolder: path.resolve(process.cwd(), ECHO_HOST_TEMP_BUILD_FOLDER),
14
+ finalOutputDir: finalOutput
15
+ });
16
+ }
17
+ }
18
+ BuildDevHost.run();
19
+ //# sourceMappingURL=echo-build-dev-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echo-build-dev-host.js","sourceRoot":"","sources":["../src/echo-build-dev-host.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,GAAG,4DAA4D,CAAC;IAElF,KAAK,CAAC,GAAG;QACL,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;QAE7E,MAAM,mBAAmB,CAAC;YACtB,cAAc;YACd,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,2BAA2B,CAAC;YAC1E,cAAc,EAAE,WAAW;SAC9B,CAAC,CAAC;IACP,CAAC;;AAGL,YAAY,CAAC,GAAG,EAAE,CAAC"}
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from '@oclif/core';
3
+ /**
4
+ * @class CreateBundle
5
+ * @extends Command
6
+ * @description
7
+ * Command-line utility for creating an Echo Bundle. This command provides options to serve the Echo Client,
8
+ * build in development mode, copy the client to the build folder, and analyze the bundle with an interactive treemap.
9
+ *
10
+ * @flags
11
+ * - `--serve, -s`: Add the serve Echo Client with the app.
12
+ * - `--isDevelopment, -d`: Build in development mode (production is default).
13
+ * - `--copy, -c`: Copy the client to the build folder.
14
+ * - `--analyze, -b`: Analyze the bundle with an interactive treemap.
15
+ *
16
+ * @remarks
17
+ * The command checks for the presence of the `echo-dev-host` folder before proceeding.
18
+ * If not found, it prompts the user to build it. It also prints the versions of echo libraries used by the dev host.
19
+ *
20
+ * @example
21
+ * ```sh
22
+ * npx echo-build --serve --isDevelopment
23
+ * ```
24
+ */
25
+ export default class CreateBundle extends Command {
26
+ static description: string;
27
+ static flags: {
28
+ serve: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
29
+ isDevelopment: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
30
+ copy: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
31
+ analyze: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
32
+ };
33
+ run(): Promise<void>;
34
+ }
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env node
2
+ import { Command, Flags } from '@oclif/core';
3
+ import chalk from 'chalk';
4
+ import fs from 'fs-extra';
5
+ import path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+ import { ECHO_HOST_BUILD_OUTPUT_FOLDER } from './const/common.js';
8
+ import { echoWebpackBuild } from './tools/buildScripts/webpackBuilds.js';
9
+ import { findConsumerAppPackageJson } from './utils/findConsumerAppPackageJson.js';
10
+ import { echoCliLogo } from './utils/logo.js';
11
+ import { printEchoLibsVersions } from './utils/printEchoLibsVersions.js';
12
+ /**
13
+ * @class CreateBundle
14
+ * @extends Command
15
+ * @description
16
+ * Command-line utility for creating an Echo Bundle. This command provides options to serve the Echo Client,
17
+ * build in development mode, copy the client to the build folder, and analyze the bundle with an interactive treemap.
18
+ *
19
+ * @flags
20
+ * - `--serve, -s`: Add the serve Echo Client with the app.
21
+ * - `--isDevelopment, -d`: Build in development mode (production is default).
22
+ * - `--copy, -c`: Copy the client to the build folder.
23
+ * - `--analyze, -b`: Analyze the bundle with an interactive treemap.
24
+ *
25
+ * @remarks
26
+ * The command checks for the presence of the `echo-dev-host` folder before proceeding.
27
+ * If not found, it prompts the user to build it. It also prints the versions of echo libraries used by the dev host.
28
+ *
29
+ * @example
30
+ * ```sh
31
+ * npx echo-build --serve --isDevelopment
32
+ * ```
33
+ */
34
+ export default class CreateBundle extends Command {
35
+ static description = 'Creates Echo Bundle';
36
+ static flags = {
37
+ serve: Flags.boolean({
38
+ char: 's',
39
+ description: 'Add the serve Echo Client with app'
40
+ }),
41
+ isDevelopment: Flags.boolean({
42
+ char: 'd',
43
+ description: 'Production is default, add -d flag for development'
44
+ }),
45
+ copy: Flags.boolean({
46
+ char: 'c',
47
+ description: 'Will copy the client to the build folder'
48
+ }),
49
+ analyze: Flags.boolean({
50
+ char: 'b',
51
+ description: 'Provides an interactive treemap to inspect the bundle'
52
+ })
53
+ };
54
+ async run() {
55
+ const options = await this.parse(CreateBundle);
56
+ const __filename = fileURLToPath(import.meta.url);
57
+ const __dirname = path.dirname(__filename);
58
+ const echoDevHostBuildPath = path.resolve(__dirname, `../${ECHO_HOST_BUILD_OUTPUT_FOLDER}`);
59
+ if (options.flags.isDevelopment && !fs.existsSync(echoDevHostBuildPath)) {
60
+ this.log(chalk.red(`\n[echo-cli] Did you forget to run: 'npx build-echo-dev-host' ?\n`));
61
+ this.log(chalk.red(`\n[echo-cli] Could not start development server: The ${ECHO_HOST_BUILD_OUTPUT_FOLDER} folder was not found at ${echoDevHostBuildPath}.\n` +
62
+ 'Please ensure echo-dev-host is built and present in node_modules/@equinor/echo-cli before running this command.\n'));
63
+ process.exit(1);
64
+ }
65
+ echoCliLogo();
66
+ console.log(chalk.cyan('echo-cli uses echo-dev-host as a minimalistic host application for local development of Echo applications'));
67
+ if (options.flags.isDevelopment) {
68
+ console.log(chalk.hex('#FFA500')('\nTo rebuild the echo dev host for local development, run:\n' + ' npx build-echo-dev-host\n'));
69
+ console.log(chalk.hex('#FFA500')('To update your echo library dependencies to the latest versions, run:\n' +
70
+ ' npx update-echo-libs\n'));
71
+ const appPkgPath = findConsumerAppPackageJson(process.cwd());
72
+ if (appPkgPath) {
73
+ await printEchoLibsVersions({
74
+ devHostPkgPath: path.resolve(path.resolve(__dirname, './echo-dev-host'), 'package.json'),
75
+ appPkgPath
76
+ });
77
+ }
78
+ }
79
+ await echoWebpackBuild(options.flags, options.flags.isDevelopment);
80
+ }
81
+ }
82
+ CreateBundle.run();
83
+ //# sourceMappingURL=echo-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echo-build.js","sourceRoot":"","sources":["../src/echo-build.ts"],"names":[],"mappings":"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"}