@equinor/echo-cli 1.0.1 → 1.0.3-beta-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/templates/echoAppTemplate/src/app.module.css +5 -5
- package/templates/echoAppTemplate/src/app.tsx +30 -30
- package/templates/echoAppTemplate/src/index.ts +6 -6
- package/templates/echoAppTemplateTutorial/src/app.module.css +5 -5
- package/templates/echoAppTemplateTutorial/src/app.tsx +30 -30
- package/templates/echoAppTemplateTutorial/src/index.ts +6 -6
- package/templates/echoLibraryTemplate/public/style.css +43 -43
- package/templates/echoPluginTemplate/public/style.css +43 -43
- package/lib/__test__/utils/merg.test.d.ts +0 -1
- package/lib/__test__/utils/merg.test.js +0 -29
- package/lib/__test__/utils/merg.test.js.map +0 -1
- package/lib/config/common/buildAndCopyEchoHostForProd.d.ts +0 -16
- package/lib/config/common/buildAndCopyEchoHostForProd.js +0 -38
- package/lib/config/common/buildAndCopyEchoHostForProd.js.map +0 -1
- package/lib/config/common/copyFile.d.ts +0 -2
- package/lib/config/common/copyFile.js +0 -10
- package/lib/config/common/copyFile.js.map +0 -1
- package/lib/config/common/echoManifest.d.ts +0 -3
- package/lib/config/common/echoManifest.js +0 -45
- package/lib/config/common/echoManifest.js.map +0 -1
- package/lib/config/common/echoModuleConfig.d.ts +0 -31
- package/lib/config/common/echoModuleConfig.js +0 -34
- package/lib/config/common/echoModuleConfig.js.map +0 -1
- package/lib/config/common/echoModuleId.d.ts +0 -5
- package/lib/config/common/echoModuleId.js +0 -15
- package/lib/config/common/echoModuleId.js.map +0 -1
- package/lib/config/common/extensions.d.ts +0 -1
- package/lib/config/common/extensions.js +0 -2
- package/lib/config/common/extensions.js.map +0 -1
- package/lib/config/common/getCurrentIndexFile.d.ts +0 -2
- package/lib/config/common/getCurrentIndexFile.js +0 -11
- package/lib/config/common/getCurrentIndexFile.js.map +0 -1
- package/lib/config/common/getPackageJson.d.ts +0 -1
- package/lib/config/common/getPackageJson.js +0 -7
- package/lib/config/common/getPackageJson.js.map +0 -1
- package/lib/config/common/https.d.ts +0 -6
- package/lib/config/common/https.js +0 -16
- package/lib/config/common/https.js.map +0 -1
- package/lib/config/common/initOptions.d.ts +0 -26
- package/lib/config/common/initOptions.js +0 -32
- package/lib/config/common/initOptions.js.map +0 -1
- package/lib/config/common/ssl.d.ts +0 -7
- package/lib/config/common/ssl.js +0 -76
- package/lib/config/common/ssl.js.map +0 -1
- package/lib/config/common/updateEnv.d.ts +0 -6
- package/lib/config/common/updateEnv.js +0 -16
- package/lib/config/common/updateEnv.js.map +0 -1
- package/lib/config/webpack/config.d.ts +0 -3
- package/lib/config/webpack/config.js +0 -36
- package/lib/config/webpack/config.js.map +0 -1
- package/lib/config/webpack/configBuilders/devServer.d.ts +0 -8
- package/lib/config/webpack/configBuilders/devServer.js +0 -60
- package/lib/config/webpack/configBuilders/devServer.js.map +0 -1
- package/lib/config/webpack/configBuilders/entry.d.ts +0 -12
- package/lib/config/webpack/configBuilders/entry.js +0 -13
- package/lib/config/webpack/configBuilders/entry.js.map +0 -1
- package/lib/config/webpack/configBuilders/module.d.ts +0 -8
- package/lib/config/webpack/configBuilders/module.js +0 -124
- package/lib/config/webpack/configBuilders/module.js.map +0 -1
- package/lib/config/webpack/configBuilders/optimization.d.ts +0 -7
- package/lib/config/webpack/configBuilders/optimization.js +0 -30
- package/lib/config/webpack/configBuilders/optimization.js.map +0 -1
- package/lib/config/webpack/configBuilders/output.d.ts +0 -12
- package/lib/config/webpack/configBuilders/output.js +0 -20
- package/lib/config/webpack/configBuilders/output.js.map +0 -1
- package/lib/config/webpack/configBuilders/plugins.d.ts +0 -10
- package/lib/config/webpack/configBuilders/plugins.js +0 -29
- package/lib/config/webpack/configBuilders/plugins.js.map +0 -1
- package/lib/config/webpack/echoWebpackModule.d.ts +0 -2
- package/lib/config/webpack/echoWebpackModule.js +0 -47
- package/lib/config/webpack/echoWebpackModule.js.map +0 -1
- package/lib/config/webpack/server.d.ts +0 -3
- package/lib/config/webpack/server.js +0 -22
- package/lib/config/webpack/server.js.map +0 -1
- package/lib/const/common.d.ts +0 -6
- package/lib/const/common.js +0 -15
- package/lib/const/common.js.map +0 -1
- package/lib/echo-build-dev-host.d.ts +0 -6
- package/lib/echo-build-dev-host.js +0 -19
- package/lib/echo-build-dev-host.js.map +0 -1
- package/lib/echo-build.d.ts +0 -34
- package/lib/echo-build.js +0 -83
- package/lib/echo-build.js.map +0 -1
- package/lib/echo-create.d.ts +0 -16
- package/lib/echo-create.js +0 -35
- package/lib/echo-create.js.map +0 -1
- package/lib/echo-dev-host/.env +0 -29
- package/lib/echo-dev-host/README.md +0 -121
- package/lib/echo-dev-host/babel.config.js +0 -11
- package/lib/echo-dev-host/env.sh +0 -51
- package/lib/echo-dev-host/jest.config.js +0 -21
- package/lib/echo-dev-host/package-lock.json +0 -12464
- package/lib/echo-dev-host/package.json +0 -80
- package/lib/echo-dev-host/public/env-config.js +0 -17
- package/lib/echo-dev-host/public/index.css +0 -60
- package/lib/echo-dev-host/public/index.html +0 -21
- package/lib/echo-dev-host/src/api/api-plants.ts +0 -22
- package/lib/echo-dev-host/src/app.css +0 -12
- package/lib/echo-dev-host/src/app.tsx +0 -43
- package/lib/echo-dev-host/src/components/Home/Home.tsx +0 -23
- package/lib/echo-dev-host/src/components/Home/home.module.css +0 -38
- package/lib/echo-dev-host/src/components/dummySearchPanel/DummySearchPanel.tsx +0 -28
- package/lib/echo-dev-host/src/components/dummySearchPanel/dummySearchPanel.module.css +0 -13
- package/lib/echo-dev-host/src/components/legend.tsx +0 -3
- package/lib/echo-dev-host/src/images/frontpage-brand-placeholder.jpg +0 -0
- package/lib/echo-dev-host/src/index.tsx +0 -91
- package/lib/echo-dev-host/src/setupTests.ts +0 -25
- package/lib/echo-dev-host/src/utils/plants.test.ts +0 -33
- package/lib/echo-dev-host/src/utils/plants.ts +0 -12
- package/lib/echo-dev-host/src/utils/setupSkipAuth.ts +0 -43
- package/lib/echo-dev-host/tsconfig.json +0 -21
- package/lib/echo-dev-host/webpack.config.js +0 -145
- package/lib/echo-manifest.d.ts +0 -6
- package/lib/echo-manifest.js +0 -13
- package/lib/echo-manifest.js.map +0 -1
- package/lib/echo-update-dev-host-deps.d.ts +0 -33
- package/lib/echo-update-dev-host-deps.js +0 -186
- package/lib/echo-update-dev-host-deps.js.map +0 -1
- package/lib/tools/buildScripts/buildAndCopyDevHost.d.ts +0 -29
- package/lib/tools/buildScripts/buildAndCopyDevHost.js +0 -135
- package/lib/tools/buildScripts/buildAndCopyDevHost.js.map +0 -1
- package/lib/tools/buildScripts/webpackBuilds.d.ts +0 -3
- package/lib/tools/buildScripts/webpackBuilds.js +0 -87
- package/lib/tools/buildScripts/webpackBuilds.js.map +0 -1
- package/lib/tools/create/copyFile.d.ts +0 -2
- package/lib/tools/create/copyFile.js +0 -16
- package/lib/tools/create/copyFile.js.map +0 -1
- package/lib/tools/create/createProject.d.ts +0 -2
- package/lib/tools/create/createProject.js +0 -83
- package/lib/tools/create/createProject.js.map +0 -1
- package/lib/tools/create/createSetTargetDirectory.d.ts +0 -1
- package/lib/tools/create/createSetTargetDirectory.js +0 -12
- package/lib/tools/create/createSetTargetDirectory.js.map +0 -1
- package/lib/tools/create/getAppTemplateName.d.ts +0 -1
- package/lib/tools/create/getAppTemplateName.js +0 -22
- package/lib/tools/create/getAppTemplateName.js.map +0 -1
- package/lib/tools/create/gitInit.d.ts +0 -1
- package/lib/tools/create/gitInit.js +0 -19
- package/lib/tools/create/gitInit.js.map +0 -1
- package/lib/tools/create/promptOptions.d.ts +0 -2
- package/lib/tools/create/promptOptions.js +0 -88
- package/lib/tools/create/promptOptions.js.map +0 -1
- package/lib/tools/create/updatePackageConfig.d.ts +0 -2
- package/lib/tools/create/updatePackageConfig.js +0 -28
- package/lib/tools/create/updatePackageConfig.js.map +0 -1
- package/lib/tools/create/updateReadme.d.ts +0 -2
- package/lib/tools/create/updateReadme.js +0 -23
- package/lib/tools/create/updateReadme.js.map +0 -1
- package/lib/types/createTypes.d.ts +0 -23
- package/lib/types/createTypes.js +0 -2
- package/lib/types/createTypes.js.map +0 -1
- package/lib/types/types.d.ts +0 -4
- package/lib/types/types.js +0 -2
- package/lib/types/types.js.map +0 -1
- package/lib/update-echo-libs.d.ts +0 -9
- package/lib/update-echo-libs.js +0 -186
- package/lib/update-echo-libs.js.map +0 -1
- package/lib/utils/findConsumerAppPackageJson.d.ts +0 -11
- package/lib/utils/findConsumerAppPackageJson.js +0 -55
- package/lib/utils/findConsumerAppPackageJson.js.map +0 -1
- package/lib/utils/findTopLevelNodeModulesWithCli.d.ts +0 -12
- package/lib/utils/findTopLevelNodeModulesWithCli.js +0 -28
- package/lib/utils/findTopLevelNodeModulesWithCli.js.map +0 -1
- package/lib/utils/getFile.d.ts +0 -34
- package/lib/utils/getFile.js +0 -72
- package/lib/utils/getFile.js.map +0 -1
- package/lib/utils/getFilePath.d.ts +0 -1
- package/lib/utils/getFilePath.js +0 -22
- package/lib/utils/getFilePath.js.map +0 -1
- package/lib/utils/getLatestPkgVersion.d.ts +0 -14
- package/lib/utils/getLatestPkgVersion.js +0 -30
- package/lib/utils/getLatestPkgVersion.js.map +0 -1
- package/lib/utils/logo.d.ts +0 -1
- package/lib/utils/logo.js +0 -12
- package/lib/utils/logo.js.map +0 -1
- package/lib/utils/merge.d.ts +0 -1
- package/lib/utils/merge.js +0 -8
- package/lib/utils/merge.js.map +0 -1
- package/lib/utils/printDevHostVersions.d.ts +0 -18
- package/lib/utils/printDevHostVersions.js +0 -70
- package/lib/utils/printDevHostVersions.js.map +0 -1
- package/lib/utils/printEchoLibsVersions.d.ts +0 -23
- package/lib/utils/printEchoLibsVersions.js +0 -162
- package/lib/utils/printEchoLibsVersions.js.map +0 -1
- package/lib/utils/timer.d.ts +0 -0
- package/lib/utils/timer.js +0 -2
- package/lib/utils/timer.js.map +0 -1
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import CopyPlugin from 'copy-webpack-plugin';
|
|
2
|
-
import Dotenv from 'dotenv-webpack';
|
|
3
|
-
import HtmlWebpackPlugin from 'html-webpack-plugin';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
import { fileURLToPath } from 'url';
|
|
6
|
-
import WebpackBar from 'webpackbar';
|
|
7
|
-
|
|
8
|
-
const webpackConfig = (env) => {
|
|
9
|
-
console.log('Building the dev host application for EchoCli.');
|
|
10
|
-
|
|
11
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
-
const __dirname = path.dirname(__filename);
|
|
13
|
-
|
|
14
|
-
const buildOutputFolder = 'echo-dev-host-build';
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
entry: ['@babel/polyfill', './src/index.tsx'],
|
|
18
|
-
mode: 'production',
|
|
19
|
-
devtool: 'source-map',
|
|
20
|
-
output: {
|
|
21
|
-
clean: true,
|
|
22
|
-
path: path.resolve(process.cwd(), buildOutputFolder),
|
|
23
|
-
filename: '[name].echo.bundle.js',
|
|
24
|
-
chunkFilename: 'assets/[name].[contenthash].chunk.js',
|
|
25
|
-
publicPath: '/'
|
|
26
|
-
},
|
|
27
|
-
resolve: {
|
|
28
|
-
extensions: ['.ts', '.tsx', '.js', '.jsx'],
|
|
29
|
-
fallback: {
|
|
30
|
-
crypto: false,
|
|
31
|
-
stream: false,
|
|
32
|
-
buffer: false
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
module: {
|
|
36
|
-
rules: [
|
|
37
|
-
{
|
|
38
|
-
test: /\.(ts|tsx)$/,
|
|
39
|
-
loader: 'ts-loader',
|
|
40
|
-
exclude: /node_modules/
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
test: /\.(js|jsx)$/,
|
|
44
|
-
exclude: /node_modules/,
|
|
45
|
-
loader: 'babel-loader'
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
test: /\.css$/,
|
|
49
|
-
use: [
|
|
50
|
-
'style-loader',
|
|
51
|
-
{
|
|
52
|
-
loader: 'css-loader',
|
|
53
|
-
options: {
|
|
54
|
-
importLoaders: 1,
|
|
55
|
-
modules: {
|
|
56
|
-
mode: 'local',
|
|
57
|
-
localIdentName: 'echo-[folder]__[local]-[hash:base64:5]',
|
|
58
|
-
namedExport: false,
|
|
59
|
-
exportLocalsConvention: 'as-is'
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
],
|
|
64
|
-
include: /\.module\.css$/
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
test: /\.css$/,
|
|
68
|
-
use: ['style-loader', 'css-loader'],
|
|
69
|
-
exclude: /\.module\.css$/
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
test: /\.svg$/,
|
|
73
|
-
use: ['@svgr/webpack']
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
test: /\.(png|jpe?g|gif)$/i,
|
|
77
|
-
use: [
|
|
78
|
-
{
|
|
79
|
-
loader: 'file-loader'
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
}
|
|
83
|
-
]
|
|
84
|
-
},
|
|
85
|
-
devServer: {
|
|
86
|
-
static: [
|
|
87
|
-
{
|
|
88
|
-
directory: path.join(__dirname, 'public')
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
directory: path.join(__dirname, 'build')
|
|
92
|
-
}
|
|
93
|
-
],
|
|
94
|
-
compress: true,
|
|
95
|
-
port: 3000,
|
|
96
|
-
hot: true,
|
|
97
|
-
historyApiFallback: true,
|
|
98
|
-
server: 'https',
|
|
99
|
-
headers: {
|
|
100
|
-
'Access-Control-Allow-Origin': '*',
|
|
101
|
-
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
|
|
102
|
-
'Access-Control-Allow-Headers': 'X-Requested-With, content-type, Authorization'
|
|
103
|
-
}
|
|
104
|
-
// overlay: {
|
|
105
|
-
// warnings: true,
|
|
106
|
-
// errors: true,
|
|
107
|
-
// },
|
|
108
|
-
},
|
|
109
|
-
plugins: [
|
|
110
|
-
new Dotenv({
|
|
111
|
-
ignoreStub: false,
|
|
112
|
-
expand: true,
|
|
113
|
-
systemvars: false
|
|
114
|
-
}),
|
|
115
|
-
new HtmlWebpackPlugin({
|
|
116
|
-
template: path.resolve(__dirname, './public/index.html')
|
|
117
|
-
}),
|
|
118
|
-
new WebpackBar({
|
|
119
|
-
name: 'Echo module',
|
|
120
|
-
color: '#007079',
|
|
121
|
-
profile: true
|
|
122
|
-
}),
|
|
123
|
-
new CopyPlugin({
|
|
124
|
-
patterns: [
|
|
125
|
-
{
|
|
126
|
-
from: path.resolve(__dirname, './public/index.css'),
|
|
127
|
-
to: path.resolve(process.cwd(), buildOutputFolder, 'index.css')
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
from: path.resolve(__dirname, './public/env-config.js'),
|
|
131
|
-
to: path.resolve(process.cwd(), buildOutputFolder, 'env-config.js')
|
|
132
|
-
}
|
|
133
|
-
]
|
|
134
|
-
})
|
|
135
|
-
],
|
|
136
|
-
optimization: {
|
|
137
|
-
splitChunks: {
|
|
138
|
-
chunks: 'all'
|
|
139
|
-
},
|
|
140
|
-
minimize: true
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
export default webpackConfig;
|
package/lib/echo-manifest.d.ts
DELETED
package/lib/echo-manifest.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { Command } from '@oclif/core';
|
|
3
|
-
export default class StartApp extends Command {
|
|
4
|
-
static description = 'Create Echo Module Manifest';
|
|
5
|
-
async run() {
|
|
6
|
-
// const currentDir = process.cwd();
|
|
7
|
-
// const echoModuleConfig = await getEchoModuleConfig(currentDir);
|
|
8
|
-
// await createEchoModuleManifest(echoModuleConfig, currentDir);
|
|
9
|
-
console.log('hello form maifest');
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
StartApp.run();
|
|
13
|
-
//# sourceMappingURL=echo-manifest.js.map
|
package/lib/echo-manifest.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"echo-manifest.js","sourceRoot":"","sources":["../src/echo-manifest.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAClC,MAAM,CAAC,WAAW,GAAG,6BAA6B,CAAC;IAEnD,KAAK,CAAC,GAAG;QACZ,oCAAoC;QACpC,kEAAkE;QAClE,gEAAgE;QAChE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;;AAGL,QAAQ,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
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 UpdateDevHostEchoLibVersions 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;
|
|
@@ -1,186 +0,0 @@
|
|
|
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 UpdateDevHostEchoLibVersions 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(UpdateDevHostEchoLibVersions);
|
|
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
|
-
UpdateDevHostEchoLibVersions.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=echo-update-dev-host-deps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"echo-update-dev-host-deps.js","sourceRoot":"","sources":["../src/echo-update-dev-host-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builds and copies the Echo Dev Host application for local development or production use.
|
|
3
|
-
*
|
|
4
|
-
* This function performs the following steps:
|
|
5
|
-
* 1. Removes and recreates a temporary folder for the dev host.
|
|
6
|
-
* 2. Copies the echo-dev-host source files to the temporary folder.
|
|
7
|
-
* 3. Optionally overrides echo library dependencies in the dev host's package.json for production builds,
|
|
8
|
-
* ensuring the dev host uses the same or newer versions as the consumer application.
|
|
9
|
-
* 4. Installs dependencies and builds the dev host application.
|
|
10
|
-
* 5. Copies the build output to the specified final output directory.
|
|
11
|
-
* 6. Cleans up the temporary folder after the build process.
|
|
12
|
-
*
|
|
13
|
-
* @param params - An object containing configuration options.
|
|
14
|
-
* @param params.cliNodeModules - Path to the node_modules directory containing echo-dev-host.
|
|
15
|
-
* @param params.tmpDevHostFolder - Path to the temporary folder used for building the dev host.
|
|
16
|
-
* @param params.finalOutputDir - Path to the directory where the build output should be copied.
|
|
17
|
-
* @param params.isProdBuild - If true, performs a production build and synchronizes echo library versions with the consumer app.
|
|
18
|
-
* @param params.installAndBuild - (Optional) If true, installs dependencies and builds the dev host (default: true).
|
|
19
|
-
* @param params.skipFetchingLatestVersions - (Optional) If true, skips fetching the latest versions of echo libraries.
|
|
20
|
-
*
|
|
21
|
-
* @remarks
|
|
22
|
-
* - Exits the process if a suitable consumer app package.json cannot be found.
|
|
23
|
-
*/
|
|
24
|
-
export declare function buildAndCopyDevHost({ cliNodeModules, tmpDevHostFolder, finalOutputDir, isProdBuild }: {
|
|
25
|
-
cliNodeModules: string;
|
|
26
|
-
tmpDevHostFolder: string;
|
|
27
|
-
finalOutputDir: string;
|
|
28
|
-
isProdBuild?: boolean;
|
|
29
|
-
}): Promise<void>;
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { execSync } from 'child_process';
|
|
3
|
-
import figlet from 'figlet';
|
|
4
|
-
import fs from 'fs-extra';
|
|
5
|
-
import path from 'path';
|
|
6
|
-
import semver from 'semver';
|
|
7
|
-
import { ECHO_HOST_BUILD_OUTPUT_FOLDER, SUPPORTED_ECHO_LIBS } from '../../const/common.js';
|
|
8
|
-
import { findConsumerAppPackageJson, getEchoDeps } from '../../utils/findConsumerAppPackageJson.js';
|
|
9
|
-
import { printEchoLibsVersions } from '../../utils/printEchoLibsVersions.js';
|
|
10
|
-
/**
|
|
11
|
-
* Builds and copies the Echo Dev Host application for local development or production use.
|
|
12
|
-
*
|
|
13
|
-
* This function performs the following steps:
|
|
14
|
-
* 1. Removes and recreates a temporary folder for the dev host.
|
|
15
|
-
* 2. Copies the echo-dev-host source files to the temporary folder.
|
|
16
|
-
* 3. Optionally overrides echo library dependencies in the dev host's package.json for production builds,
|
|
17
|
-
* ensuring the dev host uses the same or newer versions as the consumer application.
|
|
18
|
-
* 4. Installs dependencies and builds the dev host application.
|
|
19
|
-
* 5. Copies the build output to the specified final output directory.
|
|
20
|
-
* 6. Cleans up the temporary folder after the build process.
|
|
21
|
-
*
|
|
22
|
-
* @param params - An object containing configuration options.
|
|
23
|
-
* @param params.cliNodeModules - Path to the node_modules directory containing echo-dev-host.
|
|
24
|
-
* @param params.tmpDevHostFolder - Path to the temporary folder used for building the dev host.
|
|
25
|
-
* @param params.finalOutputDir - Path to the directory where the build output should be copied.
|
|
26
|
-
* @param params.isProdBuild - If true, performs a production build and synchronizes echo library versions with the consumer app.
|
|
27
|
-
* @param params.installAndBuild - (Optional) If true, installs dependencies and builds the dev host (default: true).
|
|
28
|
-
* @param params.skipFetchingLatestVersions - (Optional) If true, skips fetching the latest versions of echo libraries.
|
|
29
|
-
*
|
|
30
|
-
* @remarks
|
|
31
|
-
* - Exits the process if a suitable consumer app package.json cannot be found.
|
|
32
|
-
*/
|
|
33
|
-
export async function buildAndCopyDevHost({ cliNodeModules, tmpDevHostFolder, finalOutputDir, isProdBuild = false }) {
|
|
34
|
-
console.log(`${chalk.cyan.bold('echo-dev-host')} - by Echo Core Team`);
|
|
35
|
-
console.log('Minimalistic host application for local development of Echo applications.\n');
|
|
36
|
-
console.log(figlet.textSync('Echo Dev Host', {
|
|
37
|
-
font: '3D-ASCII',
|
|
38
|
-
horizontalLayout: 'default',
|
|
39
|
-
verticalLayout: 'default'
|
|
40
|
-
}));
|
|
41
|
-
const devHostSrc = path.join(cliNodeModules, 'lib', 'echo-dev-host');
|
|
42
|
-
const buildOutput = path.join(tmpDevHostFolder, ECHO_HOST_BUILD_OUTPUT_FOLDER);
|
|
43
|
-
const srcPkgJson = path.join(devHostSrc, 'package.json');
|
|
44
|
-
if (isProdBuild) {
|
|
45
|
-
console.log(chalk.blueBright.bold(`\n[echo-dev-host] Building the echo app for Production.\n`));
|
|
46
|
-
}
|
|
47
|
-
// Always remove and recreate the temporary folder
|
|
48
|
-
if (fs.existsSync(tmpDevHostFolder)) {
|
|
49
|
-
console.log(chalk.yellowBright.bold(`\n[echo-dev-host] Removing existing temporary folder "${tmpDevHostFolder}"...\n`));
|
|
50
|
-
fs.removeSync(tmpDevHostFolder);
|
|
51
|
-
}
|
|
52
|
-
console.log(chalk.blueBright.bold(`\n[echo-dev-host] Copying echo-dev-host source to ${chalk.yellow(tmpDevHostFolder)}...\n`));
|
|
53
|
-
fs.copySync(devHostSrc, tmpDevHostFolder);
|
|
54
|
-
// 2. npm install & build
|
|
55
|
-
let echoLibVersionsToUse = undefined;
|
|
56
|
-
console.log(chalk.greenBright.bold('[echo-dev-host] Installing dependencies and building echo-dev-host...\n'));
|
|
57
|
-
console.log(chalk.greenBright.bold('[echo-dev-host] Using the following versions of echo libraries'));
|
|
58
|
-
const appPkgPath = findConsumerAppPackageJson(process.cwd());
|
|
59
|
-
if (!appPkgPath) {
|
|
60
|
-
console.log('Could not find a package.json with supported echo libs. Supported libs are:', SUPPORTED_ECHO_LIBS.join(', '));
|
|
61
|
-
process.exit(1);
|
|
62
|
-
}
|
|
63
|
-
if (isProdBuild) {
|
|
64
|
-
echoLibVersionsToUse = await determineEchoLibVersionsForProdBuild({
|
|
65
|
-
appPkgPath,
|
|
66
|
-
tmpDevHostFolder
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
await printEchoLibsVersions({
|
|
70
|
-
devHostPkgPath: srcPkgJson,
|
|
71
|
-
appPkgPath: appPkgPath,
|
|
72
|
-
fetchLatest: !isProdBuild,
|
|
73
|
-
echoLibVersionsToUse: isProdBuild ? echoLibVersionsToUse : undefined
|
|
74
|
-
});
|
|
75
|
-
execSync('npm install', { cwd: tmpDevHostFolder, stdio: 'inherit' });
|
|
76
|
-
execSync('npm run build', { cwd: tmpDevHostFolder, stdio: 'inherit' });
|
|
77
|
-
// 3. Copy build output to final output directory
|
|
78
|
-
console.log(chalk.magentaBright.bold(`\n[echo-dev-host] Copying build output back to ${chalk.yellow(finalOutputDir)}...\n`));
|
|
79
|
-
fs.copySync(buildOutput, finalOutputDir);
|
|
80
|
-
if (fs.existsSync(tmpDevHostFolder)) {
|
|
81
|
-
console.log(chalk.yellowBright.bold(`\n[echo-dev-host] Removing temporary folder "${tmpDevHostFolder}" used for the build...\n`));
|
|
82
|
-
fs.removeSync(tmpDevHostFolder);
|
|
83
|
-
}
|
|
84
|
-
console.log(chalk.green.bold('[echo-dev-host] Build and copy complete!\n'));
|
|
85
|
-
if (!isProdBuild) {
|
|
86
|
-
console.log(chalk.green.bold('[echo-dev-host] Now you can start your Echo app with "npm start"\n'));
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Determines the versions of Echo libraries to use for a production build of the dev host,
|
|
91
|
-
* based on the dependencies specified in the consumer application's package.json.
|
|
92
|
-
*
|
|
93
|
-
* This function compares the Echo library dependencies between the consumer app and the dev host.
|
|
94
|
-
* If the consumer app requires a newer version of an Echo library than the dev host, the dev host's
|
|
95
|
-
* package.json is updated to use the consumer app's version for that library.
|
|
96
|
-
*
|
|
97
|
-
* The function logs the source of each version decision and writes any necessary updates to the dev host's
|
|
98
|
-
* package.json file.
|
|
99
|
-
*
|
|
100
|
-
* @param appPkgPath - The file path to the consumer application's package.json.
|
|
101
|
-
* @param tmpDevHostFolder - The folder path containing the dev host's package.json.
|
|
102
|
-
* @returns A promise that resolves to a record mapping each Echo library name to the version that will be used for the build.
|
|
103
|
-
*/
|
|
104
|
-
async function determineEchoLibVersionsForProdBuild({ appPkgPath, tmpDevHostFolder }) {
|
|
105
|
-
const consumerPkg = fs.readJsonSync(appPkgPath);
|
|
106
|
-
const consumerAppName = consumerPkg.name || 'the consumer app';
|
|
107
|
-
console.log(chalk.magentaBright.bold(`\n[echo-dev-host] Prod build - Using latest echo lib versions from "${consumerAppName}" or echo dev host.\n`));
|
|
108
|
-
const devHostPkgPath = path.join(tmpDevHostFolder, 'package.json');
|
|
109
|
-
const devHostPkg = fs.readJsonSync(devHostPkgPath);
|
|
110
|
-
const echoDeps = getEchoDeps(consumerPkg);
|
|
111
|
-
let updated = false;
|
|
112
|
-
const echoLibVersionsToUse = {};
|
|
113
|
-
for (const [lib, consumerVersion] of echoDeps) {
|
|
114
|
-
const devHostVersion = devHostPkg.dependencies?.[lib];
|
|
115
|
-
let source = consumerAppName;
|
|
116
|
-
let finalVersion = devHostVersion;
|
|
117
|
-
if (devHostVersion &&
|
|
118
|
-
semver.valid(devHostVersion) &&
|
|
119
|
-
semver.valid(consumerVersion) &&
|
|
120
|
-
semver.gt(devHostVersion, consumerVersion)) {
|
|
121
|
-
source = 'echo dev host';
|
|
122
|
-
devHostPkg.dependencies[lib] = devHostVersion;
|
|
123
|
-
updated = true;
|
|
124
|
-
}
|
|
125
|
-
// Track the version that will be used for the build
|
|
126
|
-
echoLibVersionsToUse[lib] = devHostPkg.dependencies?.[lib] || consumerVersion;
|
|
127
|
-
// Log the decision
|
|
128
|
-
console.log(`${chalk.cyan(lib)}: ${chalk.yellow(finalVersion)} (from ${source})`);
|
|
129
|
-
}
|
|
130
|
-
if (updated) {
|
|
131
|
-
fs.writeJsonSync(devHostPkgPath, devHostPkg, { spaces: 4 });
|
|
132
|
-
}
|
|
133
|
-
return echoLibVersionsToUse;
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=buildAndCopyDevHost.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildAndCopyDevHost.js","sourceRoot":"","sources":["../../../src/tools/buildScripts/buildAndCopyDevHost.ts"],"names":[],"mappings":"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"}
|