Merge pull request #27 from cerc-io/dboreham/remove-lerna

Remove lerna and update dependencies to modern versions
This commit is contained in:
Zach 2023-03-22 08:27:59 -04:00 committed by GitHub
commit 0266e7614e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
91 changed files with 866 additions and 10782 deletions

View File

@ -4,8 +4,6 @@ Laconic Kubenet GraphQL server and console application.
User interface for submitting and reading records registered on Laconic. User interface for submitting and reading records registered on Laconic.
![Console](./docs/images/console.png)
## Development ## Development
* Clone the required repos: * Clone the required repos:
@ -21,9 +19,14 @@ User interface for submitting and reading records registered on Laconic.
```bash ```bash
./init.sh ./init.sh
``` ```
* For auction functionality enabled, add this environment variable:
```bash
TEST_AUCTION_ENABLED=true ./init.sh
```
* Run the laconic-console app * Run the laconic-console app
* In [laconic-console](https://github.com/cerc-io/laconic-console) repo, install dependencies * From the root of this repo, run:
```bash ```bash
yarn yarn
@ -40,19 +43,15 @@ User interface for submitting and reading records registered on Laconic.
This can be ignored as it is an error for installing optional dependency This can be ignored as it is an error for installing optional dependency
* Change directory to [packages/console-app](https://github.com/cerc-io/laconic-console/tree/main/packages/console-app) and start the react app * Start the app:
```bash ```bash
# Change directory
cd packages/console-app/
# Start app
CONFIG_FILE=config-local.yml yarn start CONFIG_FILE=config-local.yml yarn start
``` ```
* Open console-app at <http://localhost:8080> * Open console at <http://localhost:8080>
* To view records in the app, test suite in laconic-sdk can be run * To view records in the console, the test suite in laconic-sdk can be run
* Clone the [laconic-sdk](https://github.com/cerc-io/laconic-sdk) repo: * Clone the [laconic-sdk](https://github.com/cerc-io/laconic-sdk) repo:
@ -88,4 +87,4 @@ User interface for submitting and reading records registered on Laconic.
*NOTE*: One test from [util.test.ts](https://github.com/cerc-io/laconic-sdk/blob/main/src/util.test.ts) fails as mentioned in the [PR](https://github.com/cerc-io/laconic-sdk/pull/5#issuecomment-1299572012) *NOTE*: One test from [util.test.ts](https://github.com/cerc-io/laconic-sdk/blob/main/src/util.test.ts) fails as mentioned in the [PR](https://github.com/cerc-io/laconic-sdk/pull/5#issuecomment-1299572012)
* Open console-app at <http://localhost:8080> to view the records. * Open console at <http://localhost:8080> to view the records.

View File

@ -12,7 +12,6 @@ module.exports = {
'import-graphql', 'import-graphql',
'inline-json-import', 'inline-json-import',
'@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-class-properties'
'@babel/plugin-proposal-export-default-from'
] ]
}; };

Binary file not shown.

Before

Width:  |  Height:  |  Size: 820 KiB

View File

@ -1,5 +0,0 @@
{
"version": "1.2.9",
"useWorkspaces": true,
"npmClient": "yarn"
}

View File

@ -1,68 +1,90 @@
{ {
"name": "laconic-console", "name": "@cerc-io/console-app",
"version": "1.2.9-alpha.0", "version": "1.2.9",
"description": "Laconic Console", "description": "Laconic Console",
"main": "index.js", "repository": "https://github.com/cerc-io/laconic-console",
"private": true, "main": "dist/es/index.js",
"files": [
"src/gql"
],
"scripts": { "scripts": {
"build": "lerna run build", "analyzer": "webpack --config webpack-analyzer.config.js",
"clean": "lerna run clean", "build": "yarn dist",
"lint": "lerna run lint", "build:babel": "babel ./src --out-dir ./dist/es --ignore \"**/*.test.js\" --source-maps inline",
"lint:fix": "lerna run lint -- --fix", "clean": "rm -rf dist",
"lint:staged": "lint-staged", "dist": "yarn clean && yarn build:babel && CONFIG_FILE=config-production.yml webpack",
"sort-package-json": "lerna exec npx sort-package-json", "lint": "semistandard 'src/**/*.js'",
"test": "lerna run test" "start": "CONFIG_FILE=${CONFIG_FILE:-config-testnet.yml} VERBOSE=true webpack-dev-server --mode development",
"test": "jest --rootDir ./src --passWithNoTests --no-cache"
}, },
"author": "", "author": "",
"license": "AGPLv3", "license": "GPL-3.0",
"workspaces": {
"packages": [
"packages/*"
]
},
"browserslist": [ "browserslist": [
"> 5%" "> 2%"
], ],
"jest": { "jest": {
"testEnvironment": "node" "testEnvironment": "node"
}, },
"dependencies": { "dependencies": {
"lerna": "^3.19.0" "@apollo/client": "^3.7.10",
"@apollo/react-components": "^4.0.0",
"@apollo/react-hooks": "^4.0.0",
"@babel/runtime": "^7.21.0",
"@cerc-io/laconic-sdk": "0.1.6",
"@lirewine/debug": "1.0.0-beta.78",
"@lirewine/gem-core": "1.0.0-beta.28",
"@lirewine/react-ux": "1.1.0-beta.0",
"@material-ui/core": "^4.12.4",
"@material-ui/icons": "^4.11.3",
"@material-ui/lab": "^4.0.0-alpha.61",
"@rehooks/component-size": "^1.0.3",
"@visx/network": "^1.0.0",
"@visx/tooltip": "^1.0.0",
"@visx/zoom": "^1.0.0",
"build-url": "^2.0.0",
"clsx": "^1.1.0",
"compare-versions": "^3.6.0",
"d3-force": "^2.1.1",
"debug": "^4.1.1",
"graphql-tag": "^2.10.3",
"lodash.defaultsdeep": "^4.6.1",
"lodash.get": "^4.4.2",
"moment": "^2.26.0",
"node-polyfill-webpack-plugin": "^2.0.1",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-router": "^5.3.4",
"react-router-dom": "^5.3.4",
"source-map-support": "^0.5.12"
}, },
"devDependencies": { "devDependencies": {
"babel-eslint": "^10.0.3", "@babel/cli": "7.21.0",
"eslint": "^6.7.2", "@babel/core": "^7.21.0",
"eslint-config-semistandard": "^15.0.0", "@babel/preset-env": "^7.20.2",
"eslint-config-standard": "^14.1.1", "@babel/preset-react": "^7.18.6",
"eslint-loader": "^3.0.3", "@webpack-cli/info": "^2.0.1",
"eslint-plugin-babel": "^5.3.0", "babel-jest": "^29.5.0",
"eslint-plugin-import": "^2.18.2", "babel-loader": "^9.1.2",
"eslint-plugin-jest": "^23.13.1", "babel-plugin-import-graphql": "^2.7.0",
"eslint-plugin-jsdoc": "^21.0.0", "babel-plugin-inline-import": "^3.0.0",
"eslint-plugin-node": "^11.1.0", "babel-plugin-inline-json-import": "^0.3.2",
"eslint-plugin-standard": "^4.0.1", "dotenv-webpack": "^8.0.1",
"lint-staged": "^9.5.0", "graphql": "^15.0.0",
"webpack-cli": "^5.0.1" "html-webpack-plugin": "^5.5.0",
"jest": "^29.5.0",
"webpack": "^5.76.2",
"webpack-bundle-analyzer": "^4.8.0",
"webpack-cli": "^5.0.1",
"webpack-dev-server": "^4.13.1",
"webpack-merge": "^5.8.0",
"webpack-version-file-plugin": "^0.5.0",
"yaml-loader": "^0.8.0"
}, },
"eslintConfig": { "peerDependencies": {
"parser": "babel-eslint", "react": "16.12.0",
"extends": [ "react-dom": "^16.12.0"
"plugin:jest/recommended",
"semistandard"
],
"plugins": [
"babel"
],
"rules": {
"babel/semi": 1
}
}, },
"semistandard": { "publishConfig": {
"parser": "babel-eslint", "access": "public"
"env": [
"jest",
"node",
"browser"
]
} }
} }

View File

@ -1,58 +0,0 @@
# Console
Apollo GraphQL client.
## Usage
First start the server:
```bash
cd packages/console-server
yarn start
```
Then start the Webpack devserver.
```bash
cd packages/console-app
yarn start
```
Then load the app: http://localhost:8080.
## Using a KUBE
To use your KUBE for testing, rather than running all the services locally, specify a different
config file when starting: `config-kube.yml`, which connects to `kube.local` for all services.
For example:
```javascript
cd packages/console-app
CONFIG_FILE=config-kube.yml yarn start
```
## Deploy
```bash
yarn build
```
This creates the following folders:
```
/dist
/es # Module imports.
/production # Production build.
```
NOTE: GQL and Production files and exported and may be used by the server.
```javascript
import SYSTEM_STATUS from '@cerc-io/console-app/src/gql/system_status.graphql';
...
const file = path.join(__dirname + '../../../../node_modules/@cerc-io/console-app/dist/production', 'index.html');
res.sendFile(file);
```

View File

@ -1,134 +0,0 @@
{
"name": "@cerc-io/console-app",
"version": "1.2.9",
"description": "Kubenet Console Client",
"repository": "https://github.com/cerc-io/laconic-console",
"main": "dist/es/index.js",
"files": [
"src/gql"
],
"scripts": {
"analyzer": "webpack --config webpack-analyzer.config.js",
"build": "yarn dist",
"build:babel": "babel ./src --out-dir ./dist/es --ignore \"**/*.test.js\" --source-maps inline",
"clean": "rm -rf dist",
"dist": "yarn clean && yarn build:babel && CONFIG_FILE=config-production.yml webpack",
"lint": "semistandard 'src/**/*.js'",
"start": "CONFIG_FILE=${CONFIG_FILE:-config-testnet.yml} VERBOSE=true webpack-dev-server --mode development",
"test": "jest --rootDir ./src --passWithNoTests --no-cache"
},
"author": "",
"license": "GPL-3.0",
"browserslist": [
"> 2%"
],
"jest": {
"testEnvironment": "node"
},
"dependencies": {
"@apollo/react-components": "^3.1.5",
"@apollo/react-hooks": "^3.1.5",
"@babel/runtime": "^7.8.7",
"@cerc-io/laconic-sdk": "0.1.6",
"@lirewine/debug": "1.0.0-beta.78",
"@lirewine/gem-core": "1.0.0-beta.28",
"@lirewine/react-ux": "1.1.0-beta.0",
"@material-ui/core": "^4.10.0",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "^4.0.0-alpha.54",
"@rehooks/component-size": "^1.0.3",
"@visx/network": "^1.0.0",
"@visx/tooltip": "^1.0.0",
"@visx/zoom": "^1.0.0",
"apollo-cache-inmemory": "^1.6.6",
"apollo-client": "^2.6.10",
"apollo-link": "^1.2.14",
"apollo-link-http": "^1.5.17",
"build-url": "^2.0.0",
"clsx": "^1.1.0",
"compare-versions": "^3.6.0",
"d3-force": "^2.1.1",
"debug": "^4.1.1",
"graphql-tag": "^2.10.3",
"lodash.defaultsdeep": "^4.6.1",
"lodash.get": "^4.4.2",
"moment": "^2.26.0",
"node-polyfill-webpack-plugin": "^2.0.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router": "^5.2.0",
"react-router-dom": "^5.2.0",
"source-map-support": "^0.5.12"
},
"devDependencies": {
"@babel/cli": "7.4.4",
"@babel/core": "^7.4.5",
"@babel/node": "^7.8.7",
"@babel/plugin-proposal-class-properties": "^7.5.5",
"@babel/plugin-proposal-export-default-from": "^7.8.3",
"@babel/preset-env": "^7.4.5",
"@babel/preset-react": "^7.0.0",
"@webpack-cli/info": "^2.0.1",
"@webpack-cli/init": "^1.1.3",
"babel-eslint": "^10.0.2",
"babel-jest": "^24.8.0",
"babel-loader": "^8.0.0",
"babel-plugin-add-module-exports": "^1.0.2",
"babel-plugin-import-graphql": "^2.7.0",
"babel-plugin-inline-import": "^3.0.0",
"babel-plugin-inline-json-import": "^0.3.2",
"dotenv-webpack": "^8.0.1",
"eslint": "^6.7.2",
"eslint-config-semistandard": "^15.0.0",
"eslint-config-standard": "^14.1.1",
"eslint-config-standard-jsx": "^8.1.0",
"eslint-loader": "^3.0.3",
"eslint-plugin-babel": "^5.3.0",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jest": "^23.13.1",
"eslint-plugin-jsdoc": "^21.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-standard": "^4.0.1",
"graphql": "^15.0.0",
"html-webpack-plugin": "^5.5.0",
"jest": "^24.8.0",
"react-scripts": "^5.0.1",
"semistandard": "^14.2.0",
"webpack": "^5.76.2",
"webpack-bundle-analyzer": "^4.8.0",
"webpack-cli": "^5.0.1",
"webpack-dev-server": "^4.13.1",
"webpack-merge": "^5.8.0",
"webpack-version-file-plugin": "^0.5.0",
"yaml-loader": "^0.8.0"
},
"peerDependencies": {
"react": "16.12.0",
"react-dom": "^16.12.0"
},
"publishConfig": {
"access": "public"
},
"eslintConfig": {
"parser": "babel-eslint",
"extends": [
"plugin:jest/recommended",
"semistandard",
"standard-jsx"
],
"plugins": [
"babel"
],
"rules": {
"babel/semi": 1
}
},
"semistandard": {
"parser": "babel-eslint",
"env": [
"jest",
"node",
"browser"
]
}
}

View File

@ -2,10 +2,7 @@
// Copyright 2020 DXOS.org // Copyright 2020 DXOS.org
// //
import { ApolloClient } from 'apollo-client'; import { ApolloClient, InMemoryCache, ApolloLink, HttpLink } from '@apollo/client';
import { ApolloLink } from 'apollo-link';
import { createHttpLink } from 'apollo-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { createResolvers } from './resolvers'; import { createResolvers } from './resolvers';
import { getServiceUrl } from './util/config'; import { getServiceUrl } from './util/config';
@ -28,7 +25,7 @@ export const graphqlApi = config => {
*/ */
export const clientFactory = config => { export const clientFactory = config => {
// https://www.apollographql.com/docs/link/ // https://www.apollographql.com/docs/link/
const defaultLink = createHttpLink({ const defaultLink = new HttpLink({
uri: graphqlApi(config), uri: graphqlApi(config),
// TODO(burdon): Authentication: send signed message to server (from client wallet). // TODO(burdon): Authentication: send signed message to server (from client wallet).
@ -39,7 +36,7 @@ export const clientFactory = config => {
}); });
const serviceLinks = { const serviceLinks = {
signal: createHttpLink({ signal: new HttpLink({
uri: getServiceUrl(config, 'signal.api') uri: getServiceUrl(config, 'signal.api')
}) })
}; };

View File

@ -110,13 +110,6 @@ module.exports = {
use: 'yaml-loader' use: 'yaml-loader'
} }
] ]
},
resolve: {
alias: {
'@material-ui/styles': path.resolve(__dirname, '..', '..', 'node_modules/@material-ui/styles'),
'react': path.resolve(__dirname, '..', '..', 'node_modules/react'),
'react-dom': path.resolve(__dirname, '..', '..', 'node_modules/react-dom')
}
} }
}; };

11283
yarn.lock

File diff suppressed because it is too large Load Diff