From 379c92716e3da419eda3018515dbc8c3c5d46aef Mon Sep 17 00:00:00 2001 From: Andrey Sobolev Date: Tue, 14 Jan 2025 12:12:15 +0700 Subject: [PATCH] Switch to Base images (#7654) Signed-off-by: Andrey Sobolev --- .nvmrc | 2 +- .vscode/launch.json | 1 + common/scripts/install-run.js | 86 ++++++++---- dev/base-image/rekoni.Dockerfile | 2 +- dev/import-tool/Dockerfile | 3 +- dev/tool/Dockerfile | 5 +- pods/account/Dockerfile | 12 +- pods/backup/Dockerfile | 12 +- pods/collaborator/Dockerfile | 11 +- pods/front/Dockerfile | 13 +- pods/fulltext/Dockerfile | 12 +- pods/server/Dockerfile | 11 +- pods/stats/Dockerfile | 10 +- pods/workspace/Dockerfile | 12 +- products/tracker/.browserslistrc | 1 - products/tracker/.env | 5 - products/tracker/.env-prod | 4 - products/tracker/.gitignore | 3 - products/tracker/Dockerfile | 9 -- products/tracker/config.json | 5 - products/tracker/package.json | 132 ------------------ products/tracker/postcss.config.js | 5 - products/tracker/public/config.json | 5 - products/tracker/public/favicon.ico | Bin 1150 -> 0 bytes products/tracker/public/favicon.png | Bin 4067 -> 0 bytes products/tracker/public/favicon.svg | 5 - products/tracker/public/favicon_16.png | Bin 434 -> 0 bytes products/tracker/public/favicon_192.png | Bin 6575 -> 0 bytes products/tracker/public/favicon_32.png | Bin 961 -> 0 bytes products/tracker/src/index.ejs | 20 --- products/tracker/src/main-dev.ts | 31 ---- products/tracker/src/main.ts | 22 --- products/tracker/src/platform-dev.ts | 30 ---- products/tracker/src/platform.ts | 108 -------------- products/tracker/tsconfig.json | 16 --- products/tracker/webpack.config.js | 36 ----- rush.json | 4 +- server/collaborator/Dockerfile | 10 +- services/ai-bot/love-agent/Dockerfile | 11 +- services/ai-bot/pod-ai-bot/Dockerfile | 11 +- .../pod-analytics-collector/Dockerfile | 11 +- services/calendar/pod-calendar/Dockerfile | 10 +- services/github/pod-github/Dockerfile | 12 +- services/gmail/pod-gmail/Dockerfile | 11 +- services/love/Dockerfile | 11 +- services/print/pod-print/Dockerfile | 18 +-- services/rekoni/Dockerfile | 19 +-- services/ses/pod-ses/Dockerfile | 12 +- services/sign/pod-sign/Dockerfile | 13 +- .../telegram-bot/pod-telegram-bot/Dockerfile | 10 +- services/telegram/pod-telegram/Dockerfile | 10 +- 51 files changed, 88 insertions(+), 714 deletions(-) delete mode 100644 products/tracker/.browserslistrc delete mode 100644 products/tracker/.env delete mode 100644 products/tracker/.env-prod delete mode 100644 products/tracker/.gitignore delete mode 100644 products/tracker/Dockerfile delete mode 100644 products/tracker/config.json delete mode 100644 products/tracker/package.json delete mode 100644 products/tracker/postcss.config.js delete mode 100644 products/tracker/public/config.json delete mode 100644 products/tracker/public/favicon.ico delete mode 100644 products/tracker/public/favicon.png delete mode 100644 products/tracker/public/favicon.svg delete mode 100644 products/tracker/public/favicon_16.png delete mode 100644 products/tracker/public/favicon_192.png delete mode 100644 products/tracker/public/favicon_32.png delete mode 100644 products/tracker/src/index.ejs delete mode 100644 products/tracker/src/main-dev.ts delete mode 100644 products/tracker/src/main.ts delete mode 100644 products/tracker/src/platform-dev.ts delete mode 100644 products/tracker/src/platform.ts delete mode 100644 products/tracker/tsconfig.json delete mode 100644 products/tracker/webpack.config.js diff --git a/.nvmrc b/.nvmrc index 7b3bc8194ea..53d1c14db37 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.13 +v22 diff --git a/.vscode/launch.json b/.vscode/launch.json index 67d1affa867..9f4cda608a2 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -453,6 +453,7 @@ "sourceMaps": true, "cwd": "${workspaceRoot}/services/github/pod-github", "protocol": "inspector", + "attachSimplePort": 0, "outputCapture": "std" }, { diff --git a/common/scripts/install-run.js b/common/scripts/install-run.js index b3e92130021..96cbd258b91 100644 --- a/common/scripts/install-run.js +++ b/common/scripts/install-run.js @@ -25,7 +25,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ isVariableSetInNpmrcFile: () => (/* binding */ isVariableSetInNpmrcFile), -/* harmony export */ syncNpmrc: () => (/* binding */ syncNpmrc) +/* harmony export */ syncNpmrc: () => (/* binding */ syncNpmrc), +/* harmony export */ trimNpmrcFileLines: () => (/* binding */ trimNpmrcFileLines) /* harmony export */ }); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ 179896); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); @@ -46,7 +47,7 @@ __webpack_require__.r(__webpack_exports__); // create a global _combinedNpmrc for cache purpose const _combinedNpmrcMap = new Map(); function _trimNpmrcFile(options) { - const { sourceNpmrcPath, linesToPrepend, linesToAppend } = options; + const { sourceNpmrcPath, linesToPrepend, linesToAppend, supportEnvVarFallbackSyntax } = options; const combinedNpmrcFromCache = _combinedNpmrcMap.get(sourceNpmrcPath); if (combinedNpmrcFromCache !== undefined) { return combinedNpmrcFromCache; @@ -62,6 +63,21 @@ function _trimNpmrcFile(options) { npmrcFileLines.push(...linesToAppend); } npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim()); + const resultLines = trimNpmrcFileLines(npmrcFileLines, process.env, supportEnvVarFallbackSyntax); + const combinedNpmrc = resultLines.join('\n'); + //save the cache + _combinedNpmrcMap.set(sourceNpmrcPath, combinedNpmrc); + return combinedNpmrc; +} +/** + * + * @param npmrcFileLines The npmrc file's lines + * @param env The environment variables object + * @param supportEnvVarFallbackSyntax Whether to support fallback values in the form of `${VAR_NAME:-fallback}` + * @returns + */ +function trimNpmrcFileLines(npmrcFileLines, env, supportEnvVarFallbackSyntax) { + var _a; const resultLines = []; // This finds environment variable tokens that look like "${VAR_NAME}" const expansionRegExp = /\$\{([^\}]+)\}/g; @@ -80,10 +96,35 @@ function _trimNpmrcFile(options) { const environmentVariables = line.match(expansionRegExp); if (environmentVariables) { for (const token of environmentVariables) { - // Remove the leading "${" and the trailing "}" from the token - const environmentVariableName = token.substring(2, token.length - 1); - // Is the environment variable defined? - if (!process.env[environmentVariableName]) { + /** + * Remove the leading "${" and the trailing "}" from the token + * + * ${nameString} -> nameString + * ${nameString-fallbackString} -> name-fallbackString + * ${nameString:-fallbackString} -> name:-fallbackString + */ + const nameWithFallback = token.substring(2, token.length - 1); + let environmentVariableName; + let fallback; + if (supportEnvVarFallbackSyntax) { + /** + * Get the environment variable name and fallback value. + * + * name fallback + * nameString -> nameString undefined + * nameString-fallbackString -> nameString fallbackString + * nameString:-fallbackString -> nameString fallbackString + */ + const matched = nameWithFallback.match(/^([^:-]+)(?:\:?-(.+))?$/); + // matched: [originStr, variableName, fallback] + environmentVariableName = (_a = matched === null || matched === void 0 ? void 0 : matched[1]) !== null && _a !== void 0 ? _a : nameWithFallback; + fallback = matched === null || matched === void 0 ? void 0 : matched[2]; + } + else { + environmentVariableName = nameWithFallback; + } + // Is the environment variable and fallback value defined. + if (!env[environmentVariableName] && !fallback) { // No, so trim this line lineShouldBeTrimmed = true; break; @@ -100,20 +141,13 @@ function _trimNpmrcFile(options) { resultLines.push(line); } } - const combinedNpmrc = resultLines.join('\n'); - //save the cache - _combinedNpmrcMap.set(sourceNpmrcPath, combinedNpmrc); - return combinedNpmrc; + return resultLines; } function _copyAndTrimNpmrcFile(options) { - const { logger, sourceNpmrcPath, targetNpmrcPath, linesToPrepend, linesToAppend } = options; + const { logger, sourceNpmrcPath, targetNpmrcPath } = options; logger.info(`Transforming ${sourceNpmrcPath}`); // Verbose logger.info(` --> "${targetNpmrcPath}"`); - const combinedNpmrc = _trimNpmrcFile({ - sourceNpmrcPath, - linesToPrepend, - linesToAppend - }); + const combinedNpmrc = _trimNpmrcFile(options); fs__WEBPACK_IMPORTED_MODULE_0__.writeFileSync(targetNpmrcPath, combinedNpmrc); return combinedNpmrc; } @@ -123,7 +157,7 @@ function syncNpmrc(options) { info: console.log, // eslint-disable-next-line no-console error: console.error - }, createIfMissing = false, linesToAppend, linesToPrepend } = options; + }, createIfMissing = false } = options; const sourceNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(sourceNpmrcFolder, !useNpmrcPublish ? '.npmrc' : '.npmrc-publish'); const targetNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(targetNpmrcFolder, '.npmrc'); try { @@ -132,13 +166,9 @@ function syncNpmrc(options) { if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(targetNpmrcFolder)) { fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync(targetNpmrcFolder, { recursive: true }); } - return _copyAndTrimNpmrcFile({ - sourceNpmrcPath, + return _copyAndTrimNpmrcFile(Object.assign({ sourceNpmrcPath, targetNpmrcPath, - logger, - linesToAppend, - linesToPrepend - }); + logger }, options)); } else if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(targetNpmrcPath)) { // If the source .npmrc doesn't exist and there is one in the target, delete the one in the target @@ -150,13 +180,13 @@ function syncNpmrc(options) { throw new Error(`Error syncing .npmrc file: ${e}`); } } -function isVariableSetInNpmrcFile(sourceNpmrcFolder, variableKey) { +function isVariableSetInNpmrcFile(sourceNpmrcFolder, variableKey, supportEnvVarFallbackSyntax) { const sourceNpmrcPath = `${sourceNpmrcFolder}/.npmrc`; //if .npmrc file does not exist, return false directly if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) { return false; } - const trimmedNpmrcFile = _trimNpmrcFile({ sourceNpmrcPath }); + const trimmedNpmrcFile = _trimNpmrcFile({ sourceNpmrcPath, supportEnvVarFallbackSyntax }); const variableKeyRegExp = new RegExp(`^${variableKey}=`, 'm'); return trimmedNpmrcFile.match(variableKeyRegExp) !== null; } @@ -440,7 +470,8 @@ function _resolvePackageVersion(logger, rushCommonFolder, { name, version }) { (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)({ sourceNpmrcFolder, targetNpmrcFolder: rushTempFolder, - logger + logger, + supportEnvVarFallbackSyntax: false }); const npmPath = getNpmPath(); // This returns something that looks like: @@ -656,7 +687,8 @@ function installAndRun(logger, packageName, packageVersion, packageBinName, pack (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)({ sourceNpmrcFolder, targetNpmrcFolder: packageInstallFolder, - logger + logger, + supportEnvVarFallbackSyntax: false }); _createPackageJson(packageInstallFolder, packageName, packageVersion); const command = lockFilePath ? 'ci' : 'install'; diff --git a/dev/base-image/rekoni.Dockerfile b/dev/base-image/rekoni.Dockerfile index 72ac676bb16..f317c85ab6b 100644 --- a/dev/base-image/rekoni.Dockerfile +++ b/dev/base-image/rekoni.Dockerfile @@ -6,4 +6,4 @@ RUN apt-get install -y \ poppler-utils \ html2text \ unrtf -RUN npm install --ignore-scripts=false --verbose sharp@v0.30.2 pdfjs-dist@v2.12.313 --unsafe-perm \ No newline at end of file +RUN npm install --ignore-scripts=false --verbose sharp@v0.32.6 pdfjs-dist@v2.12.313 --unsafe-perm \ No newline at end of file diff --git a/dev/import-tool/Dockerfile b/dev/import-tool/Dockerfile index 8bf3db5802b..170f27b9a5d 100644 --- a/dev/import-tool/Dockerfile +++ b/dev/import-tool/Dockerfile @@ -1,5 +1,4 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/dev/tool/Dockerfile b/dev/tool/Dockerfile index e5d2e798947..c2228521888 100644 --- a/dev/tool/Dockerfile +++ b/dev/tool/Dockerfile @@ -1,9 +1,6 @@ -FROM node:20 - +FROM hardcoreeng/base WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy msgpackr msgpackr-extract --unsafe-perm - COPY bundle/bundle.js ./ CMD [ "bash" ] diff --git a/pods/account/Dockerfile b/pods/account/Dockerfile index 270607dfb8e..f3a4f339392 100644 --- a/pods/account/Dockerfile +++ b/pods/account/Dockerfile @@ -1,16 +1,6 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ EXPOSE 3000 diff --git a/pods/backup/Dockerfile b/pods/backup/Dockerfile index 1bcbcc317c9..6084db0e97c 100644 --- a/pods/backup/Dockerfile +++ b/pods/backup/Dockerfile @@ -1,17 +1,7 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ COPY bundle/bundle.js.map ./ COPY bundle/model.json ./ diff --git a/pods/collaborator/Dockerfile b/pods/collaborator/Dockerfile index 59f6041e61b..bd024ac80b5 100644 --- a/pods/collaborator/Dockerfile +++ b/pods/collaborator/Dockerfile @@ -1,15 +1,6 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/bundle.js ./ COPY bundle/bundle.js.map ./ diff --git a/pods/front/Dockerfile b/pods/front/Dockerfile index d1dfeb5e714..a43d062c0bf 100644 --- a/pods/front/Dockerfile +++ b/pods/front/Dockerfile @@ -1,16 +1,5 @@ -FROM node:20 - -ENV NODE_ENV production - +FROM hardcoreeng/front-base:v20250113a WORKDIR /app -RUN npm install --ignore-scripts=false --verbose sharp@v0.32.6 bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/bundle.js ./ COPY bundle/bundle.js.map ./ diff --git a/pods/fulltext/Dockerfile b/pods/fulltext/Dockerfile index ad9de1b47a9..576e8c8af0e 100644 --- a/pods/fulltext/Dockerfile +++ b/pods/fulltext/Dockerfile @@ -1,17 +1,7 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ COPY bundle/bundle.js.map ./ COPY bundle/model.json ./ diff --git a/pods/server/Dockerfile b/pods/server/Dockerfile index 251577680cc..6e1db09fbcd 100644 --- a/pods/server/Dockerfile +++ b/pods/server/Dockerfile @@ -1,14 +1,5 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy msgpackr msgpackr-extract --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/model.json ./ COPY bundle/bundle.js ./ diff --git a/pods/stats/Dockerfile b/pods/stats/Dockerfile index c7f44e76cff..c0ffe5678e9 100644 --- a/pods/stats/Dockerfile +++ b/pods/stats/Dockerfile @@ -1,14 +1,6 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ EXPOSE 4900 diff --git a/pods/workspace/Dockerfile b/pods/workspace/Dockerfile index 85a32764630..7cf95229342 100644 --- a/pods/workspace/Dockerfile +++ b/pods/workspace/Dockerfile @@ -1,16 +1,6 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ COPY bundle/bundle.js.map ./ diff --git a/products/tracker/.browserslistrc b/products/tracker/.browserslistrc deleted file mode 100644 index e94f8140cc0..00000000000 --- a/products/tracker/.browserslistrc +++ /dev/null @@ -1 +0,0 @@ -defaults diff --git a/products/tracker/.env b/products/tracker/.env deleted file mode 100644 index 968e3c90345..00000000000 --- a/products/tracker/.env +++ /dev/null @@ -1,5 +0,0 @@ -GMAIL_URL=http://localhost:8087 -TELEGRAM_URL=http://localhost:8086 -FRONT_URL=http://localhost:8080 - -REKONI_URL=http://localhost:4004 diff --git a/products/tracker/.env-prod b/products/tracker/.env-prod deleted file mode 100644 index aaab7d0c278..00000000000 --- a/products/tracker/.env-prod +++ /dev/null @@ -1,4 +0,0 @@ - -TELEGRAM_URL = https://telegram.hc.engineering -REKONI_URL = https://rekoni.hc.engineering -GMAIL_URL = https://gmail.hc.engineering \ No newline at end of file diff --git a/products/tracker/.gitignore b/products/tracker/.gitignore deleted file mode 100644 index d1948308bb4..00000000000 --- a/products/tracker/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -stats.json -dist/ - diff --git a/products/tracker/Dockerfile b/products/tracker/Dockerfile deleted file mode 100644 index 45a5ea4b57c..00000000000 --- a/products/tracker/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM node:20 - -WORKDIR /usr/src/app - -COPY bundle/bundle.js ./ -COPY dist/ ./dist/ - -EXPOSE 8080 -CMD [ "node", "bundle.js" ] diff --git a/products/tracker/config.json b/products/tracker/config.json deleted file mode 100644 index 9a68daead42..00000000000 --- a/products/tracker/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "ACCOUNTS_URL":"http://localhost:3000", - "UPLOAD_URL":"/files", - "REKONI_URL": "http://localhost:4004" -} \ No newline at end of file diff --git a/products/tracker/package.json b/products/tracker/package.json deleted file mode 100644 index deffb27298c..00000000000 --- a/products/tracker/package.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "name": "@hcengineering/prod-tracker", - "version": "1.0.0", - "license": "EPL-2.0", - "scripts": { - "build": "echo 'disabled'", - "*build": "rm -rf ./dist && cross-env NODE_ENV=production webpack --stats-error-details && echo 'done'", - "*bundle": "cp -r ../../server/front/bundle.js .", - "bundle": "echo 'disabled'", - "*docker:build": "docker build -t hardcoreeng/tracker-front .", - "*docker:staging": "../../common/scripts/docker_tag.sh hardcoreeng/tracker-front staging", - "*docker:push": "../../common/scripts/docker_tag.sh hardcoreeng/tracker-front", - "analyze": "cross-env NODE_ENV=production webpack --json > stats.json", - "show": "webpack-bundle-analyzer stats.json dist", - "dev-server": "cross-env CLIENT_TYPE=dev-server webpack serve", - "start": "cross-env NODE_ENV=production webpack serve", - "format": "echo 'Not required'", - "lint": "echo 'Not required'", - "lint:fix": "echo 'Not required'", - "*deploy": "cp -p public/* dist && aws s3 sync dist s3://anticrm-platform --delete --acl public-read" - }, - "devDependencies": { - "cross-env": "~7.0.3", - "webpack-cli": "^4.6.0", - "webpack": "^5.32.0", - "mini-css-extract-plugin": "^2.2.0", - "dotenv-webpack": "^7.0.2", - "ts-loader": "^9.2.5", - "svelte-loader": "^3.1.9", - "css-loader": "^5.2.1", - "webpack-dev-server": "^4.7.4", - "style-loader": "^3.2.1", - "file-loader": "^6.2.0", - "sass-loader": "^12.1.0", - "@types/node": "~20.11.16", - "webpack-bundle-analyzer": "^4.4.1", - "svgo-loader": "^3.0.0", - "autoprefixer": "^10.2.6", - "postcss": "^8.3.4", - "postcss-loader": "^6.1.0", - "postcss-load-config": "^3.1.0", - "compression-webpack-plugin": "~9.0.0", - "html-webpack-plugin": "~5.5.0" - }, - "dependencies": { - "@hcengineering/platform": "^0.6.8", - "@hcengineering/ui": "^0.6.3", - "@hcengineering/theme": "^0.6.2", - "svelte": "^4.2.5", - "@hcengineering/login": "^0.6.1", - "@hcengineering/login-assets": "^0.6.0", - "@hcengineering/login-resources": "^0.6.2", - "@hcengineering/client": "^0.6.6", - "@hcengineering/workbench": "^0.6.2", - "@hcengineering/workbench-resources": "^0.6.1", - "@hcengineering/view": "^0.6.2", - "@hcengineering/view-assets": "^0.6.0", - "@hcengineering/view-resources": "^0.6.0", - "@hcengineering/contact": "^0.6.11", - "@hcengineering/contact-resources": "^0.6.0", - "@hcengineering/task": "^0.6.1", - "@hcengineering/task-assets": "^0.6.0", - "@hcengineering/task-resources": "^0.6.0", - "@hcengineering/chunter": "^0.6.2", - "@hcengineering/chunter-assets": "^0.6.0", - "@hcengineering/chunter-resources": "^0.6.0", - "@hcengineering/setting": "^0.6.2", - "@hcengineering/setting-assets": "^0.6.0", - "@hcengineering/setting-resources": "^0.6.0", - "@hcengineering/client-resources": "^0.6.4", - "@hcengineering/contact-assets": "^0.6.0", - "@hcengineering/activity": "^0.6.0", - "@hcengineering/activity-assets": "^0.6.0", - "@hcengineering/activity-resources": "^0.6.1", - "@hcengineering/telegram": "^0.6.2", - "@hcengineering/telegram-assets": "^0.6.0", - "@hcengineering/telegram-resources": "^0.6.0", - "@hcengineering/workbench-assets": "^0.6.0", - "@hcengineering/attachment": "^0.6.1", - "@hcengineering/attachment-assets": "^0.6.0", - "@hcengineering/attachment-resources": "^0.6.0", - "@hcengineering/gmail": "^0.6.0", - "@hcengineering/gmail-assets": "^0.6.0", - "@hcengineering/gmail-resources": "^0.6.0", - "@hcengineering/image-cropper": "^0.6.0", - "@hcengineering/image-cropper-resources": "^0.6.0", - "@hcengineering/server-attachment": "^0.6.1", - "@hcengineering/server-attachment-resources": "^0.6.0", - "@hcengineering/server-collaboration": "^0.6.0", - "@hcengineering/server-collaboration-resources": "^0.6.0", - "@hcengineering/server-contact": "^0.6.1", - "@hcengineering/server-contact-resources": "^0.6.0", - "@hcengineering/server-notification": "^0.6.0", - "@hcengineering/server-notification-resources": "^0.6.0", - "@hcengineering/server-setting": "^0.6.0", - "@hcengineering/server-setting-resources": "^0.6.0", - "@hcengineering/templates": "^0.6.0", - "@hcengineering/templates-assets": "^0.6.0", - "@hcengineering/templates-resources": "^0.6.0", - "@hcengineering/notification": "^0.6.5", - "@hcengineering/notification-assets": "^0.6.0", - "@hcengineering/notification-resources": "^0.6.0", - "@hcengineering/preference": "^0.6.2", - "@hcengineering/preference-assets": "^0.6.0", - "@hcengineering/calendar": "^0.6.2", - "@hcengineering/calendar-assets": "^0.6.0", - "@hcengineering/calendar-resources": "^0.6.0", - "@hcengineering/core": "^0.6.21", - "@hcengineering/server-chunter": "^0.6.0", - "@hcengineering/server-chunter-resources": "^0.6.0", - "@hcengineering/server-task": "^0.6.0", - "@hcengineering/server-task-resources": "^0.6.0", - "@hcengineering/server-tracker": "^0.6.0", - "@hcengineering/server-tracker-resources": "^0.6.0", - "@hcengineering/server-calendar": "^0.6.0", - "@hcengineering/server-calendar-resources": "^0.6.0", - "@hcengineering/server-gmail": "^0.6.0", - "@hcengineering/server-gmail-resources": "^0.6.0", - "@hcengineering/server-telegram": "^0.6.0", - "@hcengineering/server-telegram-resources": "^0.6.0", - "@hcengineering/presentation": "^0.6.2", - "@hcengineering/tracker": "^0.6.1", - "@hcengineering/tracker-assets": "^0.6.0", - "@hcengineering/tracker-resources": "^0.6.0", - "@hcengineering/prod": "^1.0.1", - "@hcengineering/text-editor-resources": "^0.6.0", - "@hcengineering/devmodel": "^0.6.0", - "@hcengineering/devmodel-resources": "^0.6.0", - "@hcengineering/front": "^0.6.0", - "svelte-loader": "^3.1.9" - } -} diff --git a/products/tracker/postcss.config.js b/products/tracker/postcss.config.js deleted file mode 100644 index 88752c6cb06..00000000000 --- a/products/tracker/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: [ - require('autoprefixer') - ] -} diff --git a/products/tracker/public/config.json b/products/tracker/public/config.json deleted file mode 100644 index fe8def8763a..00000000000 --- a/products/tracker/public/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "ACCOUNTS_URL":"/account", - "UPLOAD_URL":"/files", - "MODEL_VERSION": null -} \ No newline at end of file diff --git a/products/tracker/public/favicon.ico b/products/tracker/public/favicon.ico deleted file mode 100644 index ec62fb52d4f2d4c13a612ddd6146fd304e4d2d94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcma)5J8pzP4D~AMQe>4PEh*D+fgC8eAUEIwkvIxD0YV^ALBj=DnusQH{6KHz8L=cr zW*EgUNyY`X64rK*7r!|>U*?bI}lc3rnB zzG1^zjOTtF$G5t!zx%$|Wm(J|3T!w723R}2-iv)zRX_7QucWdp6}l(D0PB6gC%NDt ztu3`Z530a|11NGrTwea-0}Bpo73cdOJ~*tizZ>7=XIZAyJkNESrU1$w1xClGAFgSd z22l1lFgiZ_P!z>ACf^tE5koAz&)btES$!ZM3g_xp{f_Qu{f_#_IJo-!**}X#;`w3C z{p#!Q=Lh_Fewp9ix;MY{fjAIXTo3qx4QIgk*$3AvXOgqQ9^LwXFOMQ$cOoCBO|4dk JLL4~Y{sJ5zK4Sm? diff --git a/products/tracker/public/favicon.png b/products/tracker/public/favicon.png deleted file mode 100644 index 6631310e17e2d26f4a672e93204c01acabc0f017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4067 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 hZAblIa6x@G - - - - diff --git a/products/tracker/public/favicon_16.png b/products/tracker/public/favicon_16.png deleted file mode 100644 index d6cc4d5e3cd3235ac77930af3a99aea4d600b010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmV;j0ZsmiP)TQ%!2ZU=W>1Knx-wxKt#1fLy?ZD=*Lsxad9NK?G0G z3v`ndx)y)Hm7f~TI&FeP1=~;FKti-eDeZ$HVdlNbWWM()QcB8Vxm*t7IDV2+>Z+=8 z<#alcq9~u5roA+q&F3sXZLr;L+d&Y#mdoW*tyZIAv3Sw=cs!Et`?TBb_J(0}>-G9O z7tmm{*|bNa(N`FT@)5uR7aC}Jg2`kOo2FT+R4UxG-|y2kbX})jugA|QifFZ3?JdjF zNC+`lEEX5v#bCF>vaFN?4YV|y%{~r?!_5Yc<8Taz!;2gM4YV|!PJjG$Le8SmXmHN9 z?KBImnjFqFT>%vD9fC~+%d<5{e5aO-XY8Bu{$8mD!feVEY-_>fh`!AR2 cZ`YZK&bRB~kby#J0RR9107*qoM6N<$f{rD{(f|Me diff --git a/products/tracker/public/favicon_192.png b/products/tracker/public/favicon_192.png deleted file mode 100644 index 6df544a12d8eeeb648a887793c44f68c34c54420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6575 zcmZXZ2{e@7|HsD|W9-H@jBO0cR%CB%gRx|bOt!?>#+IcLvW_jru82t@S+j5186iSZ z$dSA3~HJeL# z&EZrNByue9u(0x{M)$yR-d)VA=4Ni^-M%kB_!TH4YsSSNOM$|YSjg;i>(=%Fzn`yf z2xFX%dy`h*Mu2bo{0>*w?)G-FTHgDz-etqUz`(98f7Jzketxxqj)XEKhc?T|`}fa2 z&(8k4^5)GOmVW0;>Ft>GAX&B*TxF`mumFsnH zm@!aRR^Az0y~DY+wWYCQ-S`YRqK8+X1hvmc`eX8BAN8~AqQ^v#DG}$hhv(b7x*}Bb zN86{}ZJ4r$uO9@fBih^BBRN^)^RIEaO>TBuYKXwMmvVD+LzVMK^KEY2V9GKoX8p#e zT-e~0ixiB|2bn&{yTC%hRYHl$TmRi$JZiI;Q>l2GbGqq4IzI*oa- zZ)}}F3#P&dDF4^?(AeW8e8z&NL}dcql3K=^HEQawkLfj{E5WF zw_l&h(47NyFKT`N6|&pxg7Q&;Z{Oc@sdZWU@_~7(#Fi>0#zC$}?Um8BC-x|#6ZBtb z**Q2w)IRP>gwuC7g!%N(D(Gq{ztb<#&vA0AQJ8g17G~aAH8)d zu>=wS&B(~uAE_ypB@3b;FdgH8C;eZ3xIT!F7jE+MntX`P$<0-}`)hNuy@JvzH|HIb z&rXZ*baHy`W$g*HZrsw+a-i}X+SUk?l#~<%JURt5CVt~9342J5qJ2EF)A+=$Z)|Sv z1`>(<_tW0q9+OFFk&QkiTh{UPy1G#J`1Uqiv%8m9A~aI4OpjStS6A57%xr;3SApt; zecU)$1A@q3jvpEh*aT@shJ`)-{0s_$ZKNydp6!$xxq2MUZg|whj)OuMgHi+4R*{ z)xI9N(SUO(6v-N;oSxmo^CuB!xA_n=MVvIB^N){@Ro+3mbKG>En_u42ZG7NmFJ?P0 zT8^u2Yz&a%Nz(8mP9hr4p6kXB{>lK^(6t!&KT4)9db_%Q9e8fO?i5q1%;Je7)yMbu z_t)?pQxty>GgZEhV?vnpGyXo@J#$eN=*rsgpt+VnaB^C56m5ZQ;@0sP%n%hAx|q&KgQCTOYlRcO*VfCTvxhIcyStA% zf57iGwtbW_CP+cCJHlrcv7J5N1S{o}NP4`2f`3dDhGd?gqnQvFWsu)Nz0BHt1^@IU zv-_|7lObxL&)=Ck<{u=%LGHK;Mg_)nH)nW5ruc*)>I@|fsfu{WG}IH%UUOgVVgec$ykYm6 zA+7d1hiDp)tO7_Kf6?G2?R~299ECzzoKQ2bu7I(_lH|4RBq7>+REQ)-1j4yJARKw3 zWilXCmJ9P2K(qEaWAL?L6X~8=JBzMP=c-ma@r zoaWCF1tSB4_$pz|{HvD(w{z~S^pW>>L%)qs?npLFQu`!ljZ-O)@vpc5FN)4j~)G^(X@OlJZ-a84p+MgnyEAoz1%-(Fqyw zXVzZDm%QN~I+`V=rCFgnt)<)N-tubkn!c>F*&c3biQACVHbqklbJjz|CZhI65F#oG z;skDo`>Wg=nx!80PD+<4CZ`X9yC%_CA9mk(R}6lTrCu{ZP$*>m`JE0Fr@j!B=Yy4% z)s72>xy%j{r?Y&|L9S9T!*H6mkBLq5r~u!c^g*n>rR7N0-|nEuU}s&x)gy~;J!I&Lu-j1BsSO|_cHEj!ko0yHM7L; zF?yr!^uDvB)rF%(GvB(lC{?-A&9Y4hcm8~@cI{-r@Xg*iCmUM)Wd*@@Ij)|~&CTw8 zc^%*u1SQ%vLkZ9gi>}BZCo!-iCa){b^SX%iSXaT3*<+NgD+~KDy2K45#h!@bAp840 z6qCjhdQ)W*KCvjPsC17iS{0~KmG+NMtaJ3a?RZ69>!E{OKR&SlpO#YSV%MTJ?4KyG ztK(D2FxE!>)v@=Q>B3BT9LuGOii%b2^*Pf|CIlAO1U3}t*1$wN3q5zq-Me>3AM`E{ zP|Px5^)oVugK8NYp4KSP#EMGpP(H&Yf(tXWWL>N|q|la@FP6l6{VHVWeemhaLWwr? zQk!lEi8oQy+R&`FM<@oKWLtVQ|KhHsFSNc7nqYBX$Ox0iy01LHo=EWY+~AT$oujd# zO`y5>F+=oo;bI$&H)>eZEhD?Wt?gx~MC=asYUy~Ie2SD9cngGJ(P7ULnqso$89j;6 zQo+7=l@F3nQHQ(A^Ubpy$f*P*K5Zf;O(e4%)F)t>(tlCksf2h#lVP~(^fIrsbc9W8 zX?{f8^ZctNE;k4)!I?(I-ShMP%>Uq}?rE+4vX6uB#}qc}Lx&QWT+1)^tFE@Arw z+UI!Tl{Gb6&+=GR608!cm_DNghNlgIPVQjfw=JA!a-SlDPC0f7Hyt*~wXEO8z!}B? z$NQ_1WhaOC&|^Qd6(yuy!;zhZ7mWQYc}-^foqx22Dpqs$ymU&zN8Ib$Tn&om2i4cn`4Ms{M9~T#Eew(zMWK|4I;Yh)xY~(5( zACML)l~EEG4NJ!zC%d|p*PEN0yGPV5i)(7qJVjv|t{hQ=af`FFnCkFIQwShT+YYrX z)Uh^v&!qE5*J`fo*>h??Hy=xR66~kLZbd>MfKPS2A??4eWTj(8s+Cu_7K%3@e90*! zgS0R0;uz{7u~~4_mE*830dS^XZBx^)wGjn;89usJp0~RLQ|MfGl%04kTIYE|`?FNU zBN(ir_b&O>t5+plrjWV0xwh4~4g@EJjjtvS=w3kEu9n$0K-wrG*~ZO}Q&BAicGs1I zchVm-e{=@lEKiqql||lM`jqVRw25lGLXIeh@ zsb>8XqvzfT%*hlPZf7t3{-!*w>^bwmmE}LFGc&e3PCwCf@K0bRjh5Q>j6q&5{<@|n zC7DLZ->Zdu^saBc7`S?D-q=N%Lt-_s*yP`DkPNKH4=*VciR^m`01a=JuZs1d9v7u7 z+^974rAzj|R`}%cM5IyQTq;WkXdqV$7KY~+WTt)UF4iu- zl!Zqm^@GS%BH;ok{)doOM292~He>s=-fqc&33t75b40L3eU`Q%Qd+tF5iCKz)GW_y z_$=XtL7Ls2@B)rI@d+9tx8*=M3GKf%?|b;NFzZ@SK*0J=7b>VMoV1%}hq7fGn`P=4F}Jq1zR%Yx z1I`}42i1#e&xg?Uh!=k0{m$@NNG2>#{r<8#HYPKI1 zC9~$F;bN{0wk1+V2j}|E?*6lFJD15b$M8%#c4TaDa4^@%Z3ZH%+h;5bkL6yO*}zap=Y9st%+sr%YDHu1snQiZos!yv z4b{-BX>q8uB4i_obFZUL5P_E!F z_!@}e44HmmVg5}5AvpMm&f#Ui?b{hZ{+VHK)d{&RD+*rv5v=KqoJ>?7;(*K3GEslp zeD)0zy1ly-coPo1_k@4EOve_jLnP1zSEmnrIaV4UlOsgn1I0Qn%Zl(l#6E8rr; zJDZ}saHPhMF0;4qwTpOT2dS^4ca(GFJ3BiU-GS9z0$h{@m}2n~-MC7c4@NjE>X#pt z@jB0UD#tKS8b0U+egFel^CUwPp73>2%)B{8b1!EEDB(NBO# zK!hVl0Rbxc81=G$u=lTRx$HNd3|C4b1Oyz!12(pef1mqKQUbr z7f)3E-G@^?9VkBg7XK*kF4$|C!rQT#;VAYa#&HX}P!1ZSs>APdrS11^EgJNW=wO9b z>8#v>KRIELh^m|IcU6-;O^DpLgej(z?56+uarnrVP>Oo8|5U_{OI=#xXVU4#wYymN$I3}aGl-PMpb8NVn;&j*)1eLC-z$G@(PdpZB zBI?+*CNz%oP(y@5uHsM2fs6jVERk;lwxik-u`@H{$B4os>fn^=yjeqHdpf$Nb$4|rtDR!TU1SFEsUP+wH5LMD zft4b=>X$C{G{WEHz)6d{XN%?%2i7JAdF#^)-$E|j69If=cSlDU?!W;c8K&G|5&Cm< z=|_F%HE-80+{TKt+>V!`JbBV~CG*m?2@c!YCo>K?aFFj~&qh!tF##li30Qw*t~hQ% zbE=yR7JV(01IPOL`AKpy&VTZtk$C4HFSU2GBlyQPbjF^71~()|dv&QN#zf7DZG@5V z*IJ9pYlkRWLZ~Vl8iF?*9e15Vq)6=S9*IM8uq_&6S*Zj|I~1tccE_Bq0)RM{4mB$M z2YAwfq}Ai{zSlw?;tKMNSkEZ&F}YP_4~Kwe81LC-6JaM76v)J*&<<4`2R65p02d=g zlGD;G87HF)poWdoCbVwK67e2!piG`5(9!#RtuqIyEcxVENwZoW|L_sl-%H3)^=G0I z%}$tHT!o%F@xP!%i{79>MyQzVlQTaeC-`;+r@leT|Hrp_po_Xlb1h&prAfm)DM}7z>g6?eZfj$W~u`5CkkCegp)1 zd`72;Gb&LQh@=ZXxRj=XgjUBFalE5x(At5q`$U&R+!TPs6I@l=r^I2aXMPR`~rgyewNwgohrt- z0ZAigxgEIIn;1=G>0|PLw3k(uY6sOKo;`p5+>eEgt(zKPlvs=_xTK;I^lfvpBFNg3 z5KpJ=YP3j*YLk9m(Q)AmC*wKY~xHT;(s11Td0vi^x&n^)2lx zt>^`>tBie=g5KWVv`=@8lbHeRhXjmq2H-S1P0oEGV(74-1Vp;2*P1*tq?PxG9otmA zrTSQl9d?2eVAXmbUQ$X4^a>u82r%rOtYG!iV!OVAX&d%gs)5sus`IhEAuEiIHB+J8$w>}P&MI(^ zZCmCPgy)@@iGElHMJZT#!c!CV%j(XrnBz{{Bz=Zp0<_BHsyiSS&iC}r_ z6Lt6xW?gFLESG=&4(n=eZ)@vX7z#PlcL{>q(~9%{7wC40?Uo0 z)iQzUzuNSMhIZ}NuaHqTR#r{#NxXX%fT^X(`Y#sW{x8LD+Iq|L=g*%c0Jk9k%vv6p z^XnIYx$z_{k{w{Q78N&Q&m++R(b4NG5%&2ybA{;KGU*;~ou8z;qi5`@+HkaXOubPNSgT?~`)5OzQPI35Ua< z&8COdD*ytaP>2#32QUcL7HqRD+tDjBPy%b<iRy))WEJCaSD+L&avGv4aF_KE9NVC~A*gze}aZJ5l|2k9wCCcS;YI}QIkt9j6 z0-BEU2!f#Gayf%F_<*lsvA71a)HHr}cXu0mdwYfsT8v5pPcoS_*Z~d>4wQU8FRLUR zqA1=+EI=Hvi$o$pHa9nip7r&0TCT;`))v{=*f3a)L?Wcy?Ya%| zB9YJM$@22Dpgp=p6;@M0 zE>Bk#tlRCDTCLVpI2<-Kv;t(-uZdBCTmuOYx;Z$G%b%W}j!6gmK-T4QxyqCT&+{KJ z9bk4_fUnCu^gShka~-l&tJPa0QLEL6$K&a#89Ch@JkP%YyW3C$K9K79e7-Mg86|;j z0yRpd($K0MH((pV48F9v<{(ZWEx)+9K(cXTBoI}Rd51!w$J+8i#KgUTVVKv|YV{q6 z=+nG(Iz9MCnl>t66VnihL_TTrOLA9Iegg?|7cM_4{`)mh3#ig;HeZ0us2Ad3Ft}zl j`jJSexUs(m2qAv}7JJy0tfvAP00000NkvXXu0mjfS$@7R diff --git a/products/tracker/src/index.ejs b/products/tracker/src/index.ejs deleted file mode 100644 index 2d4d4719f25..00000000000 --- a/products/tracker/src/index.ejs +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - Tracker - - - - - - - - - - - - \ No newline at end of file diff --git a/products/tracker/src/main-dev.ts b/products/tracker/src/main-dev.ts deleted file mode 100644 index e7e25573318..00000000000 --- a/products/tracker/src/main-dev.ts +++ /dev/null @@ -1,31 +0,0 @@ -// -// Copyright © 2020, 2021 Anticrm Platform Contributors. -// Copyright © 2021 Hardcore Engineering, Inc. -// -// Licensed under the Eclipse Public License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. You may -// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import { createApp } from '@hcengineering/ui' -import { configurePlatform } from './platform' -import { configurePlatformDev, configurePlatformDevServer } from './platform-dev' - -configurePlatform().then(() => { - if (process.env.CLIENT_TYPE === 'dev') { - configurePlatformDev() - } - if (process.env.CLIENT_TYPE === 'dev-server' || process.env.CLIENT_TYPE === 'dev-production') { - configurePlatformDevServer() - } - - createApp(document.body) -}) - diff --git a/products/tracker/src/main.ts b/products/tracker/src/main.ts deleted file mode 100644 index ea4d4310040..00000000000 --- a/products/tracker/src/main.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright © 2020, 2021 Anticrm Platform Contributors. -// Copyright © 2021 Hardcore Engineering, Inc. -// -// Licensed under the Eclipse Public License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. You may -// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import { createApp } from '@hcengineering/ui' -import { configurePlatform } from './platform' - -configurePlatform().then(() => { - createApp(document.body) -}) diff --git a/products/tracker/src/platform-dev.ts b/products/tracker/src/platform-dev.ts deleted file mode 100644 index 6fdfd3202af..00000000000 --- a/products/tracker/src/platform-dev.ts +++ /dev/null @@ -1,30 +0,0 @@ -// -// Copyright © 2020 Anticrm Platform Contributors. -// -// Licensed under the Eclipse Public License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. You may -// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import { addLocation } from '@hcengineering/platform' -import login from '@hcengineering/login' -import { setMetadata } from '@hcengineering/platform' -import devmodel, { devModelId } from '@hcengineering/devmodel' -import client from '@hcengineering/client' - -export function configurePlatformDevServer() { - // Set devmodel to hook client to be able to present all activity - enableDevModel() -} - -function enableDevModel() { - setMetadata(client.metadata.ClientHook, devmodel.hook.Hook) - addLocation(devModelId, () => import(/* webpackChunkName: "devmodel" */ '@hcengineering/devmodel-resources')) -} diff --git a/products/tracker/src/platform.ts b/products/tracker/src/platform.ts deleted file mode 100644 index 6c17bdb7e83..00000000000 --- a/products/tracker/src/platform.ts +++ /dev/null @@ -1,108 +0,0 @@ -// -// Copyright © 2020 Anticrm Platform Contributors. -// -// Licensed under the Eclipse Public License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. You may -// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import { addLocation } from '@hcengineering/platform' - -import login, { loginId } from '@hcengineering/login' -import workbench, { workbenchId } from '@hcengineering/workbench' -import uiPlugin from '@hcengineering/ui' -import { viewId } from '@hcengineering/view' -import { taskId } from '@hcengineering/task' -import contact, { contactId } from '@hcengineering/contact' -import { chunterId } from '@hcengineering/chunter' -import { activityId } from '@hcengineering/activity' -import { settingId } from '@hcengineering/setting' -import telegram, { telegramId } from '@hcengineering/telegram' -import { attachmentId } from '@hcengineering/attachment' -import client, { clientId } from '@hcengineering/client' -import gmail, { gmailId } from '@hcengineering/gmail' -import { imageCropperId } from '@hcengineering/image-cropper' -import { templatesId } from '@hcengineering/templates' -import { notificationId } from '@hcengineering/notification' -import { calendarId } from '@hcengineering/calendar' -import { trackerId } from '@hcengineering/tracker' - -import '@hcengineering/login-assets' -import '@hcengineering/task-assets' -import '@hcengineering/view-assets' -import '@hcengineering/chunter-assets' -import '@hcengineering/attachment-assets' -import '@hcengineering/contact-assets' -import '@hcengineering/activity-assets' -import '@hcengineering/setting-assets' -import '@hcengineering/telegram-assets' -import '@hcengineering/gmail-assets' -import '@hcengineering/workbench-assets' -import '@hcengineering/templates-assets' -import '@hcengineering/notification-assets' -import '@hcengineering/preference-assets' -import '@hcengineering/tracker-assets' -import presentation, { presentationId } from '@hcengineering/presentation' -import { coreId } from '@hcengineering/core' -import { textEditorId } from '@hcengineering/text-editor' - -import { setMetadata } from '@hcengineering/platform' - -export async function configurePlatform() { - const config = await (await fetch('/config.json')).json() - console.log('loading configuration', config) - setMetadata(login.metadata.AccountsUrl, config.ACCOUNTS_URL) - - if (config.MODEL_VERSION != null) { - console.log('Minimal Model version requirement', config.MODEL_VERSION) - setMetadata(presentation.metadata.RequiredVersion, config.MODEL_VERSION) - } - setMetadata(telegram.metadata.TelegramURL, process.env.TELEGRAM_URL ?? 'http://localhost:8086') - setMetadata(telegram.metadata.BotUrl, process.TELEGRAM_BOT_URL ?? 'http://localhost:4020') - setMetadata(gmail.metadata.GmailURL, process.env.GMAIL_URL ?? 'http://localhost:8087') - - setMetadata(uiPlugin.metadata.DefaultApplication, workbench.component.WorkbenchApp) - setMetadata(workbench.metadata.ExcludedApplications, [contact.app.Contacts]) - - setMetadata( - uiPlugin.metadata.Routes, - new Map([ - [workbenchId, workbench.component.WorkbenchApp], - [loginId, login.component.LoginApp] - ]) - ) - - addLocation(coreId, async () => ({ default: async () => ({}) })) - addLocation(presentationId, async () => ({ default: async () => ({}) })) - - addLocation(clientId, () => import(/* webpackChunkName: "client" */ '@hcengineering/client-resources')) - addLocation(loginId, () => import(/* webpackChunkName: "login" */ '@hcengineering/login-resources')) - addLocation(workbenchId, () => import(/* webpackChunkName: "workbench" */ '@hcengineering/workbench-resources')) - addLocation(viewId, () => import(/* webpackChunkName: "view" */ '@hcengineering/view-resources')) - addLocation(taskId, () => import(/* webpackChunkName: "task" */ '@hcengineering/task-resources')) - addLocation(contactId, () => import(/* webpackChunkName: "contact" */ '@hcengineering/contact-resources')) - addLocation(chunterId, () => import(/* webpackChunkName: "chunter" */ '@hcengineering/chunter-resources')) - addLocation(activityId, () => import(/*webpackChunkName: "activity" */ '@hcengineering/activity-resources')) - addLocation(settingId, () => import(/* webpackChunkName: "setting" */ '@hcengineering/setting-resources')) - addLocation(telegramId, () => import(/* webpackChunkName: "telegram" */ '@hcengineering/telegram-resources')) - addLocation(attachmentId, () => import(/* webpackChunkName: "attachment" */ '@hcengineering/attachment-resources')) - addLocation(gmailId, () => import(/* webpackChunkName: "gmail" */ '@hcengineering/gmail-resources')) - addLocation(imageCropperId, () => import(/* webpackChunkName: "image-cropper" */ '@hcengineering/image-cropper-resources')) - addLocation(templatesId, () => import(/* webpackChunkName: "templates" */ '@hcengineering/templates-resources')) - addLocation(notificationId, () => import(/* webpackChunkName: "notification" */ '@hcengineering/notification-resources')) - addLocation(calendarId, () => import(/* webpackChunkName: "calendar" */ '@hcengineering/calendar-resources')) - - addLocation(trackerId, () => import(/* webpackChunkName: "tracker" */ '@hcengineering/tracker-resources')) - addLocation(textEditorId, () => import(/* webpackChunkName: "text-editor" */ '@hcengineering/text-editor-resources')) - setMetadata(uiPlugin.metadata.PlatformTitle, 'Tracker') - setMetadata(workbench.metadata.PlatformTitle, 'Tracker') - - setMetadata(client.metadata.FilterModel, 'ui') -} diff --git a/products/tracker/tsconfig.json b/products/tracker/tsconfig.json deleted file mode 100644 index 287187ed583..00000000000 --- a/products/tracker/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compilerOptions": { - "outDir": "./dist/", - "module": "esnext", - "target": "es2016", - "allowJs": true, - "sourceMap": true, - "moduleResolution": "node", - "skipLibCheck": true, - "allowSyntheticDefaultImports": true, - "lib": [ - "es2016", - "dom" - ] - } -} \ No newline at end of file diff --git a/products/tracker/webpack.config.js b/products/tracker/webpack.config.js deleted file mode 100644 index 3dcef28278e..00000000000 --- a/products/tracker/webpack.config.js +++ /dev/null @@ -1,36 +0,0 @@ -// -// Copyright © 2020 Anticrm Platform Contributors. -// -// Licensed under the Eclipse Public License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. You may -// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONSe OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. -// - -const path = require('path') -const prodModule = require('@hcengineering/prod/webpack.config') - -module.exports = { - ...prodModule, - output: { - path: __dirname + '/dist', - filename: '[name].[contenthash].js', - chunkFilename: '[name].[contenthash].js', - publicPath: '/' - }, - devServer: { - ...prodModule.devServer, - static: { - directory: path.resolve(__dirname, "public"), - publicPath: "/", - serveIndex: true, - watch: true, - } - } -} diff --git a/rush.json b/rush.json index c0f405aa5ae..14700680ff3 100644 --- a/rush.json +++ b/rush.json @@ -16,7 +16,7 @@ * path segment in the "$schema" field for all your Rush config files. This will ensure * correct error-underlining and tab-completion for editors such as VS Code. */ - "rushVersion": "5.140.1", + "rushVersion": "5.148.0", /** * The next field selects which package manager should be installed and determines its version. @@ -26,7 +26,7 @@ * Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation * for details about these alternatives. */ - "pnpmVersion": "8.15.9", + "pnpmVersion": "9.15.3", // "npmVersion": "4.5.0", // "yarnVersion": "1.9.4", diff --git a/server/collaborator/Dockerfile b/server/collaborator/Dockerfile index ce84366d90e..eb575413aa7 100644 --- a/server/collaborator/Dockerfile +++ b/server/collaborator/Dockerfile @@ -1,15 +1,7 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ EXPOSE 3078 diff --git a/services/ai-bot/love-agent/Dockerfile b/services/ai-bot/love-agent/Dockerfile index 3d411a74562..be1c48777d0 100644 --- a/services/ai-bot/love-agent/Dockerfile +++ b/services/ai-bot/love-agent/Dockerfile @@ -1,14 +1,5 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true RUN npm install -g pnpm diff --git a/services/ai-bot/pod-ai-bot/Dockerfile b/services/ai-bot/pod-ai-bot/Dockerfile index 940ae9d1204..74c4c010136 100644 --- a/services/ai-bot/pod-ai-bot/Dockerfile +++ b/services/ai-bot/pod-ai-bot/Dockerfile @@ -1,14 +1,5 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/bundle.js ./ COPY assets/avatar.png ./ diff --git a/services/analytics-collector/pod-analytics-collector/Dockerfile b/services/analytics-collector/pod-analytics-collector/Dockerfile index b73b6397be5..93619569824 100644 --- a/services/analytics-collector/pod-analytics-collector/Dockerfile +++ b/services/analytics-collector/pod-analytics-collector/Dockerfile @@ -1,14 +1,5 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/bundle.js ./ diff --git a/services/calendar/pod-calendar/Dockerfile b/services/calendar/pod-calendar/Dockerfile index ec117e92903..0aa462644ad 100644 --- a/services/calendar/pod-calendar/Dockerfile +++ b/services/calendar/pod-calendar/Dockerfile @@ -1,15 +1,7 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ EXPOSE 8095 diff --git a/services/github/pod-github/Dockerfile b/services/github/pod-github/Dockerfile index 5f7feb3e06a..bd024ac80b5 100644 --- a/services/github/pod-github/Dockerfile +++ b/services/github/pod-github/Dockerfile @@ -1,17 +1,7 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ COPY bundle/bundle.js.map ./ diff --git a/services/gmail/pod-gmail/Dockerfile b/services/gmail/pod-gmail/Dockerfile index af5b114a12b..5661f662858 100644 --- a/services/gmail/pod-gmail/Dockerfile +++ b/services/gmail/pod-gmail/Dockerfile @@ -1,15 +1,6 @@ - -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ EXPOSE 8087 diff --git a/services/love/Dockerfile b/services/love/Dockerfile index e51e7cdb07a..ba6d9d03853 100644 --- a/services/love/Dockerfile +++ b/services/love/Dockerfile @@ -1,15 +1,6 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/bundle.js ./ diff --git a/services/print/pod-print/Dockerfile b/services/print/pod-print/Dockerfile index 74410baa1cf..47adea67a1c 100644 --- a/services/print/pod-print/Dockerfile +++ b/services/print/pod-print/Dockerfile @@ -1,22 +1,6 @@ -FROM node:20 - -# We don't need the standalone Chromium -ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true -# Set executable path for puppeteer -ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium - -# Install Chromium and fonts -# https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md?plain=1#L397 -RUN apt-get update && \ - apt-get install -y gnupg wget dumb-init && \ - apt-get install -y fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 && \ - apt-get install -y chromium-common/stable chromium/stable --no-install-recommends && \ - apt-get clean - +FROM hardcoreeng/print-base:v20250113a WORKDIR /usr/src/app - -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm COPY bundle/bundle.js ./ CMD [ "dumb-init", "node", "bundle.js" ] diff --git a/services/rekoni/Dockerfile b/services/rekoni/Dockerfile index 566f2ff9252..92821195bfd 100644 --- a/services/rekoni/Dockerfile +++ b/services/rekoni/Dockerfile @@ -1,22 +1,5 @@ -FROM node:20 AS runtime - -RUN apt-get update -RUN apt-get install -y \ - coreutils \ - antiword \ - poppler-utils \ - html2text \ - unrtf -ENV NODE_ENV=production +FROM hardcoreeng/rekoni-base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose sharp@v0.30.2 pdfjs-dist@v2.12.313 --unsafe-perm - -RUN apt-get update -RUN apt-get install -y libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/bundle.js ./ EXPOSE 4004 diff --git a/services/ses/pod-ses/Dockerfile b/services/ses/pod-ses/Dockerfile index 2eacceee23f..59d4d238433 100644 --- a/services/ses/pod-ses/Dockerfile +++ b/services/ses/pod-ses/Dockerfile @@ -1,15 +1,5 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - -COPY bundle/bundle.js ./ - EXPOSE 8089 CMD [ "node", "bundle.js" ] diff --git a/services/sign/pod-sign/Dockerfile b/services/sign/pod-sign/Dockerfile index 091f896325f..f4e4906394b 100644 --- a/services/sign/pod-sign/Dockerfile +++ b/services/sign/pod-sign/Dockerfile @@ -1,18 +1,7 @@ -FROM node:20 - -RUN apt-get update && apt-get install dumb-init +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm - -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ CMD [ "dumb-init", "node", "bundle.js" ] diff --git a/services/telegram-bot/pod-telegram-bot/Dockerfile b/services/telegram-bot/pod-telegram-bot/Dockerfile index b2f46d3ead1..5c2487bd931 100644 --- a/services/telegram-bot/pod-telegram-bot/Dockerfile +++ b/services/telegram-bot/pod-telegram-bot/Dockerfile @@ -1,14 +1,6 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ EXPOSE 4020 diff --git a/services/telegram/pod-telegram/Dockerfile b/services/telegram/pod-telegram/Dockerfile index 644892d1206..5d238460413 100644 --- a/services/telegram/pod-telegram/Dockerfile +++ b/services/telegram/pod-telegram/Dockerfile @@ -1,15 +1,7 @@ -FROM node:20 - +FROM hardcoreeng/base:v20250113a WORKDIR /usr/src/app -RUN apt-get update -RUN apt-get install libjemalloc2 -RUN apt-get clean - -ENV LD_PRELOAD=libjemalloc.so.2 -ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true - COPY bundle/bundle.js ./ EXPOSE 8086