diff --git a/.github/workflows/webapp.yml b/.github/workflows/webapp.yml index 4ec1158dc..e14f93ad4 100644 --- a/.github/workflows/webapp.yml +++ b/.github/workflows/webapp.yml @@ -41,10 +41,7 @@ jobs: echo "PUBLIC_PATH=https://apps.hexhive.io/${{matrix.apps}}/" >> $GITHUB_ENV echo "REACT_APP_API=https://api.hexhive.io" >> $GITHUB_ENV if: ${{ github.ref == 'refs/heads/master' }} - - - name: Build deps - run: lerna run build --scope @hive-command/electrical-editor - + - name: Build web run: (export NODE_ENV=production CI=false; lerna run build --scope @hive-command/${{ matrix.apps }} --include-dependencies) env: diff --git a/.yarn/cache/ts-loader-npm-9.4.4-f7a7993559-8e5e6b839b.zip b/.yarn/cache/ts-loader-npm-9.4.4-f7a7993559-8e5e6b839b.zip new file mode 100644 index 000000000..087e91c5a Binary files /dev/null and b/.yarn/cache/ts-loader-npm-9.4.4-f7a7993559-8e5e6b839b.zip differ diff --git a/packages/app/hivecommand-frontend/package.json b/packages/app/hivecommand-frontend/package.json index 275e1d393..d24e67f13 100644 --- a/packages/app/hivecommand-frontend/package.json +++ b/packages/app/hivecommand-frontend/package.json @@ -45,8 +45,9 @@ "pretty-quick": "^3.1.1", "process": "^0.11.10", "ts-config-single-spa": "^2.0.1", + "ts-loader": "^9.4.4", "tsconfig-paths-webpack-plugin": "^4.1.0", - "webpack": "^5.40.0", + "webpack": "^5.88.2", "webpack-cli": "^4.7.2", "webpack-config-single-spa-react": "^3.0.0", "webpack-config-single-spa-react-ts": "^3.0.0", diff --git a/packages/app/hivecommand-frontend/src/App.tsx b/packages/app/hivecommand-frontend/src/App.tsx index 4bba42701..bc51750cf 100644 --- a/packages/app/hivecommand-frontend/src/App.tsx +++ b/packages/app/hivecommand-frontend/src/App.tsx @@ -5,8 +5,6 @@ import { HexHiveTheme } from "@hexhive/styles"; import { ApolloClient, ApolloProvider, fallbackHttpConfig, InMemoryCache, selectHttpOptionsAndBody, serializeFetchParameter, split } from "@apollo/client"; import { AuthProvider } from '@hexhive/auth-ui' import { ThemeProvider, Box, createTheme, CircularProgress } from '@mui/material' -import { CommandSurface } from "@hive-command/command-surface"; -// import { EditorPage } from "./views/Editor"; import { HttpLink } from "@apollo/client"; import { getMainDefinition } from "@apollo/client/utilities"; import { ApolloLink } from "@apollo/client"; diff --git a/packages/app/hivecommand-frontend/tsconfig.json b/packages/app/hivecommand-frontend/tsconfig.json index 10769db07..274bedd6e 100644 --- a/packages/app/hivecommand-frontend/tsconfig.json +++ b/packages/app/hivecommand-frontend/tsconfig.json @@ -14,7 +14,6 @@ "references": [ {"path": "../hivecommand-api"}, {"path": "../../core-ui/command-electrical-editor"}, - {"path": "../../core-ui/command-canvas-nodes"}, {"path": "../../core-ui/command-remote-components"}, {"path": "../../core-ui/command-surface"}, {"path": "../../core/command-scripting"} diff --git a/packages/app/hivecommand-frontend/webpack.config.js b/packages/app/hivecommand-frontend/webpack.config.js index 710c8cc73..b121f70a7 100644 --- a/packages/app/hivecommand-frontend/webpack.config.js +++ b/packages/app/hivecommand-frontend/webpack.config.js @@ -35,28 +35,28 @@ module.exports = (webpackConfigEnv, argv) => { }, resolve: { - alias: { - typescript: path.resolve(__dirname, 'node_modules/typescript'), - // }, // alias: { - 'react-resize-aware': path.resolve(__dirname, '../../../node_modules/react-resize-aware'), - // '@mui/material': path.resolve(__dirname, 'node_modules/@mui/material'), - // "@mui/x-date-pickers": path.resolve(__dirname, 'node_modules/@mui/x-date-pickers'), - // '@mui/icons-material': path.resolve(__dirname, 'node_modules/@mui/icons-material'), + // typescript: path.resolve(__dirname, 'node_modules/typescript'), + // // }, + // // alias: { + // 'react-resize-aware': path.resolve(__dirname, '../../../node_modules/react-resize-aware'), + // // '@mui/material': path.resolve(__dirname, 'node_modules/@mui/material'), + // // "@mui/x-date-pickers": path.resolve(__dirname, 'node_modules/@mui/x-date-pickers'), + // // '@mui/icons-material': path.resolve(__dirname, 'node_modules/@mui/icons-material'), - react: path.resolve(__dirname, '../../../node_modules/react'), - '@hexhive/ui': path.resolve(__dirname, '../../../node_modules/@hexhive/ui'), - '@hexhive/utils': path.resolve(__dirname, '../../../node_modules/@hexhive/utils'), - '@hexhive/styles': path.resolve(__dirname, '../../../node_modules/@hexhive/styles'), - "@mui/x-date-pickers": path.resolve(__dirname, '../../../node_modules/@mui/x-date-pickers'), - // '@mui/icons-material': path.resolve(__dirname, 'node_modules/@mui/icons-material'), - '@mui/material': path.resolve(__dirname, '../../../node_modules/@mui/material'), - 'styled-components': path.resolve(__dirname, '../../../node_modules/styled-components'), - 'react-router-dom': path.resolve(__dirname, '../../../node_modules/react-router-dom'), - '@emotion/react': path.resolve(__dirname, '../../../node_modules/@emotion/react') - }, + // react: path.resolve(__dirname, '../../../node_modules/react'), + // '@hexhive/ui': path.resolve(__dirname, '../../../node_modules/@hexhive/ui'), + // '@hexhive/utils': path.resolve(__dirname, '../../../node_modules/@hexhive/utils'), + // '@hexhive/styles': path.resolve(__dirname, '../../../node_modules/@hexhive/styles'), + // "@mui/x-date-pickers": path.resolve(__dirname, '../../../node_modules/@mui/x-date-pickers'), + // // '@mui/icons-material': path.resolve(__dirname, 'node_modules/@mui/icons-material'), + // '@mui/material': path.resolve(__dirname, '../../../node_modules/@mui/material'), + // 'styled-components': path.resolve(__dirname, '../../../node_modules/styled-components'), + // 'react-router-dom': path.resolve(__dirname, '../../../node_modules/react-router-dom'), + // '@emotion/react': path.resolve(__dirname, '../../../node_modules/@emotion/react') + // }, plugins: [ - new TsconfigPathsPlugin(), + new TsconfigPathsPlugin({logLevel: 'info', logInfoToStdOut: true}), ], fallback: { // https: false, @@ -77,6 +77,11 @@ module.exports = (webpackConfigEnv, argv) => { fullySpecified: false, }, }, + { + test: /\.tsx?$/, + loader: 'ts-loader', + options: { projectReferences: true }, + }, { test: /\.ttf$/, use: ['file-loader'] diff --git a/packages/core-ui/command-electrical-editor/.babelrc b/packages/core-ui/command-electrical-editor/.babelrc new file mode 100644 index 000000000..ff3059c3f --- /dev/null +++ b/packages/core-ui/command-electrical-editor/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/preset-env"] +} \ No newline at end of file diff --git a/packages/core-ui/command-electrical-editor/tsconfig.json b/packages/core-ui/command-electrical-editor/tsconfig.json index c2ea770b2..d5e3f9449 100644 --- a/packages/core-ui/command-electrical-editor/tsconfig.json +++ b/packages/core-ui/command-electrical-editor/tsconfig.json @@ -1,4 +1,5 @@ { + "extends": "../../../tsconfig.json", "compilerOptions": { /* Visit https://aka.ms/tsconfig.json to read more about this file */ diff --git a/packages/core-ui/export-page/.gitignore b/packages/core-ui/command-export-page/.gitignore similarity index 100% rename from packages/core-ui/export-page/.gitignore rename to packages/core-ui/command-export-page/.gitignore diff --git a/packages/core-ui/export-page/README.md b/packages/core-ui/command-export-page/README.md similarity index 100% rename from packages/core-ui/export-page/README.md rename to packages/core-ui/command-export-page/README.md diff --git a/packages/core-ui/export-page/config-overrides.js b/packages/core-ui/command-export-page/config-overrides.js similarity index 100% rename from packages/core-ui/export-page/config-overrides.js rename to packages/core-ui/command-export-page/config-overrides.js diff --git a/packages/core-ui/export-page/package.json b/packages/core-ui/command-export-page/package.json similarity index 94% rename from packages/core-ui/export-page/package.json rename to packages/core-ui/command-export-page/package.json index 6baa504b0..46f70e91c 100644 --- a/packages/core-ui/export-page/package.json +++ b/packages/core-ui/command-export-page/package.json @@ -2,6 +2,10 @@ "name": "@hive-command/export-page", "version": "0.1.0", "private": true, + "main": "build/index.html", + "files": [ + "build/" + ], "dependencies": { "@hive-command/remote-components": "workspace:^", "@hive-command/schematic-viewer": "workspace:^", diff --git a/packages/core-ui/export-page/public/favicon.ico b/packages/core-ui/command-export-page/public/favicon.ico similarity index 100% rename from packages/core-ui/export-page/public/favicon.ico rename to packages/core-ui/command-export-page/public/favicon.ico diff --git a/packages/core-ui/export-page/public/index.html b/packages/core-ui/command-export-page/public/index.html similarity index 100% rename from packages/core-ui/export-page/public/index.html rename to packages/core-ui/command-export-page/public/index.html diff --git a/packages/core-ui/export-page/public/logo192.png b/packages/core-ui/command-export-page/public/logo192.png similarity index 100% rename from packages/core-ui/export-page/public/logo192.png rename to packages/core-ui/command-export-page/public/logo192.png diff --git a/packages/core-ui/export-page/public/logo512.png b/packages/core-ui/command-export-page/public/logo512.png similarity index 100% rename from packages/core-ui/export-page/public/logo512.png rename to packages/core-ui/command-export-page/public/logo512.png diff --git a/packages/core-ui/export-page/public/manifest.json b/packages/core-ui/command-export-page/public/manifest.json similarity index 100% rename from packages/core-ui/export-page/public/manifest.json rename to packages/core-ui/command-export-page/public/manifest.json diff --git a/packages/core-ui/export-page/public/robots.txt b/packages/core-ui/command-export-page/public/robots.txt similarity index 100% rename from packages/core-ui/export-page/public/robots.txt rename to packages/core-ui/command-export-page/public/robots.txt diff --git a/packages/core-ui/export-page/src/App.css b/packages/core-ui/command-export-page/src/App.css similarity index 100% rename from packages/core-ui/export-page/src/App.css rename to packages/core-ui/command-export-page/src/App.css diff --git a/packages/core-ui/export-page/src/App.test.tsx b/packages/core-ui/command-export-page/src/App.test.tsx similarity index 100% rename from packages/core-ui/export-page/src/App.test.tsx rename to packages/core-ui/command-export-page/src/App.test.tsx diff --git a/packages/core-ui/export-page/src/App.tsx b/packages/core-ui/command-export-page/src/App.tsx similarity index 100% rename from packages/core-ui/export-page/src/App.tsx rename to packages/core-ui/command-export-page/src/App.tsx diff --git a/packages/core-ui/export-page/src/index.css b/packages/core-ui/command-export-page/src/index.css similarity index 100% rename from packages/core-ui/export-page/src/index.css rename to packages/core-ui/command-export-page/src/index.css diff --git a/packages/core-ui/export-page/src/index.tsx b/packages/core-ui/command-export-page/src/index.tsx similarity index 100% rename from packages/core-ui/export-page/src/index.tsx rename to packages/core-ui/command-export-page/src/index.tsx diff --git a/packages/core-ui/export-page/src/logo.svg b/packages/core-ui/command-export-page/src/logo.svg similarity index 100% rename from packages/core-ui/export-page/src/logo.svg rename to packages/core-ui/command-export-page/src/logo.svg diff --git a/packages/core-ui/export-page/src/react-app-env.d.ts b/packages/core-ui/command-export-page/src/react-app-env.d.ts similarity index 100% rename from packages/core-ui/export-page/src/react-app-env.d.ts rename to packages/core-ui/command-export-page/src/react-app-env.d.ts diff --git a/packages/core-ui/export-page/src/reportWebVitals.ts b/packages/core-ui/command-export-page/src/reportWebVitals.ts similarity index 100% rename from packages/core-ui/export-page/src/reportWebVitals.ts rename to packages/core-ui/command-export-page/src/reportWebVitals.ts diff --git a/packages/core-ui/export-page/src/setupTests.ts b/packages/core-ui/command-export-page/src/setupTests.ts similarity index 100% rename from packages/core-ui/export-page/src/setupTests.ts rename to packages/core-ui/command-export-page/src/setupTests.ts diff --git a/packages/core-ui/export-page/tsconfig.json b/packages/core-ui/command-export-page/tsconfig.json similarity index 90% rename from packages/core-ui/export-page/tsconfig.json rename to packages/core-ui/command-export-page/tsconfig.json index f41aae05c..62d9591a0 100644 --- a/packages/core-ui/export-page/tsconfig.json +++ b/packages/core-ui/command-export-page/tsconfig.json @@ -8,6 +8,9 @@ "dom.iterable", "esnext" ], + "composite": true, + "outDir": "build/", + "rootDir": "src/", "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, diff --git a/packages/core-ui/command-remote-components/tsconfig.json b/packages/core-ui/command-remote-components/tsconfig.json index 1f3a2ac9d..c0f8bbca8 100644 --- a/packages/core-ui/command-remote-components/tsconfig.json +++ b/packages/core-ui/command-remote-components/tsconfig.json @@ -1,4 +1,5 @@ { + "extends": "../../../tsconfig.json", "compilerOptions": { /* Visit https://aka.ms/tsconfig to read more about this file */ diff --git a/packages/core/command-schematic-export/package.json b/packages/core/command-schematic-export/package.json index 400aa384d..12522cb6d 100644 --- a/packages/core/command-schematic-export/package.json +++ b/packages/core/command-schematic-export/package.json @@ -12,6 +12,7 @@ "typescript": "^5.1.6" }, "dependencies": { + "@hive-command/export-page": "workspace:^", "express": "^4.18.2", "pdf-lib": "^1.17.1", "puppeteer": "^21.1.0" diff --git a/packages/core/command-schematic-export/src/index.ts b/packages/core/command-schematic-export/src/index.ts index 85d6051de..e9b15b050 100644 --- a/packages/core/command-schematic-export/src/index.ts +++ b/packages/core/command-schematic-export/src/index.ts @@ -4,6 +4,8 @@ import express from 'express'; import { PDFDocument } from 'pdf-lib'; import { writeFileSync } from 'fs'; +const html_index = require.resolve('@hive-command/export-page'); + export const export_schematic = async (schematic: {pages: any[]}) => { const pages = (schematic?.pages || []).sort((a,b) => (a.rank || '').localeCompare(b.rank || '')); @@ -12,7 +14,7 @@ export const export_schematic = async (schematic: {pages: any[]}) => { const app = express(); - app.use(express.static(path.join(__dirname, 'export-page/build'))); + app.use(express.static(path.dirname(html_index))); app.get('/schematic/pages/:ix', (req, res) => { @@ -69,9 +71,9 @@ export const export_schematic = async (schematic: {pages: any[]}) => { } -export_schematic({ - pages: [ - {id: '1', nodes: [{id: '1', type: 'electricalSymbol', position: {x: 50, y: 10}, data: {} }, {id: '2', type: 'electricalSymbol', position: {x: 1200, y: 800}, data: {symbol: 'AcCoil'} }]}, - {id: '2', nodes: [{ id: '2', type: 'electricalSymbol', position: {x: 10, y: 10}, data: {symbol: 'AcCoil'} }]}, - ] -}) \ No newline at end of file +// export_schematic({ +// pages: [ +// {id: '1', nodes: [{id: '1', type: 'electricalSymbol', position: {x: 50, y: 10}, data: {} }, {id: '2', type: 'electricalSymbol', position: {x: 1200, y: 800}, data: {symbol: 'AcCoil'} }]}, +// {id: '2', nodes: [{ id: '2', type: 'electricalSymbol', position: {x: 10, y: 10}, data: {symbol: 'AcCoil'} }]}, +// ] +// }) \ No newline at end of file diff --git a/packages/core/command-schematic-export/tsconfig.json b/packages/core/command-schematic-export/tsconfig.json index c8a57cabf..9c62373b6 100644 --- a/packages/core/command-schematic-export/tsconfig.json +++ b/packages/core/command-schematic-export/tsconfig.json @@ -69,5 +69,8 @@ /* Advanced Options */ "skipLibCheck": true, /* Skip type checking of declaration files. */ "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ - } + }, + "references": [ + {"path": "../../core-ui/command-export-page"} + ] } diff --git a/tsconfig.json b/tsconfig.json index e09a769bd..587bbddc6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,7 +19,7 @@ "@hive-command/threads": ["../node_modules/@hive-command/threads"], // "node-opcua": ["../node_modules/node-opcua"], - "@hive-command/remote-components": ["../core-ui/command-remote-components/src"], + "@hive-command/remote-components": ["./core-ui/command-remote-components/src"], "@hexhive/ui": ["../node_modules/@hexhive/ui"], "@hexhive/utils": ["../node_modules/@hexhive/utils"], @@ -35,6 +35,9 @@ "@hive-command/command-surface": ["./core-ui/command-surface/src"], "@hive-command/electrical-editor": ["./core-ui/command-electrical-editor/src"], + "@hive-command/schematic-viewer": ["./core-ui/command-schematic-viewer/src"], + "@hive-command/export-page": ["./core-ui/command-export-page/src"], + "@hive-command/canvas-nodes": ["./core-ui/command-canvas-nodes/src"], "@hive-command/data": ["./core/command-data/src"], diff --git a/yarn.lock b/yarn.lock index 4be73fa6c..eaf582eb8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3172,9 +3172,9 @@ __metadata: languageName: unknown linkType: soft -"@hive-command/export-page@workspace:packages/core-ui/export-page": +"@hive-command/export-page@workspace:^, @hive-command/export-page@workspace:packages/core-ui/command-export-page": version: 0.0.0-use.local - resolution: "@hive-command/export-page@workspace:packages/core-ui/export-page" + resolution: "@hive-command/export-page@workspace:packages/core-ui/command-export-page" dependencies: "@babel/plugin-proposal-private-property-in-object": ^7.21.11 "@hive-command/remote-components": "workspace:^" @@ -3280,9 +3280,10 @@ __metadata: stream-browserify: ^3.0.0 systemjs: ^6.12.1 ts-config-single-spa: ^2.0.1 + ts-loader: ^9.4.4 tsconfig-paths-webpack-plugin: ^4.1.0 typescript: ^5.1.3 - webpack: ^5.40.0 + webpack: ^5.88.2 webpack-cli: ^4.7.2 webpack-config-single-spa-react: ^3.0.0 webpack-config-single-spa-react-ts: ^3.0.0 @@ -3511,6 +3512,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hive-command/schematic-export@workspace:packages/core/command-schematic-export" dependencies: + "@hive-command/export-page": "workspace:^" express: ^4.18.2 pdf-lib: ^1.17.1 puppeteer: ^21.1.0 @@ -13527,7 +13529,7 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.7.0": +"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.7.0": version: 5.15.0 resolution: "enhanced-resolve@npm:5.15.0" dependencies: @@ -20392,7 +20394,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -29944,6 +29946,21 @@ __metadata: languageName: node linkType: hard +"ts-loader@npm:^9.4.4": + version: 9.4.4 + resolution: "ts-loader@npm:9.4.4" + dependencies: + chalk: ^4.1.0 + enhanced-resolve: ^5.0.0 + micromatch: ^4.0.0 + semver: ^7.3.4 + peerDependencies: + typescript: "*" + webpack: ^5.0.0 + checksum: 8e5e6b839b0edfa40d2156c880d88ccab58226894ea5978221bc48c7db3215e2e856bfd0093f148e925a2befc42d6c94cafa9a994a7da274541efaa916012b63 + languageName: node + linkType: hard + "ts-node@npm:^10.4.0, ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" @@ -31202,7 +31219,7 @@ __metadata: languageName: node linkType: hard -"webpack@npm:^5.40.0, webpack@npm:^5.64.4": +"webpack@npm:^5.64.4, webpack@npm:^5.88.2": version: 5.88.2 resolution: "webpack@npm:5.88.2" dependencies: