@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,16 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from '@oclif/core';
3
+ export default class CreateApp extends Command {
4
+ static description: string;
5
+ static flags: {
6
+ description: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ git: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
+ help: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<void>;
9
+ install: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ key: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ name: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ shortName: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ templateName: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ };
15
+ run(): Promise<void>;
16
+ }
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+ import { Command, Flags } from '@oclif/core';
3
+ import { createProject } from './tools/create/createProject.js';
4
+ import { promptForMissingOptions } from './tools/create/promptOptions.js';
5
+ import { echoCliLogo } from './utils/logo.js';
6
+ export default class CreateApp extends Command {
7
+ static description = 'Creates a new Echo app';
8
+ static flags = {
9
+ description: Flags.string({ char: 'd', description: 'App description' }),
10
+ git: Flags.boolean({ char: 'g', description: 'Initialize git repository' }),
11
+ help: Flags.help({ char: 'h' }),
12
+ install: Flags.boolean({
13
+ char: 'i',
14
+ description: 'Install dev dependencies'
15
+ }),
16
+ key: Flags.string({ char: 'k', description: 'Key for app/tile' }),
17
+ name: Flags.string({
18
+ char: 'n',
19
+ description: 'Name for app/tile(use quotes for spaces)'
20
+ }),
21
+ shortName: Flags.string({ char: 'N', description: 'App short name' }),
22
+ templateName: Flags.string({
23
+ char: 't',
24
+ description: 'App template to use'
25
+ })
26
+ };
27
+ async run() {
28
+ const parsed = await this.parse(CreateApp);
29
+ echoCliLogo();
30
+ const options = await promptForMissingOptions(parsed.flags);
31
+ await createProject(options);
32
+ }
33
+ }
34
+ CreateApp.run();
35
+ //# sourceMappingURL=echo-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echo-create.js","sourceRoot":"","sources":["../src/echo-create.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IACnC,MAAM,CAAC,WAAW,GAAG,wBAAwB,CAAC;IAE9C,MAAM,CAAC,KAAK,GAAG;QAClB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;QACxE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;QAC3E,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0BAA0B;SAC1C,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;QACjE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0CAA0C;SAC1D,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACrE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,qBAAqB;SACrC,CAAC;KACL,CAAC;IAEK,KAAK,CAAC,GAAG;QACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,WAAW,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;;AAGL,SAAS,CAAC,GAAG,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ /* eslint-disable */
2
+
3
+ Never use PROCESS.ENV/process.env use env() instead. (Except for process.env.NODE_ENV)
4
+ ---------------------------------
5
+
6
+ Based on: https://www.freecodecamp.org/news/how-to-implement-runtime-environment-variables-with-create-react-app-docker-and-nginx-7f9d42a91d70/
7
+
8
+ All variables in this files are converted to env() during build, and values here are replaced
9
+ by environment variables if they exists. This is done by running the env.sh bash script before the
10
+ build.
11
+
12
+ env.sh generates env-config.js containing all the variables, which is included in index.html,
13
+ and appended to Window._env_. env() is a shortcut for Window._env_ and should be used in code.
14
+
15
+ NOTE: Seems like window._env_ is not available in a worker
16
+
17
+ */
18
+ WEBSITE_HOSTNAME=localhost:3000;
19
+ REACT_APP_DEFAULT_CACHE_LOCATION=localstorage
20
+ REACT_APP_API_URL=https://dt-echopedia-api-dev.azurewebsites.net
21
+ REACT_APP_WEB_URL=https://dt-echopedia-web-dev.azurewebsites.net
22
+ REACT_APP_WEB_PROD_URL=https://echo.equinor.com
23
+ REACT_APP_AZURE_AD_TENNANT=StatoilSRM.onmicrosoft.com
24
+ REACT_APP_AZURE_AD_TENNANT_ID=3aa4a235-b6e2-48d5-9195-7fcf05b459b0
25
+ REACT_APP_AZURE_AD_CLIENT_ID=751d2504-0b66-4b78-9807-4b60525a14c6
26
+ REACT_APP_API_CLIENT_ID=aef35d97-53d4-4fd0-adaf-c5a514b38436
27
+ REACT_APP_APPINSIGHTS_CONNECTION_STRING=InstrumentationKey=e5299075-a00d-4012-96f9-42861e8d8a9e;IngestionEndpoint=https://northeurope-3.in.applicationinsights.azure.com/;LiveEndpoint=https://northeurope.livediagnostics.monitor.azure.com/;ApplicationId=a9b64222-d4a9-42e6-a615-7428fe1a26af
28
+ REACT_APP_AZURE_BUILD_NUMBER=0.8.dev.9
29
+ REACT_APP_LOGGER_ACTIVE=false
@@ -0,0 +1,121 @@
1
+ # echo-dev-host
2
+
3
+ **echo-dev-host** is a lightweight host application for developing and testing Echo Modules locally. It is shipped as source code with [`echo-cli`](../README.md) and provides a development shell that closely mimics the EchopediaWeb environment.
4
+
5
+ ---
6
+
7
+ ## What is echo-dev-host?
8
+
9
+ - Provides a local "empty shell" of EchopediaWeb for rapid Echo Module development.
10
+ - Ensures your module runs with the same dependencies and environment as production.
11
+ - Supports hot module reloading for fast feedback during development.
12
+ - Now shipped as source code, so you can update dependencies and rebuild locally—no need to wait for a new `echo-cli` release.
13
+
14
+ ---
15
+
16
+ ## New Workflow (from 2025)
17
+
18
+ **You are now in control of the Echo library versions used by your dev host!**
19
+
20
+ 1. **Develop Echo libraries** (`echo-core`, `echo-base`, `echo-utils`, etc.) in the EchopediaWeb monorepo.
21
+ 2. **Release new versions** of these libraries from EchopediaWeb.
22
+ 3. **echo-cli** now ships with the source code of `echo-dev-host` (formerly echo-client), not a pre-built version.
23
+ 4. **Consumer project:**
24
+ - Builds `echo-dev-host` locally using `npx build-echo-dev-host`
25
+ - Can update Echo library dependencies locally using `npx update-echo-libs`
26
+ - No need to bump and release `echo-cli` for every Echo library update—much more efficient and flexible.
27
+
28
+ ---
29
+
30
+ ## Getting Started
31
+
32
+ ### Prerequisites
33
+
34
+ - Node.js (see [root README](../../../README.md) for version requirements)
35
+ - [`echo-cli`](../README.md) installed as a dev dependency in your Echo Module project
36
+
37
+ ### Typical Workflow
38
+
39
+ 1. **Install dependencies**
40
+ In your Echo Module project:
41
+
42
+ ```sh
43
+ npm install
44
+ ```
45
+
46
+ 2. **Build echo-dev-host locally**
47
+
48
+ ```sh
49
+ npx build-echo-dev-host
50
+ ```
51
+
52
+ This will:
53
+
54
+ - Copy `echo-dev-host` from `node_modules/@equinor/echo-cli` to your project root as `echo-dev-host-tmp`
55
+ - Install dependencies and build `echo-dev-host`
56
+ - Copy the build output back to `node_modules/@equinor/echo-cli`
57
+
58
+ 3. **Start development server**
59
+
60
+ ```sh
61
+ npm start
62
+ ```
63
+
64
+ Your module will open in the browser, running inside the dev host.
65
+
66
+ 4. **Update Echo library dependencies (optional)**
67
+ To update the Echo libraries used by your dev host:
68
+ ```sh
69
+ npx update-echo-libs
70
+ ```
71
+ - You will be prompted for each Echo library to update to the latest or specify a version.
72
+ - Use the `-a` flag to update all to the latest automatically:
73
+ ```sh
74
+ npx update-echo-libs -a
75
+ ```
76
+ - This updates dependencies and rebuilds `echo-dev-host`.
77
+
78
+ ---
79
+
80
+ ## Commands Reference
81
+
82
+ - **`npx build-echo-dev-host`**
83
+
84
+ - Builds the dev host locally with your current Echo library versions.
85
+ - Should be run after installing or updating dependencies.
86
+
87
+ - **`npx update-echo-libs`**
88
+ - Prompts you to update Echo library dependencies in the dev host.
89
+ - Rebuilds the dev host after updating.
90
+ - Use `-a` to update all Echo libraries to the latest versions automatically.
91
+
92
+ ---
93
+
94
+ ## Why this new approach?
95
+
96
+ - **No more waiting for echo-cli releases** just to get new Echo library versions.
97
+ - **You control the dev host dependencies**—update and rebuild as needed.
98
+ - **Faster, more flexible development** for all Echo teams.
99
+
100
+ ---
101
+
102
+ ## Troubleshooting
103
+
104
+ - If you see errors about missing `echo-dev-host` build output, re-run:
105
+ ```sh
106
+ npx build-echo-dev-host
107
+ ```
108
+ - For dependency version mismatches, use:
109
+ ```sh
110
+ npx update-echo-libs
111
+ ```
112
+
113
+ ---
114
+
115
+ ## More Information
116
+
117
+ - [echo-cli documentation](../README.md)
118
+ - [How to release new echo-cli versions](../README.md#how-to-make-a-new-release)
119
+ - [EchopediaWeb monorepo documentation](../../../README.md)
120
+
121
+ ---
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ presets: ['@babel/preset-env', ['@babel/preset-react', {'runtime': 'automatic'}]],
3
+ plugins: [
4
+ '@babel/plugin-syntax-dynamic-import'
5
+ ],
6
+ env: {
7
+ test: {
8
+ plugins: ['@babel/plugin-transform-runtime'],
9
+ },
10
+ },
11
+ };
@@ -0,0 +1,51 @@
1
+ #!/bin/bash
2
+
3
+ #https://www.freecodecamp.org/news/how-to-implement-runtime-environment-variables-with-create-react-app-docker-and-nginx-7f9d42a91d70/
4
+ #
5
+
6
+ # Recreate config file
7
+ rm -rf ./env-config.js
8
+ touch ./env-config.js
9
+
10
+ echo "creating env-config.js"
11
+
12
+ # Add assignment
13
+ echo "window._env_ = {" >> ./env-config.js
14
+
15
+ # Read each line in .env file
16
+ # Each line represents key=value pairs
17
+ while read -r line || [[ -n "$line" ]];
18
+ do
19
+ #only process lines containting =
20
+ if [[ $line == *"="* ]]; then
21
+
22
+ # Split env variables by character `=`
23
+ if printf '%s\n' "$line" | grep -q -e '='; then
24
+ varname=$(printf '%s\n' "$line" | sed -e 's/=.*//')
25
+ varvalue=$(printf '%s\n' "$line" | sed -e 's/^[^=]*=//')
26
+ fi
27
+
28
+ # Read value of current variable if exists as Environment variable
29
+ value=$(printf '%s\n' "${!varname}")
30
+ # Otherwise use value from .env file
31
+ [[ -z $value ]] && value=${varvalue}
32
+
33
+ # Append configuration property to JS file
34
+ echo " $varname: \"$value\"," >> ./env-config.js
35
+
36
+ #print variables
37
+ valueObfuscated=$(printf '%s' "$value" | cut -c 1-3)
38
+ #echo " $varname: \"$value\"," #print the environment variables
39
+ echo " $varname=\"$valueObfuscated***\"," #print the environment variables obfuscated
40
+ fi
41
+ done < .env
42
+
43
+ echo "}" >> ./env-config.js
44
+
45
+ #if directory exists, copy to public folder. Needed for dev enironment (npm start)
46
+ if [ -d "public" ]; then
47
+ rm -rf ./public/env-config.js
48
+ cp ./env-config.js ./public/env-config.js
49
+ fi
50
+
51
+ echo "done creating env-config.js"
@@ -0,0 +1,21 @@
1
+ module.exports = {
2
+ testEnvironment: 'jsdom',
3
+ moduleNameMapper: {
4
+ '\\.css$': 'identity-obj-proxy',
5
+ '\\.svg$': '<rootDir>/src/__mocks__/svgrMock.ts'
6
+ },
7
+ preset: 'ts-jest',
8
+ coveragePathIgnorePatterns: ['src/types/*', 'src/index.ts', 'src/typings/*'],
9
+ collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx}', '!<rootDir>/node_modules/'],
10
+ coverageThreshold: {
11
+ global: {
12
+ lines: 90,
13
+ statements: 90
14
+ }
15
+ },
16
+ transform: {
17
+ '^.+\\.(j|t)sx?$': 'ts-jest'
18
+ },
19
+ testMatch: ['**/__tests__/**/*.test.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)'],
20
+ setupFilesAfterEnv: ['<rootDir>/src/setupTests.ts']
21
+ };