Unit Tests / test (push) Successful in 10s
## Summary Implements [chat_web_app#13](#13) Part A: wire the CRA frontend into the same **node-static** deploy path as `dta_webapp` (no Docker for serving). - `build:prod` / `build:beta` write into `/var/www/{env}.chat.aimloperations/html` - API/WS URLs come from `REACT_APP_*` (`.env.production` / `.env.beta`) instead of hardcoded localhost - Gitea unit tests + auto deploy-prod on `master`; deploy-beta via `workflow_dispatch` - README documents local dev, env files, and webroot layout Branch includes the #11 unit-test commit (`test:ci`) so CI has a green suite. Companion server-infra branch (Part B): `issue-13-register-chat-web-app` on `ai_ml_operations/server-infra`. ## Test plan - [ ] `cd llm-fe && npm run test:ci` - [ ] Merge + ensure Unit Tests workflow passes on PR - [ ] Merge server-infra `issue-13-register-chat-web-app`, then sync/pull on runner - [ ] Redeploy web-static (or full host provision) so nginx listens on **8082** - [ ] Manual: `server-infra/scripts/deploy.sh --app chat_web_app --env prod --ref <sha>` - [ ] NPM: point `chat.aimloperations.com` at `adama:8082` + `roslin:8082` + `ai-server-4080:8082` - [ ] Confirm built assets hit `https://chatbackend.aimloperations.com`Reviewed-on: #15
80 lines
2.5 KiB
JSON
80 lines
2.5 KiB
JSON
{
|
|
"name": "llm-fe",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"dependencies": {
|
|
"@emotion/cache": "^11.14.0",
|
|
"@emotion/react": "^11.14.0",
|
|
"@emotion/styled": "^11.14.0",
|
|
"@mui/icons-material": "^5.16.11",
|
|
"@mui/material": "^5.16.11",
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.1.0",
|
|
"@testing-library/user-event": "^14.5.2",
|
|
"@types/jest": "^29.5.14",
|
|
"@types/node": "^22.10.2",
|
|
"axios": "^1.7.9",
|
|
"babel-loader": "^9.2.1",
|
|
"bootstrap": "^5.3.3",
|
|
"chroma-js": "^3.1.2",
|
|
"formik": "^2.4.6",
|
|
"js-cookie": "^3.0.5",
|
|
"jwt-decode": "^4.0.0",
|
|
"lodash": "^4.17.21",
|
|
"markdown-to-jsx": "^7.7.2",
|
|
"mini.css": "^3.0.1",
|
|
"react-bootstrap": "^2.10.6",
|
|
"react-code-blocks": "^0.1.6",
|
|
"react-github-btn": "^1.4.0",
|
|
"react-router-dom": "^6.28.0",
|
|
"react-scripts": "^5.0.1",
|
|
"react-syntax-highlighter": "^15.6.1",
|
|
"recharts": "^2.15.1",
|
|
"styled-components": "^6.1.14",
|
|
"stylis-plugin-rtl": "^2.1.1",
|
|
"web-vitals": "^4.2.4",
|
|
"webpack": "^5.97.1",
|
|
"webpack-cli": "^5.1.4",
|
|
"yup": "^1.5.0"
|
|
},
|
|
"scripts": {
|
|
"start": "NODE_ENV=development react-scripts start",
|
|
"build": "NODE_ENV=production react-scripts build",
|
|
"build:prod": "NODE_ENV=production react-scripts build && mkdir -p /var/www/prod.chat.aimloperations/html && cp -r ./build/* /var/www/prod.chat.aimloperations/html/",
|
|
"build:beta": "bash -c 'set -a; source .env.beta; set +a; NODE_ENV=production react-scripts build' && mkdir -p /var/www/beta.chat.aimloperations/html && cp -r ./build/* /var/www/beta.chat.aimloperations/html/",
|
|
"test": "NODE_ENV=development react-scripts test",
|
|
"test:ci": "CI=true NODE_ENV=development react-scripts test --watchAll=false --coverage=false",
|
|
"eject": "react-scripts eject"
|
|
},
|
|
"eslintConfig": {
|
|
"extends": [
|
|
"react-app",
|
|
"react-app/jest"
|
|
]
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@types/bootstrap": "~5.2.10",
|
|
"@types/lodash": "~4.17.13",
|
|
"@types/react": "^18.3.16",
|
|
"@types/react-dom": "^18.3.5",
|
|
"@types/react-google-recaptcha": "^2.1.9",
|
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"react-google-recaptcha": "^3.1.0",
|
|
"typescript": "^4.9.5"
|
|
}
|
|
}
|