@equinor/echo-cli 1.0.0-beta-36 → 1.0.0-beta-37

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.
package/README.md CHANGED
@@ -10,13 +10,19 @@ For information on how to configure your echo module, refer to [this wiki](https
10
10
 
11
11
  ## echo-cli versions table
12
12
 
13
- Each `echo-cli` release works properly together with given versions of the essential echo packages. These versions are relevant when you run your Echo Module as a standalone app, with the command `npm start`.
13
+ Each `echo-cli` release is shipped with the source code for `echo-dev-host` (formerly `echo-client`).
14
+ When you run your Echo Module as a standalone app using `npm start`, a local development shell (`echo-dev-host`) will be built and started, containing your Echo Module.
14
15
 
15
- An application shell (`echo-client`) will be fired up, which will contain your Echo Module. This application shell will depend on the main echo packages described below.
16
+ **You are now in control of the Echo package versions used by your dev host.**
17
+ You can update the Echo library dependencies locally (without waiting for a new `echo-cli` release) using the provided commands.
18
+ See the [`echo-dev-host` README](./echo-dev-host/README.md) for more details on the workflow and commands.
16
19
 
17
- Find which versions to use of the echo packages for the given `echo-cli` version.
20
+ Refer to the table below to see which Echo package versions are recommended for each `echo-cli` version.
21
+ In general, it's safe to use a newer patch version of an Echo package than listed, unless otherwise noted.
18
22
 
19
- In general it's safe to differ in an echo package patch version. For example if the table states that you should use an echo package version of 0.4.0, using 0.4.3 should be also fine. Unless it's tied to another Cli version.
23
+ Echo library versions are generally kept in sync for easier usage.
24
+ As a rule of thumb: if you need `v1.2.1` of `echo-framework`, you should use `v1.2.x` of all Echo libraries.
25
+ Patch versions (`x`) can differ between libraries, but the major and minor versions
20
26
 
21
27
  (older versions can be found at the bottom of this page)
22
28
 
package/lib/echo-build.js CHANGED
@@ -7,7 +7,7 @@ import { fileURLToPath } from 'url';
7
7
  import { ECHO_HOST_BUILD_OUTPUT_FOLDER } from './const/common.js';
8
8
  import { echoWebpackBuild } from './tools/buildScripts/webpackBuilds.js';
9
9
  import { echoCliLogo } from './utils/logo.js';
10
- import { printDevHostVersions } from './utils/printDevHostVersions.js';
10
+ import { printEchoLibsVersions } from './utils/printEchoLibsVersions.js';
11
11
  /**
12
12
  * @class CreateBundle
13
13
  * @extends Command
@@ -63,8 +63,9 @@ export default class CreateBundle extends Command {
63
63
  }
64
64
  echoCliLogo();
65
65
  console.log(chalk.cyan('echo-cli runs your echo application with echo-dev-host, which is using the following echo lib versions:'));
66
- await printDevHostVersions({
67
- devHostPkgPath: path.resolve(path.resolve(__dirname, './echo-dev-host'), 'package.json')
66
+ await printEchoLibsVersions({
67
+ devHostPkgPath: path.resolve(path.resolve(__dirname, './echo-dev-host'), 'package.json'),
68
+ appPkgPath: path.resolve(process.cwd(), 'package.json')
68
69
  });
69
70
  await echoWebpackBuild(options.flags, options.flags.isDevelopment);
70
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"echo-build.js","sourceRoot":"","sources":["../src/echo-build.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IACtC,MAAM,CAAC,WAAW,GAAG,qBAAqB,CAAC;IAE3C,MAAM,CAAC,KAAK,GAAG;QAClB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oCAAoC;SACpD,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oDAAoD;SACpE,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAChB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0CAA0C;SAC1D,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uDAAuD;SACvE,CAAC;KACL,CAAC;IAEK,KAAK,CAAC,GAAG;QACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,6BAA6B,EAAE,CAAC,CAAC;QAC5F,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,GAAG,CACJ,KAAK,CAAC,GAAG,CACL,wDAAwD,6BAA6B,4BAA4B,oBAAoB,KAAK;gBACtI,mHAAmH;gBACnH,uDAAuD,CAC9D,CACJ,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,WAAW,EAAE,CAAC;QAEd,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,IAAI,CACN,yGAAyG,CAC5G,CACJ,CAAC;QAEF,MAAM,oBAAoB,CAAC;YACvB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,cAAc,CAAC;SAC3F,CAAC,CAAC;QAEH,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;;AAGL,YAAY,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"echo-build.js","sourceRoot":"","sources":["../src/echo-build.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IACtC,MAAM,CAAC,WAAW,GAAG,qBAAqB,CAAC;IAE3C,MAAM,CAAC,KAAK,GAAG;QAClB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oCAAoC;SACpD,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oDAAoD;SACpE,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAChB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0CAA0C;SAC1D,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uDAAuD;SACvE,CAAC;KACL,CAAC;IAEK,KAAK,CAAC,GAAG;QACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,6BAA6B,EAAE,CAAC,CAAC;QAC5F,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,GAAG,CACJ,KAAK,CAAC,GAAG,CACL,wDAAwD,6BAA6B,4BAA4B,oBAAoB,KAAK;gBACtI,mHAAmH;gBACnH,uDAAuD,CAC9D,CACJ,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,WAAW,EAAE,CAAC;QAEd,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,IAAI,CACN,yGAAyG,CAC5G,CACJ,CAAC;QAEF,MAAM,qBAAqB,CAAC;YACxB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,cAAc,CAAC;YACxF,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;SAC1D,CAAC,CAAC;QAEH,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;;AAGL,YAAY,CAAC,GAAG,EAAE,CAAC"}
@@ -1,46 +1,121 @@
1
1
  # echo-dev-host
2
2
 
3
- TODO: update this readme
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
4
 
5
- Lightweight host application for Echo Module development, shipped with `echo-cli`
5
+ ---
6
6
 
7
- ## Why it's needed
7
+ ## What is echo-dev-host?
8
8
 
9
- Each Echo Module needs EchopediaWeb as a host to run.
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.
10
13
 
11
- This makes development of Echo Modules difficult, since every time a
12
- new change is introduced, one would need to release and deploy new version of the given Echo Module to see the newly developed features, changes.
14
+ ---
13
15
 
14
- Echo Client (with the help of `echo-cli`) solves this issue: it provides an "empty shell" of EchopediaWeb's framework, providing the same dependencies.
16
+ ## New Workflow (from 2025)
15
17
 
16
- Echo Module devs can run their module via `npm start`, and develop their module "as normal": their module will show up in echo client, so they can see their changes right away with hot module reload.
18
+ **You are now in control of the Echo library versions used by your dev host!**
17
19
 
18
- To make sure that Echo Client mimics the same environment as the original echopediaWeb app, their dependencies are linked, and they need to be kept in sync.
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.
19
27
 
20
- ## How it works
28
+ ---
21
29
 
22
- `echo-client` ships together with `echo-cli`, so each Echo Module should have `echo-cli` as a dev dependency.
30
+ ## Getting Started
23
31
 
24
- When you run the script `npm start` in your Echo Module, `echo-client` will start up providing the dev environment and the empty shell
25
- of EchopediaWeb.
32
+ ### Prerequisites
26
33
 
27
- Development goes as usual:
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
28
36
 
29
- - change code
30
- - save changes
31
- - hot reload will take care of applying the changes
37
+ ### Typical Workflow
32
38
 
33
- ## Maintaining dependencies
39
+ 1. **Install dependencies**
40
+ In your Echo Module project:
34
41
 
35
- ### Echo packages
42
+ ```sh
43
+ npm install
44
+ ```
36
45
 
37
- With new echo packages released (for example: `echo-framework`, `echo-components`) the `echo-client` needs to be updated with these new versions as well,
38
- and a new `echo-cli` release needs to be done.
46
+ 2. **Build echo-dev-host locally**
39
47
 
40
- When that's done, your Echo Module needs to be bumped to this new version of `echo-cli`.
48
+ ```sh
49
+ npx build-echo-dev-host
50
+ ```
41
51
 
42
- See [here](../echo-cli/README.md) how to release new version of `echo-cli` (which ships `echo-client`)
52
+ This will:
43
53
 
44
- ### Non-Echo packages
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`
45
57
 
46
- Non echo package dependencies are linked to echopediaWeb dependencies, so they are aligned and don't require maintenance.
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
+ ---
@@ -4,7 +4,7 @@ import figlet from 'figlet';
4
4
  import fs from 'fs-extra';
5
5
  import path from 'path';
6
6
  import { ECHO_HOST_BUILD_OUTPUT_FOLDER } from '../../const/common.js';
7
- import { printDevHostVersions } from '../../utils/printDevHostVersions.js';
7
+ import { printEchoLibsVersions } from '../../utils/printEchoLibsVersions.js';
8
8
  /**
9
9
  * Builds and copies the Echo Dev Host application for local development.
10
10
  *
@@ -45,7 +45,11 @@ export async function buildAndCopyDevHost({ cliNodeModules, tmpDevHostFolder, fi
45
45
  if (installAndBuild) {
46
46
  console.log(chalk.greenBright.bold('[echo-dev-host] Installing dependencies and building echo-dev-host...\n'));
47
47
  console.log(chalk.greenBright.bold('[echo-dev-host] Using the following versions of echo libraries'));
48
- await printDevHostVersions({ devHostPkgPath: srcPkgJson, fetchLatest: !skipFetchingLatestVersions });
48
+ await printEchoLibsVersions({
49
+ devHostPkgPath: srcPkgJson,
50
+ appPkgPath: path.resolve(process.cwd(), 'package.json'),
51
+ fetchLatest: !skipFetchingLatestVersions
52
+ });
49
53
  execSync('npm install', { cwd: tmpDevHostFolder, stdio: 'inherit' });
50
54
  execSync('npm run build', { cwd: tmpDevHostFolder, stdio: 'inherit' });
51
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildAndCopyDevHost.js","sourceRoot":"","sources":["../../../src/tools/buildScripts/buildAndCopyDevHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACtC,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,GAAG,IAAI,EACtB,0BAA0B,GAAG,KAAK,EAClC,WAAW,GAAG,KAAK,EAQtB;IACG,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CACP,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE;QAC7B,IAAI,EAAE,UAAU;QAChB,gBAAgB,EAAE,SAAS;QAC3B,cAAc,EAAE,SAAS;KAC5B,CAAC,CACL,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAEzD,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,kDAAkD;IAClD,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,yDAAyD,gBAAgB,QAAQ,CAAC,CAC7G,CAAC;QACF,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,UAAU,CAAC,IAAI,CACjB,qDAAqD,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAC7F,CACJ,CAAC;IACF,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAE1C,yBAAyB;IACzB,IAAI,eAAe,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC,CAAC;QAC/G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;QACtG,MAAM,oBAAoB,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACrG,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,QAAQ,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,iDAAiD;IACjD,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,kDAAkD,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAClH,CAAC;IAEF,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAEzC,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,YAAY,CAAC,IAAI,CACnB,gDAAgD,gBAAgB,2BAA2B,CAC9F,CACJ,CAAC;QACF,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAE5E,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC,CAAC;IACxG,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"buildAndCopyDevHost.js","sourceRoot":"","sources":["../../../src/tools/buildScripts/buildAndCopyDevHost.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from '@oclif/core';
3
+ /**
4
+ * @class UpdateDevHostEchoLibVersions
5
+ * @extends Command
6
+ * @description
7
+ * Interactively updates the echo library dependencies in the `echo-dev-host` project.
8
+ *
9
+ * This command reads the `package.json` file from the `echo-dev-host-tmp` directory,
10
+ * identifies dependencies that are echo libraries (names starting with `@equinor/echo-`),
11
+ * and allows the user to update them to the latest available versions.
12
+ *
13
+ * If the `--all` flag is provided, all echo libraries are updated to their latest versions
14
+ * without prompting the user. Otherwise, the user is prompted for each library to confirm
15
+ * or specify the desired version.
16
+ *
17
+ * After updating dependencies, the command writes the changes to `package.json` and runs
18
+ * `npm install` to apply the updates.
19
+ *
20
+ * @flags
21
+ * - `--all`, `-a`: Update all echo libraries to the latest version without prompting.
22
+ *
23
+ * Logs error if the `package.json` file cannot be read, typically if the
24
+ * `echo-dev-host-tmp` directory or its `package.json` does not exist.
25
+ */
26
+ export default class UpdateEchoLibs extends Command {
27
+ static description: string;
28
+ static flags: {
29
+ all: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
30
+ };
31
+ run(): Promise<void>;
32
+ }
33
+ export declare function updateEchoLibSection(consumerPkg: Record<string, any>, sectionName: 'dependencies' | 'devDependencies' | 'peerDependencies', echoLibs: string[], deps: Record<string, string>, changes: Record<string, string[]>): boolean;
@@ -0,0 +1,186 @@
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 inquirer from 'inquirer';
6
+ import ora from 'ora';
7
+ import path from 'path';
8
+ import { ECHO_HOST_BUILD_OUTPUT_FOLDER, ECHO_HOST_TEMP_BUILD_FOLDER } from './const/common.js';
9
+ import { buildAndCopyDevHost } from './tools/buildScripts/buildAndCopyDevHost.js';
10
+ import { getLatestPkgVersion } from './utils/getLatestPkgVersion.js';
11
+ /**
12
+ * @class UpdateDevHostEchoLibVersions
13
+ * @extends Command
14
+ * @description
15
+ * Interactively updates the echo library dependencies in the `echo-dev-host` project.
16
+ *
17
+ * This command reads the `package.json` file from the `echo-dev-host-tmp` directory,
18
+ * identifies dependencies that are echo libraries (names starting with `@equinor/echo-`),
19
+ * and allows the user to update them to the latest available versions.
20
+ *
21
+ * If the `--all` flag is provided, all echo libraries are updated to their latest versions
22
+ * without prompting the user. Otherwise, the user is prompted for each library to confirm
23
+ * or specify the desired version.
24
+ *
25
+ * After updating dependencies, the command writes the changes to `package.json` and runs
26
+ * `npm install` to apply the updates.
27
+ *
28
+ * @flags
29
+ * - `--all`, `-a`: Update all echo libraries to the latest version without prompting.
30
+ *
31
+ * Logs error if the `package.json` file cannot be read, typically if the
32
+ * `echo-dev-host-tmp` directory or its `package.json` does not exist.
33
+ */
34
+ export default class UpdateEchoLibs extends Command {
35
+ static description = 'Interactively update echo library dependencies in echo-dev-host';
36
+ static flags = {
37
+ all: Flags.boolean({
38
+ char: 'a',
39
+ description: 'Update all echo libraries to latest without prompting'
40
+ })
41
+ };
42
+ async run() {
43
+ const { flags } = await this.parse(UpdateEchoLibs);
44
+ const devHostPkgPath = path.resolve(process.cwd(), 'node_modules', '@equinor', 'echo-cli', 'lib', 'echo-dev-host', 'package.json');
45
+ this.log(chalk.cyan(`Trying to load echo lib dependencies from: ${chalk.yellow(devHostPkgPath)}`));
46
+ let pkg;
47
+ try {
48
+ pkg = fs.readJsonSync(devHostPkgPath);
49
+ }
50
+ catch (error) {
51
+ this.error(`Could not read package.json at ${chalk.yellow(devHostPkgPath)}. Did you run npm install?`);
52
+ return;
53
+ }
54
+ const deps = pkg.dependencies || {};
55
+ const echoLibs = Object.keys(deps).filter((name) => name.startsWith('@equinor/echo-'));
56
+ if (echoLibs.length === 0) {
57
+ this.log('No echo libraries found in dependencies.');
58
+ return;
59
+ }
60
+ let updated = false;
61
+ const spinner = ora('Fetching latest echo library versions...').start();
62
+ const latestVersions = {};
63
+ // Fetch all latest versions with spinner
64
+ for (const lib of echoLibs) {
65
+ latestVersions[lib] = await getLatestPkgVersion(lib, spinner);
66
+ }
67
+ spinner.succeed('Fetched latest echo library versions.');
68
+ // Determine which libs are up to date and which are outdated
69
+ const upToDateLibs = echoLibs.filter((lib) => deps[lib] === latestVersions[lib]);
70
+ const outdatedLibs = echoLibs.filter((lib) => deps[lib] !== latestVersions[lib]);
71
+ // Log up-to-date libs
72
+ upToDateLibs.forEach((lib) => {
73
+ this.log(chalk.gray(`${lib} is already at latest version (${deps[lib]}), skipping.`));
74
+ });
75
+ if (outdatedLibs.length === 0) {
76
+ this.log(chalk.green('All echo libraries are already at their latest versions. No update needed.'));
77
+ return;
78
+ }
79
+ let autoBump = flags.all;
80
+ if (!flags.all) {
81
+ console.log(chalk.yellow(`Do you want to automatically update all outdated echo libraries to their latest versions?\n` +
82
+ `If you choose 'No', you will be prompted for each library.`));
83
+ const answer = await inquirer.prompt([
84
+ {
85
+ type: 'confirm',
86
+ name: 'autoBump',
87
+ message: `Proceed with automatic update?`,
88
+ default: true
89
+ }
90
+ ]);
91
+ autoBump = answer.autoBump;
92
+ }
93
+ for (const lib of outdatedLibs) {
94
+ const current = deps[lib];
95
+ const latest = latestVersions[lib];
96
+ let newVersion = latest;
97
+ if (!autoBump) {
98
+ const answer = await inquirer.prompt([
99
+ {
100
+ type: 'input',
101
+ name: 'version',
102
+ message: `${lib}: current ${current}, latest ${latest} [${latest}]:`,
103
+ default: latest
104
+ }
105
+ ]);
106
+ newVersion = answer.version || latest;
107
+ }
108
+ if (newVersion !== current) {
109
+ deps[lib] = newVersion;
110
+ updated = true;
111
+ this.log(chalk.yellow(`Updated ${lib} to ${newVersion}`));
112
+ }
113
+ }
114
+ if (updated) {
115
+ pkg.dependencies = deps;
116
+ fs.writeJsonSync(devHostPkgPath, pkg, { spaces: 2 });
117
+ console.log(`\nDependencies updated. Rebuilding echo-dev-host...\n`);
118
+ const cliNodeModules = path.resolve(process.cwd(), 'node_modules', '@equinor', 'echo-cli');
119
+ const finalOutput = path.join(cliNodeModules, ECHO_HOST_BUILD_OUTPUT_FOLDER);
120
+ await buildAndCopyDevHost({
121
+ cliNodeModules,
122
+ tmpDevHostFolder: path.resolve(process.cwd(), ECHO_HOST_TEMP_BUILD_FOLDER),
123
+ finalOutputDir: finalOutput
124
+ });
125
+ // --- Update consumer app's package.json ---
126
+ const consumerPkgPath = path.resolve(process.cwd(), 'package.json');
127
+ let consumerPkg;
128
+ try {
129
+ consumerPkg = fs.readJsonSync(consumerPkgPath);
130
+ }
131
+ catch (error) {
132
+ this.error(`Could not read consumer app package.json at ${chalk.yellow(consumerPkgPath)}.`);
133
+ return;
134
+ }
135
+ const echoLibVersionChangesBySection = {};
136
+ const updatedDeps = updateEchoLibSection(consumerPkg, 'dependencies', echoLibs, deps, echoLibVersionChangesBySection);
137
+ const updatedDevDeps = updateEchoLibSection(consumerPkg, 'devDependencies', echoLibs, deps, echoLibVersionChangesBySection);
138
+ const updatedPeerDeps = updateEchoLibSection(consumerPkg, 'peerDependencies', echoLibs, deps, echoLibVersionChangesBySection);
139
+ if (updatedDeps || updatedDevDeps || updatedPeerDeps) {
140
+ fs.writeJsonSync(consumerPkgPath, consumerPkg, { spaces: 2 });
141
+ logGroupedEchoLibUpdates(echoLibVersionChangesBySection, this.log);
142
+ }
143
+ else {
144
+ this.log(chalk.gray('\nNo echo library versions needed updating in consumer app package.json.\n'));
145
+ }
146
+ console.log(`\nDon't forget to run npm install in your consumer app!\n`);
147
+ }
148
+ else {
149
+ console.log(`\nNo changes made to dependencies.\n`);
150
+ }
151
+ }
152
+ }
153
+ UpdateEchoLibs.run();
154
+ /**
155
+ * Logs grouped updates for echo libraries in consumer app package.json.
156
+ */
157
+ function logGroupedEchoLibUpdates(changes, logFn) {
158
+ logFn(chalk.green("\nUpdated consumer app's echo lib versions:\n"));
159
+ ['dependencies', 'devDependencies', 'peerDependencies'].forEach((section) => {
160
+ if (changes[section] && changes[section].length > 0) {
161
+ logFn(chalk.cyan(section));
162
+ changes[section].forEach((msg) => {
163
+ logFn(` - ${msg}`);
164
+ });
165
+ }
166
+ });
167
+ logFn('');
168
+ }
169
+ export function updateEchoLibSection(consumerPkg, sectionName, echoLibs, deps, changes) {
170
+ const section = consumerPkg[sectionName] || {};
171
+ let sectionUpdated = false;
172
+ for (const lib of echoLibs) {
173
+ if (section[lib] && section[lib] !== deps[lib]) {
174
+ section[lib] = deps[lib];
175
+ sectionUpdated = true;
176
+ if (!changes[sectionName])
177
+ changes[sectionName] = [];
178
+ changes[sectionName].push(`${lib} to ${deps[lib]}`);
179
+ }
180
+ }
181
+ if (sectionUpdated) {
182
+ consumerPkg[sectionName] = section;
183
+ }
184
+ return sectionUpdated;
185
+ }
186
+ //# sourceMappingURL=update-echo-libs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-echo-libs.js","sourceRoot":"","sources":["../src/update-echo-libs.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  * Searches upwards from the specified starting directory to find the topmost
3
3
  * `@equinor/echo-cli` package inside a `node_modules` folder.
4
4
  *
5
- * Needed to support both monorepo and non-monorepo setups where the `echo-cli` is used.
6
- * In a monorepo setup (like in Echo 3D), the `echo-cli` is located in the top-level `node_modules`.
5
+ * Needed to support nested folder structures, where the `echo-cli` is located in the top-level `node_modules`,
6
+ * while the app running this code is in a subfolder. (For example, in a monorepo setup, like echo 3d)
7
7
  *
8
8
  * @param startDir - The directory from which to start searching.
9
9
  * @returns The absolute path to the topmost `node_modules` directory found,
@@ -4,8 +4,8 @@ import path from 'path';
4
4
  * Searches upwards from the specified starting directory to find the topmost
5
5
  * `@equinor/echo-cli` package inside a `node_modules` folder.
6
6
  *
7
- * Needed to support both monorepo and non-monorepo setups where the `echo-cli` is used.
8
- * In a monorepo setup (like in Echo 3D), the `echo-cli` is located in the top-level `node_modules`.
7
+ * Needed to support nested folder structures, where the `echo-cli` is located in the top-level `node_modules`,
8
+ * while the app running this code is in a subfolder. (For example, in a monorepo setup, like echo 3d)
9
9
  *
10
10
  * @param startDir - The directory from which to start searching.
11
11
  * @returns The absolute path to the topmost `node_modules` directory found,
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Prints a table of all `@equinor/echo-` library versions for both the echo app and the echo dev host.
3
+ * Optionally fetches and displays the latest available versions from the npm registry for comparison.
4
+ *
5
+ * @param args - An object containing:
6
+ * - `devHostPkgPath`: Path to the dev host's package.json.
7
+ * - `appPkgPath`: Path to the echo app's package.json.
8
+ * - `fetchLatest` (optional): If true, fetches the latest versions from npm and compares them to the installed versions.
9
+ */
10
+ export declare function printEchoLibsVersions(args: {
11
+ devHostPkgPath: string;
12
+ appPkgPath: string;
13
+ fetchLatest?: boolean;
14
+ }): Promise<void>;
@@ -0,0 +1,132 @@
1
+ import chalk from 'chalk';
2
+ import fs from 'fs-extra';
3
+ import ora from 'ora';
4
+ import { getLatestPkgVersion } from './getLatestPkgVersion.js';
5
+ function pad(str, len) {
6
+ return str + ' '.repeat(Math.max(0, len - str.length));
7
+ }
8
+ /**
9
+ * Prints a table of all `@equinor/echo-` library versions for both the echo app and the echo dev host.
10
+ * Optionally fetches and displays the latest available versions from the npm registry for comparison.
11
+ *
12
+ * @param args - An object containing:
13
+ * - `devHostPkgPath`: Path to the dev host's package.json.
14
+ * - `appPkgPath`: Path to the echo app's package.json.
15
+ * - `fetchLatest` (optional): If true, fetches the latest versions from npm and compares them to the installed versions.
16
+ */
17
+ export async function printEchoLibsVersions(args) {
18
+ const { devHostPkgPath, appPkgPath, fetchLatest } = args;
19
+ let appPkg = {};
20
+ let devHostPkg = {};
21
+ // Error handling for app package.json
22
+ if (!fs.existsSync(appPkgPath)) {
23
+ console.log(chalk.red(`Could not read echo app version numbers: ${appPkgPath} does not exist.`));
24
+ return;
25
+ }
26
+ try {
27
+ appPkg = fs.readJsonSync(appPkgPath);
28
+ }
29
+ catch {
30
+ console.log(chalk.red(`Could not read ${appPkgPath}. Is it valid JSON?`));
31
+ return;
32
+ }
33
+ // Error handling for dev host package.json
34
+ if (!fs.existsSync(devHostPkgPath)) {
35
+ console.log(chalk.red(`Could not read echo dev host version numbers: ${devHostPkgPath} does not exist.`));
36
+ return;
37
+ }
38
+ try {
39
+ devHostPkg = fs.readJsonSync(devHostPkgPath);
40
+ }
41
+ catch {
42
+ console.log(chalk.red(`Could not read ${devHostPkgPath}. Is it valid JSON?`));
43
+ return;
44
+ }
45
+ const getEchoDeps = (pkg) => {
46
+ const merged = {
47
+ ...(pkg.peerDependencies || {}),
48
+ ...(pkg.devDependencies || {})
49
+ };
50
+ return Object.entries(merged)
51
+ .filter(([name]) => name.startsWith('@equinor/echo-'))
52
+ .map(([name, version]) => [name, String(version)]);
53
+ };
54
+ const appDeps = getEchoDeps(appPkg);
55
+ const devHostDeps = getEchoDeps(devHostPkg);
56
+ const allLibs = new Set([...appDeps.map(([n]) => n), ...devHostDeps.map(([n]) => n)]);
57
+ if (allLibs.size === 0) {
58
+ console.log(chalk.gray('No @equinor/echo-* libraries found in either package.json.'));
59
+ return;
60
+ }
61
+ let spinner;
62
+ if (fetchLatest) {
63
+ spinner = ora();
64
+ console.log(chalk.yellow('Fetching latest versions for echo libraries...'));
65
+ }
66
+ const versions = {};
67
+ for (const lib of allLibs) {
68
+ versions[lib] = {
69
+ appVersion: appDeps.find(([n]) => n === lib)?.[1],
70
+ devHostVersion: devHostDeps.find(([n]) => n === lib)?.[1]
71
+ };
72
+ if (fetchLatest) {
73
+ try {
74
+ versions[lib].latestVersion = await getLatestPkgVersion(lib, spinner);
75
+ }
76
+ catch {
77
+ versions[lib].latestVersion = undefined;
78
+ }
79
+ }
80
+ }
81
+ if (spinner)
82
+ spinner.stop();
83
+ // Explanation above the table
84
+ console.log(chalk.cyan('\nEcho Dev Host dependencies: These are the versions of echo libraries actually used at runtime when your app is running inside the dev host.\n' +
85
+ 'Echo App dependencies: These are the versions of echo libraries your app is developed and built against during coding.\n'));
86
+ // Table header
87
+ const col1 = 'Echo Library';
88
+ const col2 = 'App Version';
89
+ const col3 = 'Dev Host Version';
90
+ const col1w = 28, col2w = 22, col3w = 22;
91
+ console.log(chalk.bold(pad(col1, col1w) + pad(col2, col2w) + pad(col3, col3w)));
92
+ console.log('-'.repeat(col1w + col2w + col3w));
93
+ for (const lib of Array.from(allLibs).sort()) {
94
+ const { appVersion, devHostVersion, latestVersion } = versions[lib];
95
+ // App version status
96
+ let appStr = appVersion ? chalk.yellow(appVersion) : chalk.gray('—');
97
+ if (fetchLatest && appVersion) {
98
+ if (!latestVersion) {
99
+ appStr += ' ' + chalk.gray('(could not fetch latest)');
100
+ }
101
+ else if (appVersion === latestVersion) {
102
+ appStr += ' ' + chalk.green('(latest)');
103
+ }
104
+ else {
105
+ appStr += ' ' + chalk.red(`(latest: ${latestVersion})`);
106
+ }
107
+ }
108
+ // Dev host version status
109
+ let devHostStr = devHostVersion ? chalk.yellow(devHostVersion) : chalk.gray('—');
110
+ if (fetchLatest && devHostVersion) {
111
+ if (!latestVersion) {
112
+ devHostStr += ' ' + chalk.gray('(could not fetch latest)');
113
+ }
114
+ else if (devHostVersion === latestVersion) {
115
+ devHostStr += ' ' + chalk.green('(latest)');
116
+ }
117
+ else {
118
+ devHostStr += ' ' + chalk.red(`(latest: ${latestVersion})`);
119
+ }
120
+ }
121
+ console.log(pad(lib, col1w) + pad(appStr, col2w) + pad(devHostStr, col3w));
122
+ }
123
+ // Warnings
124
+ const outdated = Object.entries(versions).filter(([, v]) => fetchLatest &&
125
+ v.latestVersion &&
126
+ ((v.appVersion && v.appVersion !== v.latestVersion) ||
127
+ (v.devHostVersion && v.devHostVersion !== v.latestVersion)));
128
+ if (outdated.length > 0) {
129
+ console.log(chalk.hex('#FFA500')('\nUpdates available for echo libraries. Run npx update-echo-libs to upgrade.'));
130
+ }
131
+ }
132
+ //# sourceMappingURL=printEchoLibsVersions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printEchoLibsVersions.js","sourceRoot":"","sources":["../../src/utils/printEchoLibsVersions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/echo-cli",
3
- "version": "1.0.0-beta-36",
3
+ "version": "1.0.0-beta-37",
4
4
  "description": "Command line interface for Echo Apps",
5
5
  "main": "dist/index.js",
6
6
  "source": "src/test.js",
@@ -33,7 +33,7 @@
33
33
  "echo-build": "./lib/echo-build.js",
34
34
  "echo-manifest": "./lib/echo-manifest.js",
35
35
  "build-echo-dev-host": "./lib/echo-build-dev-host.js",
36
- "update-echo-dev-host-deps": "./lib/echo-update-dev-host-deps.js"
36
+ "update-echo-libs": "./lib/update-echo-libs.js"
37
37
  },
38
38
  "files": [
39
39
  "lib",